Kubernetes Node Components Question #019e3a4f
Qual componente do nó é responsável por executar as cargas de trabalho?
O kubelet.
O kubeproxy.
O kube-apiserver.
O container runtime.
Official Explanation / Community Explanations
O componente responsável por executar cargas de trabalho em um nó Kubernetes é o container runtime. O container runtime é o software que realmente executa contêineres, como Docker, containerd ou CRI-O. Ele baixa imagens de contêiner, cria e inicia contêineres e gerencia seu ciclo de vida. Sem um container runtime, o nó não pode executar nenhum pod ou contêiner.
Como Funciona
Quando um pod é agendado para um nó, o kubelet (o agente principal do nó) se comunica com o container runtime através da Container Runtime Interface (CRI) para instruí-lo a criar e iniciar os contêineres definidos na especificação do pod. O container runtime então lida com as operações de baixo nível: baixar imagens, configurar montagens de sistema de arquivos, configurar rede (via plugins CNI) e isolar processos usando namespaces e cgroups do Linux.
Por que o Valor Correto está Certo
O container runtime é o único componente que executa diretamente as cargas de trabalho. Ele traduz a especificação do pod em contêineres reais em execução. Sem ele, nenhuma carga de trabalho pode ser iniciada.
Por que os Valores Incorretos estão Errados
- O kubelet: Embora o kubelet seja o agente principal que gerencia pods em um nó, ele não executa cargas de trabalho por si só. Ele atua como um intermediário entre o plano de controle e o container runtime, garantindo que os contêineres estejam em execução conforme o esperado. Ele monitora o status do pod e reporta ao servidor de API, mas a execução real é delegada ao container runtime.
- O kubeproxy: Este componente lida com proxy de rede e balanceamento de carga para serviços. Ele mantém regras de rede no nó para permitir comunicação de e para os pods, mas não executa cargas de trabalho.
- O kube-apiserver: Este é um componente do plano de controle que expõe a API Kubernetes. Ele valida e processa solicitações para criar, atualizar ou excluir recursos, mas não executa cargas de trabalho nos nós. Ele nem mesmo está presente nos nós de trabalho.
Em resumo, o container runtime é o software essencial que realmente executa contêineres, tornando-o a resposta correta.