我正在创建K8s对象创建工作流程,并且我想确保一切都正确。 Heptio博客中有this个不错的流程,但是缺少控制器管理器,这是我的疑问所在。
如果我们阅读K8s文档,Controller Manager
始终被描述为监视集群所需状态并移动所有必要字符串以将当前状态转换为所需状态的循环。
足够公平,但是我们也知道kubelet具有容器运行时,因此kubelet创建了容器或pod。我们还知道kube-proxy在iptable规则中进行了必要的更改,因此服务将正常运行。等等。那么控制器管理器到底如何工作?
据我所知,有一些过程(每个资源的告密者/观察者;不一定是1:1),这些过程通过API服务器监视资源变化,并将作业添加到队列中,并由Worker节点使用组件。如果我错了,请感谢有人能纠正我。
答案 0 :(得分:1)
我认为您对控制器管理器的工作方式是正确的。据我所知,Kubernetes中的控制器管理器是一组控制器,例如节点控制器,pod控制器和Deployment控制器。每个控制器列出/监视特定的资源,并定义一些回调函数,例如更新,添加和删除。当资源改变时,控制器调用相应的功能以使系统进入所需状态。您甚至可以定义自己的CRD和相应的控制器来管理资源,这是一个非常强大且灵活的工具。 sample controller可能有用。