1. 书籍简介
- 深入剖析Kubernetes
- 极客时间(音视频付费)
- 作者:张磊
2. 阅读进度
- 开始阅读:2021年07月24日
- 结束阅读:
- 阅读进展:进行中
3. 核心内容
3.1 深入理解Statefulset:拓扑状态
- 抽象为两种核心设计:拓扑状态和存储状态;就是通过某种方式记录这些状态,然后在 Pod 被重新创建时,能够为新 Pod 恢复这些状态。
- Headless Service
- Headless Service 不需要分配一个 VIP,而是可以直接以 DNS 记录的方式解析出被代理 Pod 的 IP 地址
- 所代理的Pod通过Label Selector的机制被选择出来
- Kubernetes 就成功地将 Pod 的拓扑状态(比如:哪个节点先启动,哪个节点后启动),按照 Pod 的“名字 + 编号”的方式固定了下来
- 对于“有状态应用”实例的访问,你必须使用 DNS 记录或者 hostname 的方式,而绝不应该直接访问这些 Pod 的 IP 地址。
- StatefulSet 这个控制器的主要作用之一,就是使用 Pod 模板创建 Pod 的时候,对它们进行编号,并且按照编号顺序逐一完成创建工作。而当 StatefulSet 的“控制循环”发现 Pod 的“实际状态”与“期望状态”不一致,需要新建或者删除 Pod 进行“调谐”的时候,它会严格按照这些 Pod 编号的顺序,逐一完成这些操作
3.2 深入理解StaefulSet:存储状态
- Kubernetes中的PVC和PV的状态设计,类似“接口”和“实现”的思想;开发者主要知道并会使用接口,即:PVC;运维人员则负责给接口绑定具体的实现,即:PV;通过这种方式解耦,减少存储系统细节暴露的隐患;
- StatefulSet为每个Pod分配并创建一个同样编号的PVC;即使Pod被删除,其对应的PV和PVC依旧会保留;Pod被重新创建后,会找到同样编号的PVC,挂载这个PVC对应好的Volume,从而后去以前保存在Volume的数据
网友评论