Kubernetes pod affinity - планирование пакетов на разных узлах - PullRequest
0 голосов
/ 30 марта 2020

Мы запускаем наше приложение с 3 модулями в кластере kubernetes с 3 узлами. Когда мы развертываем приложение, иногда блоки планируются на один и тот же узел kubernetes.

Мы хотим, чтобы наши блоки планировались таким образом, чтобы они распределяли наши блоки по узлам (никакие 2 модуля одного и того же приложения не должны быть тем же узлом). Infact, согласно документации (https://kubernetes.io/docs/concepts/configuration/assign-pod-node/), kubernetes уже делает хорошую работу в этом. Однако, если он не находит ресурсы, он планирует его на тот же узел. Как сделать это жестким ограничением?

Требование: мы хотим, чтобы развертывание не состоялось или находилось в состоянии ожидания, если модули не подчиняются ограничениям (никакие 2 модуля одного и того же приложения не должны быть одного узла)

1 Ответ

2 голосов
/ 30 марта 2020

Я думаю, что этот будет работать

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

Для получения дополнительной информации вы можете посетить: https://thenewstack.io/implement-node-and-pod-affinity-anti-affinity-in-kubernetes-a-practical-example/

...