Kubernetes介绍了如何将pod扩展到节点,但使用preferredDuringSchedulengIgnored



我希望我的api部署pod将分布到整个集群的节点。所以我想出了这个:

spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- api
topologyKey: "kubernetes.io/hostname"

但这只允许每个节点中有一个pod,而不是更多。我的问题是,当我想推出更新时,kubernetes仍然是";挂起";状态

如何将requiredDuringSchedulingIgnoredDuringExecution更改为preferredDuringSchedulingIgnoredDuringExecution

我试过了,但我遇到了很多错误,因为preferredDuringSchedulingIgnoredDuringExecution可能需要与requiredDuringSchedulingIgnoredDuringExecution不同的配置。

这是正确的实现:

affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution: 
- weight: 100  
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app 
operator: In 
values:
- api
topologyKey: kubernetes.io/hostname

这将在节点中均匀分布pod,并允许每个节点中有多个pod。所以,基本上您可以将6个副本部署到由3个节点组成的集群中,而不会出现任何问题。此外,您可以推出更新,即使它在关闭旧吊舱之前创建了一个新的额外吊舱。

相关内容

  • 没有找到相关文章

最新更新