如何在多个节点之间分配相等的部署

时间:2019-10-11 16:11:42

标签: kubernetes kubernetes-pod

这似乎应该足够简单,但是我一直找不到答案。

我们有三个标记节点:

thalia0 thalia1 thalia2

和名为mm-sa的部署规范。

我只想将mm-sa的副本数设置为48,并让调度程序为每个节点分配16个pod。

我能找到的最接近的是这里,但是看来这还不可用:Node affinity for even spread of pods across multiple availability zones。我也发现了这一点,why-kubernetes-scheduler-ignores-nodeaffinity,但是它说:“根据文档,每个可用于计划的pod的节点必须存在nodeAffinity,并且选择权重总和最大的节点。”

这似乎是一个简单的用例,但是我无法弄清楚如何在不使用幼稚方法的情况下实现它,如定义名为mm-sa1,... mm-sa3的3个不同的部署一样并使用nodeSelector进行相应分配。 (注意:我目前正在使用nodeSelector在单个节点上分配mm-sa的16个副本)。

1 个答案:

答案 0 :(得分:2)

Kubernetes会自动将复制控制器或服务中的Pod散布到单区域群集中的各个节点上。因此,如果没有其他节点,则应使用@David Maze的解决方案。但是,由于您提到不想在其他节点上进行调度,因此建议使用 nodeSelector 。通过使用 nodeSelector ,只要该节点在YAML中具有相同的键值对,那么该窗格就可以在该节点上进行调度。

您可以在此处了解有关 nodeSelector 的更多信息:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector