Job sem Pods: investigue a admissão antes de culpar o scheduler
O plugin Kueue para Headlamp torna filas e cotas navegáveis. O diagnóstico começa separando autorização para executar de alocação em nós.
Um guia publicado no blog do Kubernetes apresenta o plugin Kueue para Headlamp, versão 0.1.0-alpha, para investigar admissão de trabalhos.[15] A distinção central é entre receber permissão pelas políticas de filas e cotas e ser agendado em um nó.[15] Um Job suspenso sem Pods pode estar esperando uma decisão legítima do Kueue, antes de existir algo para o scheduler alocar.[15]
O que muda para quem desenvolve
O percurso sugerido começa no Workload, com suas condições e eventos: QuotaReserved indica reserva de cota, e Admitted mostra se o trabalho pode prosseguir.[15] A interface permite seguir a LocalQueue do namespace, a ClusterQueue com cotas e políticas e, conforme o caso, ResourceFlavor e Cohort.[15]
Minha leitura é que o ganho está em tornar explícita uma máquina de estados que o usuário pode confundir com uma falha única. “Minha tarefa não começou” pode significar espera por política ou impedimento de execução. A primeira decisão de suporte deveria ser descobrir em qual fase o pedido parou.
Isso também informa o desenho de plataformas internas. Uma tela que mostra apenas “pendente” transfere toda a interpretação para quem opera o cluster. Recomendo apresentar a fase e a evidência que a sustenta, sem inventar uma previsão de início.
Como aplicar
Monte um roteiro que comece pelo Workload e só avance após conferir as condições. Se a admissão não ocorreu, examine a fila local, a fila de cluster, as reservas existentes e a compatibilidade da classe de recurso. O guia também inclui limites de empréstimo, prioridades e fila parada entre os fatores relevantes.[15]
Em laboratório, use um trabalho que peça mais recursos do que a cota disponível e observe os objetos relacionados. O exemplo publicado solicita três Pods e três CPUs diante de uma fila com dois de cada, produzindo um bloqueio de admissão.[15] O experimento serve para aprender a distinguir a evidência de política da evidência de capacidade do nó, não para reproduzir uma indisponibilidade.
Quando Admitted=True e os Pods continuam pendentes, a investigação passa para Job, Pods e eventos normais do Kubernetes, incluindo afinidade, taints, volumes e capacidade.[15] Preserve essa bifurcação no procedimento. Ela evita aumentar nós ou reiniciar componentes quando o pedido ainda não foi liberado pela fila.
Cuidados e limites
O plugin alfa oferece visualizações de leitura para recursos Kueue v1beta2, respeitando o RBAC do usuário, sem fluxos próprios de criação, pausa, retomada ou remoção.[15] Algumas referências ainda aparecem apenas como texto; métricas e mapa visual de relações são possibilidades futuras.[15]
O texto é uma republicação de um guia do Headlamp, não um novo scheduler.[15] Use a interface para entender relações e mantenha automação e GitOps no caminho apropriado. O diagnóstico melhora quando cada ferramenta explica uma fase, em vez de prometer que toda espera é o mesmo problema.
Fonte
[15] Fonte: Kubernetes Blog