Kubernetes 在statefulset中,如何仅依赖节点名称而不是查找特定标签?

Kubernetes 在statefulset中,如何仅依赖节点名称而不是查找特定标签?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我在使用nodeAntiafinity时遇到问题。。。在我的用例中,我需要防止StatefulSet的实例在同一个节点上运行,就是这样。我没有节点的标签,文档会将其列为一项要求。是否可以完全依赖内置标签“kubernetes.io/hostname”的唯一值 在我的状态集合中,我要做的是: spec: podManagementPolicy: OrderedReady affinity: nodeAntiAffinity: requiredDuringScheduli

我在使用nodeAntiafinity时遇到问题。。。在我的用例中,我需要防止StatefulSet的实例在同一个节点上运行,就是这样。我没有节点的标签,文档会将其列为一项要求。是否可以完全依赖内置标签“kubernetes.io/hostname”的唯一值

在我的状态集合中,我要做的是:

spec:
  podManagementPolicy: OrderedReady
  affinity:
    nodeAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        topologyKey: "kubernetes.io/hostname"
文档中的示例说明我必须做什么:

spec:
  podManagementPolicy: OrderedReady
  affinity:
    nodeAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
            - key: <some key>
              operator: In
              values:
                - <some value>
        topologyKey: "kubernetes.io/hostname"
spec:
POD管理策略:OrderedReady
密切关系:
节点关联性:
所需DuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
-匹配表达式:
-关键:
接线员:在
价值观:
- 
topologyKey:“kubernetes.io/hostname”

为了防止状态集的实例在同一节点上运行,您需要一个podAntiAffinity,摘自zookeeper教程:

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