当前位置:  首页>> 技术小册>> Kubernets合辑3-kubernetes介绍

controller manager 译为“控制器管理器”,k8s内部有很多资源控制器,比如:Node Controller、Replication Controller、Deployment Controller、Job Controller、Endpoints Controller等等,为了降低复杂度,将这些控制器都编译成了一个可执行文件,并且在同一个进程中运行。

controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。

cloud-controller-manager 是基于特定云平台的控制器,通过云厂商的api完成节点、路由、loadbalance service的变更,个人学习环境和自建集群不需要。

控制器的工作大致逻辑是,通过apiserver监听关注的资源事件,一旦出现出现关注的事件,比如创建资源,那么会从apiserver接口获取相关资源对象,处理完毕后再将资源对象状态通过apiserver更新到etcd。

controller-manager 虽然允许同时运行多个实例,但是只有一个能成为leader,并处理控制器的请求。controller-manager 锁对象存储在 kube-system 名称空间下的 kube-controller-manager endpoints对象中。

  1. [root@maxiaoke ~]# kubectl get endpoints -n kube-system kube-controller-manager -o yaml
  2. apiVersion: v1
  3. kind: Endpoints
  4. metadata:
  5. annotations:
  6. control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"centos-7-52_4cb2dc1b-56f7-414f-9102-ecfbb3818651","leaseDurationSeconds":15,"acquireTime":"2021-03-27T02:06:28Z","renewTime":"2021-03-27T02:30:23Z","leaderTransitions":35}'
  7. creationTimestamp: "2020-12-04T13:49:43Z"
  8. name: kube-controller-manager
  9. namespace: kube-system
  10. resourceVersion: "1488518"
  11. selfLink: /api/v1/namespaces/kube-system/endpoints/kube-controller-manager
  12. uid: ada772c5-29d6-4cd3-ada3-1a83187b181b

该分类下的相关小册推荐: