我有 5 个工作节点,并且有一个包含 10 个副本的部署。如何让10个副本均匀分布在5个节点上?
我知道反亲和性配置,但只能配置单个节点和单个pod。
k8s默认调度器可以实现这个配置吗?
SpreadConstraints 条目可以添加到集群中,以指示 kube-scheduler 如何安排每个传入的 pod 集群中的其他 Pod。
SpreadConstraints中有很多字段,每个字段都有自己的功能,如下所述,
maxSkew表示Pod分布不均的可能性。该字段需要指定,并且输入的值必须大于零。
topologyKey是节点标签的键。同一拓扑中的节点是具有相同值和带有此键的标签的节点。
minDomains 表示符合条件的域的最小数量。该字段是可选的。
whenUnsatisfiable 告诉我们在不满足传播约束的情况下如何处理 pod:
labelSelector 用于查找匹配的 Pod。对与该标签选择器匹配的 Pod 进行计数,以确定其相应拓扑域中的 Pod 数量。
请参阅此文档,了解有关 SpreadConstraints 以及 Pod 如何在集群中分布的更多详细信息。