容器编排 -- 控制器模型
It has been 761 days since the last update, the content of the article may be outdated.
控制器
kube-controller-manager是一系列控制器的集合,每一种控制器都以独有的方式负责某种编排功能
plaintext
1 | # cd kubernetes/pkg/controller |
控制循环
- X为待编排的对象,实际状态来源于Kubernetes集群,而期望状态一般来自于用户提交的YAML文件
- 别名:Reconcile、Reconcile Loop、Sync Loop、Control Loop
- 控制器对象本身,负责定义被管理对象的期望状态!!
- 被控制对象的定义,来源于模板,如Deployment.template与标准的Pod对象的API定义一致,称为PodTemplate
go
1 | for { |
Deployment
- Deployment控制器从Etcd中获取到所有携带
app: nginx
标签的Pod,统计它们的数量 – 实际状态 - Deployment对象的Replicas字段为期望状态
- Deployment控制器比较实际状态和期望状态,确定创建Pod还是删除已有的Pod
yaml
1 | apiVersion: apps/v1 |
所有的API Object的Metadata都有ownerReference字段,用于保存该API Object的拥有者(Owner)
参考资料
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.