Hands-On Kubernetes on Windows
上QQ阅读APP看书,第一时间看更新

kube-controller-manager

The Kubernetes Controller Manager (kube-controller-manager) is a component that is responsible for running core reconciliation and control loops in the cluster. The Controller Manager consists of a set of separate, specialized controllers that act independently. The main aim of controllers is to observe the current and the desired cluster state that's exposed by API Server and command changes that attempt to transform the current state to the desired one.

The most important controllers that are shipped in kube-controller-manager binary are as follows:

  • Node Controller (formally named nodelifecycle): This observes the status of the node and reacts when it is unavailable.
  • ReplicaSet Controller (replicaset): This is responsible for ensuring that the correct number of Pods for each ReplicaSet API object is running.
  • Deployment Controller (deployment): This is responsible for managing associated ReplicaSet API objects and performing rollouts and rollbacks.
  • Endpoints Controller (endpoint): This manages Endpoint API objects.
  • Service Account Controller (serviceaccount) and Token Controller (serviceaccount-token): This is responsible for creating default accounts and access tokens for new namespaces.

You can think of kube-controller-manager as a Kubernetes brain that ensures that the current state of the cluster moves toward the desired cluster state.