Kubernetes Cluster Administration Question #019e3a4f
Qual é o tempo limite de despejo padrão quando a condição Ready de um nó é Unknown ou False?
Trinta segundos.
Trinta minutos.
Um minuto.
Cinco minutos.
Official Explanation / Community Explanations
O tempo limite de despejo padrão quando a condição Ready de um nó é Unknown ou False é de cinco minutos. Isso é controlado pelas configurações node-monitor-grace-period e pod-eviction-timeout no controller manager do Kubernetes. O node controller verifica o status do nó a cada node-monitor-period (padrão de 5 segundos). Se a condição Ready do nó permanecer Unknown ou False por mais tempo que node-monitor-grace-period (padrão de 40 segundos), o nó é marcado como inalcançável. Após isso, o controller aguarda pod-eviction-timeout (padrão de 5 minutos) antes de despejar os pods do nó. Assim, o tempo total desde a primeira falha até o despejo do pod é de aproximadamente 5 minutos e 40 segundos, mas o tempo limite de despejo em si é de 5 minutos.
Como funciona:
- O node controller monitora os heartbeats do nó (atualizações em
.status.conditions). - Se a condição Ready for Unknown ou False, o controller inicia um temporizador.
- Após
node-monitor-grace-period(40s), o nó é considerado não saudável. - Após um adicional de
pod-eviction-timeout(5 minutos), os pods são despejados.
Por que o valor correto está certo: A documentação e o código-fonte do Kubernetes especificam pod-eviction-timeout como 5 minutos por padrão. Esse valor equilibra a permissão de resolução de problemas temporários de rede e a garantia de reagendamento oportuno das cargas de trabalho.
Por que os valores incorretos estão errados:
- Trinta segundos: É muito curto; causaria despejos desnecessários de pods devido a falhas transitórias de rede.
- Trinta minutos: É muito longo; atrasaria a recuperação de falhas de nó, levando a interrupção prolongada do serviço.
- Um minuto: Embora mais longo que 30 segundos, ainda é insuficiente para tolerar falhas temporárias típicas e causaria despejos frequentes.