7

我有两个副本的 pod,k8s 会同时重新安排两个副本是否有意义 ?如果是,有没有办法避免它?

我猜(根据@Henry 的回复)我需要使用https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity

拓扑 https://kubernetes.io/blog/2020/05/introducing-podtopologyspread/

但不确定如何配置以下内容:

1具有2副本的应用程序,例如

Replica A继续运行nodeFoo并且

Replica B跑进NodeBar

4

2 回答 2

9

可以使用将副本配置为在不同节点上运行podAntiAffinity。例如在部署规范中:

spec:    
  template:
    metadata:
      labels:
        name: my-app-label
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  name: my-app-label
              topologyKey: kubernetes.io/hostname

这基本上意味着,所有与标签匹配的 pod都应该在节点标签不同name=my-app-label的主机上运行。kubernetes.io/hostname

于 2020-11-16T08:32:47.987 回答
0

假设您的意思是部署,是的,Pod 对象是大致同时创建和调度的。如果您希望按顺序创建事物,请使用 StatefulSet。

于 2020-11-15T10:31:30.660 回答