1.介绍

controller-manager是一系列控制器的组合。

它们都遵循 Kubernetes 项目中的一个通用编排模式,即:控制循环(control loop)。控制循环如下样例

for {
实际状态 := 获取集群中对象X的实际状态(Actual State)
期望状态 := 获取集群中对象X的期望状态(Desired State)
if 实际状态 == 期望状态{
什么都不做
} else {
执行编排动作,将实际状态调整为期望状态
}
}

这里纠正一个可能的误区:

这里的for循环只是一个样例,并不是无限一直循环

实际是只有当deployment资源有增删改操作时,才会入队列,进而执行sync操作。

2.controller-manager启动流程

controller-manager不仅仅是无脑轮询_controller-manager

3.控制器的工作流程

controller-manager不仅仅是无脑轮询_controller_02

这里查看一下deployment controller代码

controller-manager不仅仅是无脑轮询_controller_03

4.控制器的协同工作原理

controller-manager不仅仅是无脑轮询_controller_04

5.有哪些controller

controller-manager不仅仅是无脑轮询_controller_05

controller-manager不仅仅是无脑轮询_controller-manager_06