Когда в кубернетах имеет смысл реплицировать поды в одном узле? - PullRequest
0 голосов
/ 27 мая 2020

Я понимаю логику c репликации модуля по узлам, но есть ли какие-то преимущества от репликации модулей на одном узле? Насколько я понимаю, это не увеличивает степень репликации, потому что один модуль может отключить узел.

1 Ответ

1 голос
/ 27 мая 2020

Репликация модулей внутри узла?

Вы можете обрабатывать условие / количество репликации, используя некоторые метрики, но вы не можете обрабатывать порождение модулей на том же узле до тех пор, пока есть некоторый набор привязки, так как он обрабатывается kube-scheduler. Однако вы можете установить различные сродства модулей / узлов , анти-сродства и ключ топологии [если вы используете sh для поддержания минимального количества модулей на определенном узле ].

Один модуль может отключить узел?

Я очень сомневаюсь, что это может произойти, только если у вас нет запросов / ограничений установить для ЦП / Память или если в вашем HPA установлено максимальное количество реплик, превышающее емкость узла, при условии, что задана подаффинность, поэтому все поды будут порождение на одном узле.

Когда такой сценарий может иметь смысл?

Причина этого может быть в том, что ваши узлы имеют нестандартный размер. И вы хотите использовать конкретный узел больше, чем другие узлы в кластере.

В среде передовых практик все узлы имеют обычный размер. Установлен HPA и предусмотрены ограничения / квоты, чтобы модуль не взламывал sh узел, пересекая все пределы узла.

EDIT из комментариев:

Что, если я хочу запустить несколько экземпляров приложения nodejs, чтобы использовать все ядра на моем узле kube? Допустим, 8 ядер, имеет ли смысл реплицировать модуль приложения nodejs 8 раз на одном и том же узле kube или лучше, чтобы 1 модуль запускал 8 экземпляров приложения nodejs?

  • Однопоточное приложение, в вашем случае под будет рассматриваться как экземпляр. Стручок для раскрутки 8 раз? Это будет многоконтейнерный модуль с 8 контейнерами одного и того же образа, что действительно было бы плохой практикой и, конечно, даже не стоит тестовой среды. Однако наличие разных реплик для одного и того же развертывания - выполнимая практика. Но вопрос в том, как вы остановите службу Kubernetes: если модуль уже обслуживает какой-то запрос и находится в состоянии блокировки, как этот запрос будет перенаправлен на другой модуль. Это возможно только для HPA, если максимальное количество запросов на под установлен равным 1.

Почему бы не использовать модуль NodeJS Cluster для кубернетов, чтобы задействовать все ядра узла в кластере, в котором находится приложение. развернут? - Предложение @ DanielKobe

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