Kubernetes Nginx много маленьких стручков против одного стручка за узел - PullRequest
0 голосов
/ 13 октября 2019

Я запускаю nginx в кластере kubernetes, имеющем 3 узла.

Мне интересно, есть ли какая-то польза от использования, например, 4 стручков, и ограничьте их процессор / память прибл. 1/4 емкости узлов по сравнению с выполнением 1 модуля на узел, ограничивающего процессор / память, чтобы модуль мог использовать ресурсы всего узла (для простоты мы оставляем сервисы cubernet вне уравнения).

У меня такое ощущение, что чем меньше модулей, тем меньше накладных расходов, и производительность 1 модуля на узел должна быть лучшей по производительности?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Имея более 1 Pod, вы получаете определенную высокую доступность. Ваш модуль умрет в одной точке, и если он находится за контроллером (что и должно быть), он будет воссоздан, но у вас будет небольшое время простоя.

Теперь, примите во вниманиечто если вы развернете более одной реплики своего приложения, даже если вы предоставите ему ресурсы 1 / n, существует базовый образ и зависимости, которые будут реплицироваться.

В качестве примера давайте представим приложениекоторый работает в Ubuntu и имеет 5 зависимостей:

  • Если вы запускаете 1 копию этого приложения, вы развертываете 1 Ubuntu + 5 зависимостей + само приложение.

  • Если вы запускаете 4 копии этого приложения, вы используете 4 Ubuntus + 4 * 5 зависимостей + 4 раза приложение.

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

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

0 голосов
/ 14 октября 2019

То, что вы имеете в виду, это разница между горизонтальным и вертикальным масштабированием. Что касается вертикального масштабирования, вы бы увеличили ресурсы своего приложения по своему усмотрению. В противном случае вы бы масштабировали по горизонтали, увеличивая количество реплик вашего приложения.

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

...