Kubernetes Pod关联性-在不同节点上调度Pod

时间:2020-03-30 06:25:13

标签: kubernetes kubernetes-helm kubernetes-pod

我们在3节点kubernetes集群上用3个pod运行我们的应用程序。当我们部署应用程序时,有时会将Pod调度到同一kubernetes节点。

我们希望对Pod进行调度,以使其在各个节点之间分布Pod(同一应用程序中的2个Pod不应是同一节点)。实际上,根据文档(https://kubernetes.io/docs/concepts/configuration/assign-pod-node/),kubernetes已经在这方面做得很好。但是,如果找不到资源,则会将其调度到同一节点。它如何使其成为硬约束?

要求: 如果Pod不遵守约束,我们希望部署失败或处于挂起状态(同一应用程序的2个Pod不应位于同一节点)

1 个答案:

答案 0 :(得分:2)

我认为这可以工作

affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - <VALUE>
        topologyKey: "kubernetes.io/hostname"

有关更多参考,您可以访问:https://thenewstack.io/implement-node-and-pod-affinity-anti-affinity-in-kubernetes-a-practical-example/