Descheduler
Componente que expulsa pods que foram parar no lugar errado, já que o scheduler do Kubernetes decide o posicionamento uma vez e nunca mais olha para ele.
A decisão de colocar um pod em um nó é tomada com base em como o cluster estava naquele instante. Depois tudo muda: nós entram e saem, outros pods vêm e vão, labels e regras de afinidade são editados. Após algumas semanas a carga está desigual e vários pods violam regras que valiam quando eles subiram.
O descheduler roda periodicamente e remove pods segundo estratégias escolhidas: réplicas do mesmo deployment no mesmo nó, pods em nós quase ociosos, pods cuja afinidade de nó deixou de ser satisfeita. Ele só decide quem sai; quem decide onde o pod cai é o scheduler, então um par mal ajustado pode ficar jogando pods de um lado para o outro. Os PodDisruptionBudgets são respeitados.