华为云云原生王者之路集训营(黄金-第六章):Kubernetes持久化数据卷管理

举报
菜鸟级攻城狮 发表于 2021/07/07 18:02:00 2021/07/07
【摘要】 华为云云原生王者之路集训营(黄金-第六章):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/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。