Как назначить равные развертывания на нескольких узлах - PullRequest
1 голос
/ 11 октября 2019

Кажется, это должно быть достаточно просто, но я не смог найти ответ.

У нас есть три помеченных узла:

thalia0 thalia1 thalia2

и спецификация развертывания с именем mm-sa.

Я просто хотел бы установить количество реплик от mm-sa до 48 и планировщик назначил 16 модулей для каждого узла.

Самое близкое, что я мог найти к этому, было здесь, но, похоже, это еще не доступно: Сродство к узлу для равномерного распределения пакетов в нескольких зонах доступности . Я также нашел это, why-kubernetes-scheduler-ignores-nodeaffinity , но он говорит, что «Согласно документации, nodeAffinity должен существовать для каждого узла, который может использоваться для запланированного модуля, и узла, имеющеговыбрана самая большая весовая сумма. "

Это похоже на такой простой вариант использования, но я не могу понять, как его достичь без использования наивного подхода, как при определении 3-х различных развертываний с именем mm-sa1,... mm-sa3 и используя nodeSelector для назначения каждого соответственно. (Примечание: в настоящее время я использую nodeSelector для назначения 16-ти реплик mm-sa на одном узле).

1 Ответ

2 голосов
/ 11 октября 2019

Kubernetes автоматически распределит модули в контроллере или службе репликации по узлам в кластере с одной зоной. Поэтому решение @David Maze должно применяться, если нет других узлов. Однако, поскольку вы упомянули, что у вас есть другие узлы, которые вы не хотите планировать, я бы рекомендовал использовать nodeSelector . Используя nodeSelector , пока узел имеет одинаковую пару ключ-значение в YAML, модуль сможет планировать на узле.

Подробнее о nodeSelector можно прочитать здесь: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector

...