如何表达:“Yo kubernetes,运行3个副本,但至少其中1个必须在带有标签 cost=expensive
的节点上运行”
假设我有2组工作节点(小兵) .
使用标签 cost=expensive
设置1 . 设置2 cost=cheap
.
我想运行一个带有3个副本的部署,这样至少其中一个被安排在Set 1上,我不关心其他2个副本的启动位置 .
笔记:-
-
我正在运行Kubernetes
1.6.2
. -
示例用例:Set 2由可随时死亡的点实例组成 . 我想在按需实例上运行至少1个pod .
-
我已经阅读了Assigning Pods to Nodes指南,它让我(a)(
podAntiAffinity
)在节点之间传播pod;或(b)(nodeSelector
或nodeAffinity
)对所有pod将运行的选择器设置软/硬约束 . -
我可以在2个单独的部署中运行pod,一个具有1个副本,
nodeSelector
设置为cost=expensive
,但这使得它变得混乱 .
1 回答
我认为你应该运行2个部署,pods在同一部署或副本集中意味着相同的配置,将它们分散到不同种类的自定义节点集并非如此 . 如果您希望它们一起提供服务,您可以设置正确的标签并使它们在同一服务后面工作 .
顺便说一句,你可以通过自定义调度程序策略来完成这项工作,而这太过于扩展 .