Узел AntiAffinity в StatefulSets, как полагаться исключительно на имя узла или на поиск конкретной метки? - PullRequest
0 голосов
/ 05 ноября 2018

У меня проблемы с использованием nodeAntiAffinity ... в моем случае мне нужно предотвратить запуск экземпляров StatefulSet на том же узле, и все. У меня нет меток для моих узлов, которые документооборот должен вывести в качестве требования. Можно ли просто полагаться на уникальные значения встроенной метки "kubernetes.io/hostname"?

Что я пытаюсь сделать в моем StatefulSet:

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"

1 Ответ

0 голосов
/ 05 ноября 2018

Чтобы предотвратить запуск экземпляров StatefulSet на одном и том же узле, вам понадобится podAntiAffinity, выдержка из учебника по zookeeper Kubernetes document :

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