Pessoal, boa noite. Tenho alguns clusters Kubernetes(AWS EKS), onde o consumo de CPU dos nodes muitas vezes chega a 98%, 99% e 100%.
Peguei 1 cluster para testar o Karpenter, usei ele no lugar do Cluster AutoScaler, o trabalho dele é ótimo na parte de scaling, mas não ajudou na parte de provisionar nodes quando houvessem muitos nodes com CPU elevada(sim, eu sei que não é o trabalho dele, mas foi uma tentativa).
Alguns dias atrás instalei o Descheduler e comecei a testar ele, ele funciona, mas a forma que ele trabalha(evitando os Pods que estão nos Nodes) não é muito legal, tem alguns workloads que não aceitam muito bem este formato, além do mais, as métricas do Descheduler não são tão precisas, algumas não funcionam, mesmo estando dentro do range esperado.
Antes de partir para a próxima alternativa: Ativar uma triggger que adicione uma Taint PreferNoSchedule nos nodes que ultrapassarem 80% ou 90% de CPU. E quando o consumo de CPU baixar, a trigger acione a remoção do Taint.
Como vocês tem feito para evitar um consumo elevado de CPU nos nodes do Kubernetes(EKS)?