Kubernetes Cluster Architecture
medium

Kubernetes Cluster Architecture Question #019e3a4f

Question Statement
Kubernetes Cluster Architecture
#node-controller
#control-plane
#node-health
Medium

Qual componente do plano de controle é responsável por atualizar a condição Ready do nó se um nó se tornar inacessível?

A

O kube-proxy.

B

O node controller.

Correct
C

O kubelet.

D

O kube-apiserver.

Official Explanation / Community Explanations

O node controller é o componente do plano de controle do Kubernetes responsável por monitorar a saúde dos nós e atualizar a condição NodeReady quando um nó se torna inacessível. Ele é executado como parte do kube-controller-manager e verifica periodicamente o status de cada nó através do kube-apiserver. Se um nó falhar em reportar seu status dentro do node-monitor-grace-period configurado (padrão de 40 segundos), o node controller marca o nó como Unknown e, eventualmente, após node-monitor-grace-period mais pod-eviction-timeout (padrão de 5 minutos), ele remove os pods do nó inacessível.

Como funciona:

  • O node controller usa o NodeLifecycleController para gerenciar eventos do ciclo de vida do nó.
  • Ele define a condição NodeReady como Unknown quando o heartbeat do nó não é recebido.
  • Em seguida, ele transita o nó para NotReady se a condição persistir.
  • O node controller também lida com taints e tolerations para inacessibilidade de nós.

Por que as outras opções estão incorretas:

  • O kube-proxy é um proxy de rede que é executado em cada nó, lidando com rede de serviços e balanceamento de carga. Ele não monitora a saúde dos nós nem atualiza as condições dos nós.
  • O kubelet é o agente primário do nó que é executado em cada nó e registra o nó no cluster, mas ele não atualiza a condição NodeReady da perspectiva do plano de controle. O kubelet reporta o status do nó ao kube-apiserver, mas o node controller é quem avalia e atualiza a condição.
  • O kube-apiserver é o front-end do plano de controle do Kubernetes, expondo a API do Kubernetes. Ele armazena o status do nó no etcd, mas não monitora ou atualiza ativamente as condições dos nós; essa é a responsabilidade do node controller.