Service Configuration
medium

Service Configuration Question #019e3a4f

Question Statement
Service Configuration
#kubernetes
#scheduler
#pod scheduling
Medium

Qual componente no Kubernetes é responsável por observar novos Pods criados sem nó atribuído e selecionar um nó para eles executarem?

A

etcd

B

kube-controller-manager

C

kube-proxy

D

kube-scheduler

Correct

Official Explanation / Community Explanations

O kube-scheduler é o componente do Kubernetes responsável por observar novos Pods que não têm nó atribuído e selecionar um nó adequado para eles executarem. Ele é executado como um componente do plano de controle e normalmente é implantado no nó mestre.

Como Funciona

O kube-scheduler monitora continuamente o servidor da API em busca de Pods cujo spec.nodeName está vazio. Quando um novo Pod não agendado é detectado, o scheduler seleciona um nó ideal com base em um conjunto de predicados (filtros) e prioridades (pontuação). Os predicados garantem que o nó atenda aos requisitos de recursos do Pod, como CPU, memória e disco, bem como restrições como afinidade de nó, taints/tolerations e anti-afinidade de pod. As prioridades classificam os nós restantes para escolher o melhor ajuste, considerando fatores como disponibilidade de recursos, localidade e funções de pontuação personalizadas.

Por que o Valor Correto está Certo

O kube-scheduler é o único componente projetado especificamente para esta tarefa. Ele é configurável através de flags como --policy-config-file para políticas de agendamento personalizadas, e pode ser estendido com schedulers personalizados. A decisão do scheduler é escrita de volta no servidor da API, atualizando o campo nodeName do Pod.

Por que os Valores Incorretos estão Errados

  • etcd: Este é um armazenamento chave-valor distribuído usado como repositório de backup do Kubernetes para todos os dados do cluster. Ele não realiza agendamento; apenas armazena o estado do cluster, incluindo informações de Pods e nós.
  • kube-controller-manager: Este executa vários controladores que regulam o estado do cluster, como o controlador de nó, controlador de replicação e controlador de endpoints. Ele não agenda Pods; garante que o número desejado de Pods esteja em execução e lida com falhas de nós.
  • kube-proxy: Este é um proxy de rede que é executado em cada nó, mantendo regras de rede para comunicação entre Pods e balanceamento de carga de Services. Ele não tem papel no agendamento de Pods em nós.