0

我正在创建一个 K8s 对象创建工作流,我想确保一切都是正确的。Heptio 博客中有这个不错的流程,但是缺少控制器管理器,这是我的疑问所在。

如果我们阅读 K8s 文档,Controller Manager它总是被描述为这个循环,它监视集群的期望状态,并移动所有必要的字符串以将当前状态带入那个(期望的)状态。

很公平,但我们也知道 kubelet 有容器运行时,所以 kubelet 创建容器或 pod。我们也知道 kube-proxy 对 iptable 规则进行了必要的更改,因此服务将正常工作。等等。那么控制器管理器究竟是如何工作的呢?

据我所知,有这些进程(每个资源的 Informers/Watchers;不一定是 1:1)通过 API-Server 监视资源更改,并将作业添加到 Queue,由 Worker 节点组件使用。如果有人可以纠正我,如果我错了,将不胜感激。

4

1 回答 1

1

我认为您对控制器管理器的工作方式是正确的。据我所知,Kubernetes 中的控制器管理器是一组控制器,例如节点控制器、Pod 控制器和部署控制器。每个控制器列出/监视特定资源并定义一些回调函数,如更新、添加和删除。当资源发生变化时,控制器调用相应的函数将系统带入所需的状态。你甚至可以定义自己的 CRD 和对应的控制器来管理你的资源,这是一个非常强大和灵活的工具。示例控制器可能很有用。

于 2020-09-23T12:33:20.570 回答