AWS EKS 完全忽略“topologySpreadConstraints”

0

【以下的问题经过翻译处理】 嘿,

使用 AWS EKS 1.21 时,当前有 1 个节点正在运行(包括cluster-autoscaler,并且asg正常运行中)并创建具有 5 个副本的部署并指定“topologySpreadConstraints”,如下所示:

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

调度程序会完全忽略这一点,并将所有 pod 调度到同一节点上。 (即使有“DoNotSchedule”) 如何解决这个问题?我想让 cluster-autoscaler 能够意识到无法调度2个节点。

提前致谢。

profile picture
专家
已提问 4 个月前18 查看次数
1 回答
0

【以下的回答经过翻译处理】 调度 pod 的是 Kubernetes 调度程序,而不是 EKS。

也就是说,因为您在一个可用区中只有一个节点,所以调度程序没有违反您的约束。

偏差始终为 0。请参阅此处了解偏差如何被计算。

Cluster Autoscaler 在做出扩展决策时不考虑此约束。

您可能需要考虑增加 ASG 中的最小实例和所需实例。

profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则