所有的控制都遵循k8s的control loop
for {
实际状态 := 获取集群中对象 X 的实际状态(Actual State)
##来自kubelet通过心跳汇报/监控系统保存的应用监控数据/控制器主动收集
期望状态 := 获取集群中对象 X 的期望状态(Desired State)
##来自yaml文件定义
if 实际状态 == 期望状态{
##k8s对象主要的编排逻辑,reconcile/sync loop
什么都不做
} else {
执行编排动作,将实际状态调整为期望状态
}
}
Deployment
Deployment控制器实际控制的是ReplicaSet的数量及属性,一个应用的版本对应一个ReplicaSet,该版本pod的数量由ReplicaSet自身的控制器(ReplicaSet Controller)来保证。