Назад | Перейти на главную страницу

Kubernetes Мало рабочих узлов против многих рабочих узлов

Мы используем RKE для настройки кластера с 4-мя главными узлами (виртуальная машина, 8-ядерный ЦП, в настоящее время исходники, ужасные рабочие и 16 ГБ оперативной памяти) и 5 ​​рабочих узлов (голый металл, HPE G10, 88 ядер ЦП, 256 ГБ оперативной памяти).

-Kubernetes версия: 1.15

-Гостиная ОС: coreos

и увеличьте максимальное количество модулей на узел до 250, и в настоящее время у нас есть около 500-600 модулей. Большая часть нашего стека - это php-fpm.

Вчера мы провели нагрузочный тест с автопушкой из нескольких источников на нашем производстве (промежуточное пространство имен: |), и да, я знаю, что это ужасно, но мы думаем, что кластер в порядке, и терпим его из-за нашей фоновой истории мониторинга.

Я хочу знать, порекомендуете ли вы использовать много воркеров (ВМ) вместо нескольких (голый металл)?

Как всегда: это зависит от ваших потребностей.

Давайте углубимся в это: первый шаг - сравнить два разных режима развертывания (несколько более крупных рабочих и много мелких рабочих) с одной и той же типологией: как виртуальная машина, так и оба Bare Metal для упрощения вашего сравнения. Даем то, что имеем:

Преимущества нескольких более крупных узлов

  • меньше управления узлами: вам нужно установить, исправить и обновить меньшее количество Coreos
  • меньше накладных расходов на главный узел

Преимущества множества небольших узлов

  • Избыточность и высокая доступность: при выходе из строя одного узла его ресурсы можно легко перенести на оставшиеся узлы.
  • Меньше накладных расходов на kubelet: с меньшим количеством модулей на одного рабочего, kubelet должен выполнять меньше операций, таких как живучесть и готовность на узел
  • меньшие узлы означают, что вы ближе к своим реальным потребностям в ресурсах: если вам нужно 60 ЦП и у вас есть 2 узла по 50 ЦП каждый, вы платите за 40 неиспользуемых ЦП. Если вместо этого у вас есть 3 узла с 20 процессорами, вы оптимизируете свои расходы.

Я не знаю, что вам нужно, но обычно я предпочитаю решение с более высокой доступностью.

Теперь вернемся к ВМ и голому железу. Вы должны добавить накладные расходы уровня виртуализации к недостаткам многих меньших узлов. Стоит ли решение для меньших узлов? Опять же, это зависит от ваших потребностей

PS: почему четное количество мастер-узлов? Kubernetes нужно нечетное количество узлов etcd