极客时间运维进阶训练营第十三周作业
本周作业
在集群上使用资源配置文件编排运行 demoapp,并使用 Service 完成 Pod 发现和服务发布。
要求以配置文件的方式,在集群上编排运行 nginx、wordpress 和 mysql,并使用 Service 完成 Pod 发现和服务发布。提示:使用 Secret 的方式的为 wordpress 指定要使用 mysql 服务器地址、数据库名称、用户名称和用户密码;nginx Service:定义为 NodePort 类型;nginx 的配置文件:要通过 ConfigMap 提供;wordpress 和 mysql 的数据要保存于 PVC 上。
扩展作业:pvc 依赖的 pv 要动态置备。
扩展作业:定义一个 NodePort 类型的 Service,在集群外部手动配置一个 LoadBalancer,为该 Service 接入外部客户端访问该 Service 流量,并转发给各各节点上的该 Service 注册使用的 NodePort。
Assignment-1: Demoapp Service and Pod
请参考本链接,在第十二周作业已经完成: https://xie.infoq.cn/article/ad1e844c51c519d87374795e8
Assignment-2: Nginx + WP + MySQL
请参考本链接,在第十二周作业已经完成: https://xie.infoq.cn/article/ad1e844c51c519d87374795e8
Assignment-3: PV + PVC
Static config
pv.yml
pvc.yml
pod.yml
Creation:
Dynamic config
Storageclass:
pvc.yml
pod.yml
Creation
Assignment-4: NotePort SVC + LB
Install AWS ALB to K8s cluster
Deploy a demo app
Raw app YAML:
Check application has a load balancer now:
Backend running pods:
Application:
Class Notes
存储卷的具体的管理操作由相关的控制器向卷插件发起调用请求来完成
AD 控制器:负责存储设备的 Attach/Detach 操作
Attach:将设备附加到目标节点
Detach:将设备从目标节点上拆除
存储卷管理器:负责完成卷的 Mount/Umount 操作,以及设备的格式化操作等
PV 控制器:负责 PV/PVC 的绑定、生命周期管理,以及存储卷的 Provision/Delete 操作
Scheduler:特定调度插件的调度决策会受到目标节点上的存储卷的影响
PV
PV 是标准的资源类型,除了负责关联至后端存储系统外,它通常还需要定义支持的存储特性
Volume Mode:当前 PV 卷提供的存储空间模型,分为块设备和文件系统两种
StorageClassName:当前 PV 隶属的存储类;
AccessMode:支持的访问模型,分为单路读写、多路读写和多路只读三种
Size:当前 PV 允许使用的空间上限
PVC
PVC 也是标准的资源类型,它允许用户按需指定期望的存储特性,并以之为条件,按特定的条件顺序进行 PV 筛选
VolumeMode→LabelSelector→StorageClassName→AccessMode→Size
支持动态预配的存储类,还可以根据 PVC 的条件按需完成 PV 创建
PV and PVC config
使用静态 PV 和 PVC 的配置卷的步骤
有些存储类型默认并不支持动态 PV 机制
多数 CSI 存储都支持动态 PV,且支持卷扩展和卷快照等功能
StorageClass
StorageClass 资源
Kubernetes 支持的标准资源类型之一
为管理 PV 资源之便而按需创建的存储资源类别(逻辑组)
是 PVC 筛选 PV 时的过滤条件之一
为动态创建 PV 提供“模板”
需要存储服务提供管理 API
StorageClass 资源上配置接入 API 的各种参数
定义在 parameters 字段中
还需要使用 provisioner 字段指明存储服务类型
一般由集群管理员定义,隶属集群级别
版权声明: 本文为 InfoQ 作者【9527】的原创文章。
原文链接:【http://xie.infoq.cn/article/05beed6387330142fe8243127】。文章转载请联系作者。
评论