0

我在 EKS 集群中部署了一个具有 30 个副本(或 N 个副本,其中 N 是 3 的倍数)的 K8s StatefulSet 。

EKS 集群有 3 个节点,一个节点一个 AZ,我想通过 Kubernetes Affinity/AntiAffinity保证Pod 在不同 AZ 之间的平均分布。

us-west-2a (n nodes) -> N/3 pods
us-west-2b (m nodes) -> N/3 pods
us-west-2c (o nodes) -> N/3 pods

谢谢

4

2 回答 2

2

虽然这对于节点亲和力来说太可能了,但直接的方法是使用 topologySpreadContraints,这里是 k8s文档、图表和示例以查看它的实际应用。

于 2021-12-06T02:28:15.257 回答
0

您始终可以使用从 AWS 获得的选择器和默认标签。一个简单的 pod 规范示例在这里

topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: "topology.kubernetes.io/zone"
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        app: myapp

您可以根据此处所述的需要包括偏斜和其他选项:https ://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/

于 2021-12-06T07:36:29.780 回答