1.介绍
controller-manager是一系列控制器的组合。
它们都遵循 Kubernetes 项目中的一个通用编排模式,即:控制循环(control loop)。控制循环如下样例
for {
实际状态 := 获取集群中对象X的实际状态(Actual State)
期望状态 := 获取集群中对象X的期望状态(Desired State)
if 实际状态 == 期望状态{
什么都不做
} else {
执行编排动作,将实际状态调整为期望状态
}
}
这里纠正一个可能的误区:
这里的for循环只是一个样例,并不是无限一直循环
实际是只有当deployment资源有增删改操作时,才会入队列,进而执行sync操作。
2.controller-manager启动流程
3.控制器的工作流程
这里查看一下deployment controller代码