Kubernetes 中的控制器管理器负责通过监控和管理各种资源,确保集群的预期状态与实际状态相匹配。


下面的代码片段说明了如何检查部署的状态,部署是控制器管理器管理的资源之一。

[代码清单]

# Check the status of a deployment named 'my-deployment'
kubectl get deployment my-deployment

[执行结果]

NAME      READY  UP-TO-DATE  AVAILABLE  AGE
my-deployment  3/3   3      3      10m

控制器管理器运行多个控制器,每个控制器负责特定的资源类型,如部署、副本集和节点。当你执行 kubectl get deployment my-deployment 命令时,你正在查询 Kubernetes API 服务器,而 Kubernetes API 服务器会与控制器管理器通信。输出会显示准备就绪、最新和可用的副本数量,这有助于你了解部署是否按预期运行。如果实际状态与预期状态不符(例如,某些 pod 未运行),控制器管理器将采取措施纠正这种差异,例如启动新 pod 或缩小现有 pod 的规模。

[小知识]

控制器管理器可以运行多个实例来实现高可用性,但每个控制器每次只能有一个实例处于活动状态,以避免冲突。

控制器使用循环来持续监控群集的状态,并根据需要进行调整,这是 Kubernetes 调节循环的核心原则。

常见的控制器包括复制控制器(Replication Controller)、部署控制器(Deployment Controller)和节点控制器(Node Controller)。