我们有一个节点组,组中的每个节点都有相同的标签acme/node-type: worker
。此节点组中有2个节点,它们是spot示例。
我们有一个部署,其中有3个副本存在于此节点组上。我们使用nodeAffinity
实现了这一点
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: acme/node-type
operator: In
values:
- worker
我们注意到一个问题,当一个spot示例被重新调用时,所有的pod都移动到第二个节点。在一个节点上运行所有pod并不理想,因为有2个可用的pod。我们希望3个复制副本部署分布在2个节点上。
我们希望节点组中的每个节点上至少有**1个pod。这可能吗?
尝试1:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: acme/node-type
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
acme/node-type: worker
1条答案
按热度按时间jmo0nnb31#
您可能需要配置topology spread constraints
关于
whenUnsatisfiable: ScheduleAnyway
还可以考虑使用descheduler,这有助于在删除节点时做出最佳决策