Skip to main content

kube-controller-manager

Controllers are like an office that have their own set of responsibilities.

A controller is a process that continually monitors the state of various components.

Notable Controllers

Node Controller

Takes care of onboarding new nodes to the cluster, handling situations where nodes become unavailable or destroyed.

Watches state of the nodes, interacts through kube-apiserver. Polls every 5 seconds. If a node stops receiving heartbeats, its considered unreachable (40 seconds total) Then POD Eviction Timeout of 5 minutes.

Replication Controller:

Desired number of pods are set. If a pod dies, it creates a new one

Replication Controller allows us to run multiple instances of our application to ensure high availability. Replication controller will also bring up a new controller when an existing pod fails. Ensures the requested number of pods exist at all times. Helps create multiple pods to share the load.

Replica Set: The new recommended way to setup replication. Replication Controller: The older technology being replaced by the new replica set.

Namespace Controller

Endpoint Controller

PV-Protection Controller

Service-Account Controller

Job Controller

All packages into a single process “Kube-controller-manager”

Upstream Docs

Notable CLI Options

OptionPurposeDefault
node-monitor-periodHow often to sync node status5s
node-monitor-grace-periodHow long before a ndoe is marked unhealthy?40s
controllersWhich controllers to enable?* (all)