Сколько реплик на express (NodeJS)? - PullRequest
0 голосов
/ 11 июля 2020

Итак, до того, как я использовал кубернеты, общее правило, которое я использовал для запуска нескольких express экземпляров на виртуальной машине, было по одному на процессор. Казалось, что это дает лучшую производительность. Для кубернетов было бы разумно иметь реплику на процессор для каждого узла? Или я должен позволить решить проблему горизонтальному автоскалеру? В кластере есть средство автомасштабирования узлов. Спасибо за любой совет!

1 Ответ

2 голосов
/ 11 июля 2020

хороший вопрос!

Вам необходимо учесть 4 вещи:

  1. Запустите модуль с помощью Deployment , чтобы включить репликацию, последовательное обновление, ... так далее

  2. Установите resources.limits в определение вашего контейнера. это обязательно для автомасштабирования, потому что HPA отслеживает процент использования, и если есть NO limit , будет NEVER проценты , тогда HPA никогда не достигнет порога .

  3. Установить resources.requests. Это поможет планировщику оценить, сколько требуется приложению, чтобы оно было назначено подходящему узлу в соответствии с его текущей емкостью.

  4. Установить порог HPA: процент использования (ЦП, памяти), когда HPA запускает масштабирование или масштабирование.

для вашей ситуации, вы сказали «один на процессор» .. тогда это должно быть:

  containers:
  - name: express
    image: myapp-node
    #.....
    resources:
      requests:
        memory: "256Mi"
        cpu: "750m"
      limits:
        memory: "512Mi"
        cpu: "1000m" # <-- ? match what you have in the legacy deployment

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

...