1 | +----------------------------------------------------------+ |
Controller Manager
Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 两部分组成,cloud-controller-manager 则是为各家云厂商提供了一个抽象的封装,便于让各厂商使用各自的 provide。
kube-controller-manager
kube-controller-manager 是一个嵌入了 K8S 核心控制循环的守护进程
控制循环这里拆解为两部分: 控制 和 循环 ,它所控制的是集群的状态;至于循环它当然是会有个循环间隔的,这里有个参数可以进行控制
kube-controller-manager 以及它在 K8S 中主要是将集群调节至预期的状态,并提供出了 /metrics 的接口可供监控
kube-controller-manager 中有很多的 controller 大多数是默认开启的,当然也有默认关闭的,比如 bootstrapsigner 和 tokencleaner,在我们启动 kube-controller-manager 的时候,可通过 --controllers 的参数进行控制,就比如上面例子中 --controllers=*,bootstrapsigner,tokencleaner 表示开启所有默认开启的以及 bootstrapsigner 和 tokencleane
查看 kube-controller-manager
的日志:
1 | kubectl -n kube-system describe pods -l component=kube-controller-manager |
查看 pod:
1 | kubectl -n kube-system get pod -l component=kube-controller-manager |
进入 pod 查看具体信息:
1 | // kube-controller-manager 在 10252 端口上不仅暴露出来了一个 /healthz 接口,还暴露出了一个 /metrics 的接口,可用于进行监控之类的 |
参考资料:
https://github.com/kubernetes/client-go/tree/master/informers