Ограничить количество модулей с одинаковой меткой на узел - PullRequest
0 голосов
/ 25 марта 2020

У меня есть большой производственный кластер aks, состоящий из 2 узлов, по 50 узлов в каждом, а также около 15 видов микросервисов с различным запросом и использованием процессора.

После исследования я обнаружил, что один из микросервисов может быть только 2 или 3 экземпляра на одном узле, из-за специального использования ЦП этой микросервисной головки.

Есть ли решение для этой операции в kubernetes? Я знаю, что могу ограничить только один из них в одном и том же узле с nodeAffinity, но я хочу 2 или 3 в одном узле.

Я нашел эту альфа-опцию: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/, но это альфа, и она ограничивает проверку только pod из того же пространства имен, и мой микросервис в нескольких пространствах имен, но с тем же поведением

Ответы [ 2 ]

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

Как уже упоминалось, написание собственного планировщика - ваш лучший выбор для достижения того, чего вы хотите. Вы можете следовать учебному пособию, например this , для реализации планировщика, и вы можете развернуть его в дополнение к планировщику по умолчанию, как описано здесь .

Вы можете укажите для каждого модуля, какой планировщик использовать . Например, вы можете настроить свой пользовательский планировщик так, чтобы он использовался только для этой указанной c микросервиса, и использовать планировщик по умолчанию для всех других рабочих нагрузок.

1 голос
/ 25 марта 2020

Нет, система ограничений топологии, которую вы нашли, является самой близкой для этого. Вам нужно написать свой собственный планировщик для чего-то такого: c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...