编程技术网

关注微信公众号,定时推送前沿、专业、深度的编程技术资料。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

极客时间

Pod controllers 控制器

李轼 云计算 2021-12-3 21:14 149人围观

腾讯云服务器

Kubernetes 为 Pod 控制器提供了多种开箱即用的选择。最简单的选择是使用 ReplicaSet,它为特定 Pod 维护给定数量的 Pod 实例。如果一个实例失败,ReplicaSet 将启动一个新实例来替换它。

其次,有 Deployments,它自己控制一个 ReplicaSet。当在 Kubernetes 上运行应用程序时,部署是最流行的控制器,它们可以使用跨 ReplicaSet 的滚动更新轻松升级应用程序。

Horizo​​ntal Pod Autoscalers 允许应用程序根据性能指标自动扩展到不同数量的实例,从而将部署提升到一个新的水平。

最后,有一些特殊控制器在某些情况下可能很有价值:

  • DaemonSets,它在每个节点上运行应用程序的一个实例并维护它们
  • StatefulSets,其中 Pod 身份保持静态以帮助运行有状态的工作负载
  • 作业,在指定数量的 Pod 上启动、运行到完成,然后关闭

控制器的实际行为,无论是像 ReplicaSet 这样的默认 Kubernetes 控制器还是自定义控制器(例如,PostgreSQL Operator),都应该很容易预测。标准控制回路的简化视图类似于下图:

图 4.1 – Kubernetes 控制器的基本控制循环

图 4.1 – Kubernetes 控制器的基本控制循环

如您所见,控制器会不断检查预期集群状态(我们需要此应用程序的七个 Pod)与当前集群状态(我们有此应用程序的五个 Pod 正在运行)。当预期状态与当前状态不匹配时,控制器将通过 API 采取行动来纠正当前状态以匹配预期状态。

现在,你应该 理解为什么在 Kubernetes 上需要控制器:在提供高可用的应用程序时,Pod 本身并不是一个足够强大的原语。让我们继续讨论最简单的此类控制器:ReplicaSet。

腾讯云服务器 阿里云服务器
关注微信
^