Использование ЦП узла Kubernetes

Я пытаюсь (учусь) выяснить, как лучше всего использовать ЦП (и ОЗУ) на узлах k8s. Моя конечная цель - убедиться, что загрузка ЦП на каждом узле в кластере выше X%.

До сих пор я читал о cluster-autoscaler и HPA, но не уверен, помогут ли они мне с вариантом использования.

Из того, что я прочитал:

  • cluster-autoscaler используется для автоматического масштабирования узлов на основе сравнения количества реплик и resources.request По сравнению с доступным ЦП на целевом экземпляре ec2, который НЕ основан на трафике / фактическом использовании ЦП
  • HPA основан на использовании ЦП / фактического использования ЦП, но для отдельных модулей

Я по сути хочу добраться до точки, где kubectl top nodes покажет, что все узлы используют> X% (скажем, 60%) - и в идеале запустит автомасштабирование, если мы достигнем X2% (скажем, 80%)

любое предложение / указатель о том, как действовать в этом случае использования? (или я должен как-то использовать комбинацию этих двух механизмов автомасштабирования)

1 ответ

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

  • HPA на основе ЦП / памяти ваших модулей и, например, масштабирование развертываний K8s вверх и вниз.

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

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

Таким образом, вы можете использовать все 3 выше (или меньше), но вы должны увидеть, что работает для вас, чтобы они не конфликтовали друг с другом. Одна потенциальная проблема заключается в том, что, когда ваша облачная ASG начинает уменьшаться, у вас также есть модули в состоянии ожидания, тогда сработает ваш автомат масштабирования кластера (если он у вас включен), и вы оба можете попытаться сделать противоположное, что приведет к отказу кластера. просто не могу запланировать какой-либо модуль.

✌️☮️

Другие вопросы по тегам