Node Controller

Updated at 2018-12-31 00:54

Node controller (NC) is a master component which manages node representations.

NC assigns a CIDR blocks to the nodes.

NC maintains list of nodes. NC can communicate with the cloud provider about unhealthy nodes and should they be removed from the node list. Nodes can self-register to NC using kubelet.

NC monitors health of the nodes. Usually just changes NodeStatus.NodeReady` to `ConditionUnknown, but later Kubernetes versions allow NC to assign taints to nodes.

NC evicts pods from nodes. The most common case is when the node is unhealthy for a while, but NoExecute taint can also cause eviction. Eviction behavior has multiple layers of configuration depending on different availability zones in use.