Ele roda duas fases. A filtragem remove os nós que não podem hospedar o pod, com base nos requests de recursos contra a capacidade alocável, node selectors, taints que o pod não tolera e restrições de volume ou de afinidade. A pontuação então classifica os sobreviventes usando regras como espalhar entre nós e preferir os menos carregados. O vencedor recebe o bind, e o kubelet daquele nó de fato inicia o pod.
Por que os entrevistadores perguntam isso
Scheduling aparece em incidentes reais como pods em Pending e carga desigual, então o entrevistador quer saber se você consegue depurar isso. O detalhe principal que ele escuta é que o scheduling usa requests, não limits nem uso real, o que explica a maioria das caras de espanto durante incidentes de capacidade. Afinidade, taints e topology spread constraints mostram que você moldou o posicionamento de forma deliberada em vez de aceitar os padrões.
Como estruturar sua resposta
- Cite as duas fases: filtrar e depois pontuar, e então o bind.
- Deixe claro que os requests guiam o posicionamento, não os limits nem o uso ao vivo.
- Liste as alavancas: selectors, afinidade, taints, topology spread.
- Diga como você depura um pod travado em Pending.
Exemplo de resposta
O scheduler observa pods sem nó atribuído e passa eles por filtragem e pontuação. A filtragem descarta qualquer nó que simplesmente não pode funcionar: CPU ou memória alocável insuficiente para os requests do pod, um node selector que não bate, um taint sem tolerância correspondente, um volume que não consegue se anexar naquela zona. A pontuação então classifica o que sobrou, favorecendo espalhamento e utilização equilibrada, e o nó do topo vence e recebe o bind. O detalhe que importa na operação é que ele agenda com base nos requests, não no que o pod realmente usa. Então um cluster pode parecer quinze por cento utilizado nos dashboards e ainda assim se recusar a agendar qualquer coisa, porque todo mundo colocou requests muito acima do uso real. Quando um pod fica em Pending, eu vou direto nos eventos do pod, já que o scheduler te diz exatamente qual predicado falhou e em quantos nós. Para moldar o posicionamento eu uso topology spread constraints entre zonas para disponibilidade, e taints com tolerâncias para manter cargas gerais fora dos nós com hardware especial.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Qual é a diferença entre um pod ser despejado e ser preemptado?
- Como requests e limits interagem com as classes de quality of service?
- Como você manteria duas réplicas do mesmo serviço fora de um mesmo nó?
Mais perguntas para Engenheiro DevOps
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas