华为云云原生王者之路集训营(黄金-第六章):Kubernetes持久化数据卷管理
课程目标:
了解StatefulSet的概念及使用
了解PersistentVolume概念及使用
了解PersistentVolumeClaim的概念及使用
了解StorageClass的概念及使用
无状态应用:
应用是为了某项特殊的任务而编写的程序。程序是由算法和数据组成的。
在生产环境中,除了一些无状态应用外,还有一部分应用需要将结果数据(也即:状态)缓存下来,并永久的记录在存储中,以供后续使用。
这类应用就是我们将要讨论的“有状态应用”,与“无状态应用”相比,我们期望“有状态应用”具有哪些能力呢?
1.计算维度: 每个pod的名字需要是稳定的,不会发生变化的;pods之间的启动、升级、退出可以按照某种顺序控制的;
2.存储维度:存储是持久的,拥有独立于pod的生命周期,不会随着pod的生命周期结束而销毁;每个pod与其使用的存储关系是稳定的,不会因升级等因素而发生变化;
3.网络维度:每个pod的有独立、稳定的网络标识;
有状态应用(StatefulSet)概念介绍
基于社区对有状态应用的通用需求,K8S设计了一种有状态应用对象,也即: StatefulSet。它可以为用户提供一组具有稳定、有序、唯一特性的应用实例集合。如右图所示:
1.稳定:稳定的podName: {stsName}-{序号[O-n]}
②稳定的网络标识: {podName}. {headless-svcName}.{namespace}.svc.cluster.local
③稳定的存储关系: {volumeClaimTemplatesName}-{podName}
2.有序:
按照编号从小到大顺序的部署:0~ n
按照编号从大到小进行删除: n~ o
支持有序的扩缩容和升级策略
3.唯一:
每个pod拥有一个唯一的网络标识: {podName}. {headless-svcName}.{namespace}.svc.cluster.local
从下图可以看出,与Deployment通过ReplicaSet来管理pod生命周期不同,StatefulSet是直接管理pod的。
PV/PVC/SC概念介绍
1. PersistentVolume:简称pv,持久化存储,是k8s为云原生应用提供一种拥有独立生命周期的、用户可管理的存储的抽象设计。
2. PersistentVolumeClaim:简称pvc,持久化存储声明,是k8s为解耦云原生应用和数据存储而设计的,通过pvc可以让资源管控更细更灵活、应用模板更通用。
3. StorageClass:简称sc,存储类,是k8s平台为存储提供商提供存储接入的一种声明。通过sc和相应的存储插件(csi)为容器应用提供持久存储卷的能力。
本课总结
名称 简介
StatefulSet 简称sts,有状态应用,一种k8s为用户提供一组具有有序、唯一、稳定的应用实例集合。
Volume 卷,k8s为存算分离所做的解耦设计,让用户更加专注于业务功能设计。它在k8s中是依托于pod而使用的。
PersistentVolume 简称pv,持久化存储,是k8s为云原生应用提供一种拥有独立生命周期的、用户可管理的存储抽象设计。
PersistentVolumeClaim 简称pvc,持久化存储声明,是K8S为解耦云原生应用和数据存储而设计的,通过PVC可以让资源管控更细更灵活、团 队职责分离、应用模板更通用,进一步解除了用户被云平台锁定的顾虑。
StorageClass 简称sc,存储类,是K8S平台为存储提供商提供存储接入的一种声明,通过sc和相应的存储插件(csi/flexvolume)为 容器应用提供动态分配存储卷的能力。
相关内容的华为云官网链接:https://support.huaweicloud.com/usermanual-cce/cce_01_0042.html
CCE云容器引擎官方首页: https://www.huaweicloud.com/product/cce.html
Kubernetes官方文档:
StatefulSet: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
Storage: https://kubernetes.io/docs/concepts/storage/
- 点赞
- 收藏
- 关注作者
评论(0)