AWS EKS completly ignores 'topologySpreadConstraints'

0

Hey there,

When using AWS EKS 1.21, currently 1 node running, (incl. cluster-autoscaler with correctly functioning asg) and creating a deployment with 5 replicas and specifying 'topologySpreadConstraints' like this:

      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: kubernetes.io/hostname
          whenUnsatisfiable: DoNotSchedule
          labelSelector:
            matchLabels:
              app: xxx

the scheduler ignores this completly and schedules all pods on the same node. (even though there is the 'DoNotSchedule') How can this be fixed? I want the cluster-autoscaler to see, that 2 nodes can not be scheduled.

Thanks in advance.

feita há 2 anos2187 visualizações
1 Resposta
0
Resposta aceita

It is Kubernetes scheduler, not EKS, that schedules the pod.

That said, because you only had one node in one zone, the scheduler did not violate your constraints.

The skew is always 0. Please refer here as to how the skew is calculated.

Cluster Autoscaler does not consider this constraint when making scaling decisions.

You might want to consider increase the minimal and desired instance in your ASG.

Jason_S
respondido há 2 anos
  • Thank you. Is there a way to do this without having minimal / desired capacity set?

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas