我们在3节点kubernetes集群上用3个pod运行我们的应用程序。当我们部署应用程序时,有时会将Pod调度到同一kubernetes节点。
我们希望对Pod进行调度,以使其在各个节点之间分布Pod(同一应用程序中的2个Pod不应是同一节点)。实际上,根据文档(https://kubernetes.io/docs/concepts/configuration/assign-pod-node/),kubernetes已经在这方面做得很好。但是,如果找不到资源,则会将其调度到同一节点。它如何使其成为硬约束?
要求: 如果Pod不遵守约束,我们希望部署失败或处于挂起状态(同一应用程序的2个Pod不应位于同一节点)
答案 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/