如何在Kubernetes中均匀地在所有节点上部署Pod?

问题描述 投票:0回答:1

我有一些Kubernetes集群,每个集群中都有不同的#of个节点。而且我的config部署具有“副本:#nodes”。没有设置用于调度该容器的特定配置,但是在部署之后,就节点上容器的分布而言,我看到了奇怪的行为。

示例:

对于30个节点群集(30个副本),所有30个pod副本仅分布在25个节点上,而其他5个节点在群集中处于理想状态。对于许多其他不同的集群,情况相似,并且在每个新的/重新部署中,此计数都不同。

问题:

我想在所有节点上分发我的Pod副本。如果我设置“ replicas:#nodes”,则每个节点中应该有一个Pod副本。如果我将副本数量增加/增加一倍,那么它应该平均分配。Kubernetes部署yaml中是否有任何特定配置?

具有节点AntiAffinity的配置,但此行为仍如上所述。尝试了“ requiredDuringSchedulingIgnoredDuringExecution”,并且确实在每个节点中部署了一个Pod,但是如果我在部署期间增加副本或任何节点出现故障,则整个部署将失败。

metadata:
  labels:
    app: test1
spec:
  affinity:
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - test1
          topologyKey: kubernetes.io/hostname
kubernetes kube-scheduler
1个回答
1
投票

如果每个节点部署需要1个Pod,则应使用daemonSet而不是副本集。或者,如果每个节点需要超过1个容器,并且仍然希望容器分布基本均匀,则可以使用容器抗亲和力,如我所讨论的in this post

© www.soinside.com 2019 - 2024. All rights reserved.