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.

posta 2 anni fa2189 visualizzazioni
1 Risposta
0
Risposta accettata

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
con risposta 2 anni fa
  • Thank you. Is there a way to do this without having minimal / desired capacity set?

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande