Kube Controller Manager
- Take me to Video Tutorial
In this section, we will take a look at kube-controller-manager.
Kube Controller Manager manages various controllers in kubernetes.
- In kubernetes terms, a controller is a process that continuously monitors the state of the components within the system and works towards bringing the whole system to the desired functioning state.
Node Controller
- Responsible for monitoring the state of the Nodes and taking necessary actions to keep the application running.
Replication Controller
- It is responsible for monitoring the status of replicasets and ensuring that the desired number of pods are available at all time within the set.
Other Controllers
- There are many more such controllers available within kubernetes
Installing Kube-Controller-Manager
- When you install kube-controller-manager the different controllers will get installed as well.
- Download the kube-controller-manager binary from the kubernetes release page. For example: You can download kube-controller-manager v1.13.0 here kube-controller-manager
$ wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-controller-manager - By default all controllers are enabled, but you can choose to enable specific one from
kube-controller-manager.service$ cat /etc/systemd/system/kube-controller-manager.service
View kube-controller-manager - kubeadm
- kubeadm deploys the kube-controller-manager as a pod in kube-system namespace
$ kubectl get pods -n kube-system
View kube-controller-manager options - kubeadm
- You can see the options within the pod located at
/etc/kubernetes/manifests/kube-controller-manager.yaml$ cat /etc/kubernetes/manifests/kube-controller-manager.yaml
View kube-controller-manager options - Manual
-
In a non-kubeadm setup, you can inspect the options by viewing the
kube-controller-manager.service$ cat /etc/systemd/system/kube-controller-manager.service -
You can also see the running process and effective options by listing the process on master node and searching for kube-controller-manager.
$ ps -aux | grep kube-controller-manager
K8s Reference Docs: