Kubernetes Cluster Architecture
medium

Questão de Kubernetes Cluster Architecture #019e3a4f

Enunciado da Questão
Kubernetes Cluster Architecture
#node-controller
#control-plane
#node-health
Médio

Which control plane component is responsible for updating the node Ready condition if a node becomes unreachable?

A

The kube-oroxy.

B

The node controller.

Correta
C

The kubelct.

D

The kube-apiserver

Explicação Oficial / Explicações da Comunidade

The node controller is the Kubernetes control plane component responsible for monitoring the health of nodes and updating the NodeReady condition when a node becomes unreachable. It runs as part of kube-controller-manager and periodically checks the status of each node via the kube-apiserver. If a node fails to report its status within the configured node-monitor-grace-period (default 40 seconds), the node controller marks the node as Unknown and eventually, after node-monitor-grace-period plus pod-eviction-timeout (default 5 minutes), it evicts pods from the unreachable node.

How it works:

  • The node controller uses the NodeLifecycleController to manage node lifecycle events.
  • It sets the NodeReady condition to Unknown when the node's heartbeat is not received.
  • It then transitions the node to NotReady if the condition persists.
  • The node controller also handles taints and tolerations for node unreachability.

Why the other options are incorrect:

  • The kube-proxy is a network proxy that runs on each node, handling service networking and load balancing. It does not monitor node health or update node conditions.
  • The kubelet is the primary node agent that runs on each node and registers the node with the cluster, but it does not update the NodeReady condition from the control plane perspective. The kubelet reports node status to the kube-apiserver, but the node controller is the one that evaluates and updates the condition.
  • The kube-apiserver is the front-end for the Kubernetes control plane, exposing the Kubernetes API. It stores node status in etcd but does not actively monitor or update node conditions; that is the responsibility of the node controller.