首选节点之间的调度副本

时间:2017-10-30 22:50:26

标签: kubernetes google-cloud-platform google-kubernetes-engine high-availability

我正在运行带有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

执行此操作

1 个答案:

答案 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的其他节点。