我正在运行带有GKE的3个节点的Kubernetes集群。我向Kubernetes询问<div>
Are you sure you want to blah?
<directive-from-scope value-from-scope="theValue" params-from-scope="theParams" />
</div>
豆荚的3个复制品。 3个pod在节点之间没有很好地分派以提供高可用性服务,它们通常都在2个节点上。
我希望Kubernetes尽可能多地调度pod以在每个节点上安装pod,但如果它们比节点更多backend
pod,则不会使部署/扩展失败。
是否可以使用backend
?
答案 0 :(得分:1)
尝试设置一个优先的antiAffinity规则,如下所示:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- "my_app_name"
topologyKey: "kubernetes.io/hostname"
这将尝试将pod安排到尚未在其上运行相同标签的pod的节点上。在此之后,它对所有人都是免费的(因此在确保每个节点上至少运行1个之后,它不会均匀地传播它们)。这意味着在扩展后,您最终可能会得到一个包含5个pod的节点,以及每个包含1个pod的其他节点。