Questão de Kubernetes Cluster Architecture #019e3a4f
Which control plane component is responsible for updating the node Ready condition if a node becomes unreachable?
The kube-oroxy.
The node controller.
The kubelct.
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
NodeLifecycleControllerto manage node lifecycle events. - It sets the
NodeReadycondition toUnknownwhen the node's heartbeat is not received. - It then transitions the node to
NotReadyif 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
NodeReadycondition 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.