【云驻共创】年轻人如何入场元宇宙?未来已来!
767
2022-05-28
1.课程目标
学完本课程后,您将能够:
了解 StatefulSetl的概念及使用
了解 Persistentvolumel概念及使用
了解 PersistentVolume claim的概念及使用
了解 Storage Class的概念及使用
2.前言
从上节课程中我们已经了解无状态应用了。
应用是为了某项特殊的任务而编写的程序。程序是由算法和数据组成的在生产环境中,除了一些无状态应用外,还有一部分应用需要将结果数据(也即:状态)缓存下来,并永久的记录在存储中,以供后续使用。
这类应用就是我们将要讨论的“有状态应用”,与“无状态应用”相比,我们期望“有状态应用”具有哪些能力呢?
1.计算维度
每个pod的名字需要是稳定的,不会发生变化的;
pods之间的启动、升级、退出可以按照某种顺序控制的;
2.存储维度:
存储是持久的,拥有独立于pod的生命周期,不会随着pod的生命周期结束而销毁
每个pod与其使用的存储关系是稳定的,不会因升级等因素而发生变化
3.网络维度
每个pod的有独立、稳定的网络标识
3.有状态应用(Statefulset)概念介绍
3.1 简介
基于社区对有状态应用的通用需求,K8S设计了一种有状态应用对象也即: StatefulSet。它可以为用户提供一组具有稳定、有序、唯一特性的应用实例集合。如上图图所示:
1.稳定
稳定的 podName:{ sysName}-{序号[0-n]}
稳定的网络标识:{ podName}.{ headlesssvCName).{namespace}. svc.cluster. local
稳定的存储关系:{ volumeClaimTemplatesName}-{ podName}
2.有序
按照编号从小到大顺序的部署
按照编号从大到小进行删除:n~0
支持有序的扩缩容和升级策略
3.唯一
每个pod拥有一个唯一的网络标识:{nodAme}. {headlesssvCName}.{namespace).svc.cluster.local从下图可以看出,与 Deployment通过 Replicase来管理pod生命周期不同, Statefulset是直接管理pod的。
3.2 有状态应用(Statefulset)样例模板详解
3.3 常用操作小结
4. PV/PVC/SC概念介绍
4.1 简介
Persistentvolume:简称pV,持久化存储,是kδs为云原生应用提供一种拥有独立生命周期的、用户可
管理的存储的抽象设计。
PersistentVolumeclaim:简称pw,持久化存储声明,是k8s为解耦云原生应用和数据存储而设计的,
通过pv可以让资源管控更细更灵活、应用模板更通用。
StorageClass:简称sc,存储类,是k8s平台为存储提供商提供存储接入的_种声明。通过sc和相应的
存储插件(csi)为容器应用提供持久存储卷的能力。
4.2 PVC样例模板详解
Pvc中定义应用所需的规格等配置
1.accessmodes
ReadWriteOnce:允许以读写能力挂载到一个host上,如:云盘
ReadOnlyMany:允许以只读能力挂到多个host上,如:文件存储
ReadWrite Many:允许以读写能力挂载到多个host上,如:文件存储
2. volumeMode
Filesystem:将云盘挂载为文件系统
Block:将云盘挂载为块设备
3. Resource
Requests:最小容量
Limites:最大容量
4.storageClassName
sc名字
5.mountOptions:
mount指令中的 options
4.3 SC样例模板详解
Sc中定义存储类型和驱动等配置
Parameters:插件驱动定义的参数
Provisioner:指定存储卷的供应者
reclaim Policy:
Retain:保留
Delete:删除
volume Binding Mode
Immediate:立即绑定
Wait ForFirstConsumer:延迟绑定
allow Volume Expansion
True:允许扩容
False:不允许扩容
4.4 PV样例模板详解
PV中定义应用所需的规格等配置
1.accessModes
ReadWriteOnce:允许以读写能力挂载到-个host上,如:云盘
ReadOnly Many:允许以只读能力挂到多个host上,如:文件存储
ReadWrite Many:允许以读写能力挂载到多个host上,如:文件存储
2.capacity
storage:容量大小
3.csi:out-tree驱动类型
Driver:驱动名字
fstType:磁盘文件类型
olumeAttributes:存储驱动定义的参数
volumeHandle:存储 volume的唯-|D
4. persistentVolume ReclaimPolicy
Retain:保留
Delete:删除
5.storageClassName
sc名字
6.volume Mod
Filesystem:将云盘挂载为文件系统
Block:将云盘挂载为块设备
4.5 有状态应用&持久化存储的最佳实验
用户只需要定义好模板columeClaimTemplates,剩下都交给k8s自动化平台自己完成。
4.6 常用操作小结
PV/PVC/SC常用命令如下:
5.华为云CCE存储管理功能使用介绍
5.1 静态卷
1.CCE提供多种存储
云硬盘存储卷
文件存储卷
极速文件系统存储卷
对象存储卷
2.CCE提供两种静态卷的创建方式
通过购买新的存储创建PvC
通过导入已有的存储创建PvC
5.2 动态卷
集成在创建过程中。不同的存储卷对用户的展示也不同。下面以云盘为例,展示如何使用动态卷。
6.实验:程序天气预报
6.1 实验简介
共有5个服务模块:
frontend:前台服务,展示整个应用的页面,使用 React. js开发而成;
advertisement:广告服务,返回静态的广告图片,使用 Galang开发而成
forecast:天气预报服务,返回相应城市的天气数据,使用 Node. js开发而成
recommendation:推荐服务,根据天气情况冋用户推荐穿衣和运动等信息,使用Java
开发而成。
DB:广告服务的后端,用于给advertisement返回广告图片的index,采用mysql数据库。
6.2 实验步骤
1.创建文件负载
2.创建容器
3.配置
4.完成
6.3 部署web系统的mysq数据库具体步骤
进入“云容器引擎>配置中心>秘钥 Secret”,点击“添加秘钥ˆ
填写秘钥名称: mysql- secret,选择集群和命名空间,秘钥类型
为 Opaque,秘钥数据键为 MYSQL ROOT PASSWORD,值为
YWRtaW4XMjM=,点击创建
进入“云容器引擎>工作负载>有状态负载”,点击“创建有状态
工作负载
填写工作负载的名称 mysql-adv及实例数1,点击“下一步容器设
置
选择"添加容器”>“开源镜像中心,搜索 mysql,点击确定
选择mysq5.6版本,环境变量选择秘钥导入mysqμ- secret,数据
存储选择添加云存储->云硬盘,挂载路径为∧ar/ib/mysq,点击
确定并下一步;
填写端口名称和容器端口306,点击添加服务,选择集群內访问,
service的名称为“ mysql-adv",容器端口和访问端口均为3306
保持“高级设置”>提交创建。
本文整理自华为云社区【内容共创】活动第12期。
查看活动详情:https://bbs.huaweicloud.com/blogs/325315
相关任务详情:任务34.华为云云原生黄金课程06:Kubernetes持久化数据卷管理
Kubernetes 云原生
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。