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
| Option | Purpose | Default |
|---|---|---|
| node-monitor-period | How often to sync node status | 5s |
| node-monitor-grace-period | How long before a ndoe is marked unhealthy? | 40s |
| controllers | Which controllers to enable? | * (all) |