当创建 statefulset 资源后,k8s 组件如何协作

💡 原文中文,约6100字,阅读约需15分钟。
📝

内容提要

本文介绍了StatefulSet的概念和工作原理,它是用于管理有状态应用的工作负载对象,提供有序部署和扩展功能。StatefulSet使用Headless Service来定义Pod之间的通信。文章还详细介绍了StatefulSet工作负载的创建流程和访问方式,并解释了StatefulSet-Controller的工作原理。最后,文章介绍了StatefulSet工作负载的扩缩容和删除操作。

🎯

关键要点

  • StatefulSet 是管理有状态应用的工作负载对象,提供有序部署和扩展功能。
  • StatefulSet 使用 Headless Service 定义 Pod 之间的通信,生成可解析的 DNS 域名。
  • StatefulSet 的访问方式与其他工作负载不同,使用 Headless Service 进行直接访问。
  • 创建 StatefulSet 的流程包括用户请求、鉴权、写入 etcd、StatefulSet-controller 监控变化并创建 Pod。
  • StatefulSet-Controller 通过 Informer 和 Event Handler 监控资源变化并管理 Pod 的生命周期。
  • StatefulSet 支持有序创建和更新 Pod,确保 Pod 启动和更新的顺序。
  • 扩缩容操作包括更新状态信息、确保 Pod 处于运行状态、删除失败的 Pod 并创建新 Pod。
  • 删除 StatefulSet 的 Pod 时,需判断 Pod 是否正在终止,并根据管理策略进行处理。
➡️

继续阅读