Статьи

Автоматическое масштабирование модуля на базе процессора в Кубернетесе

Вы знаете что это? Рост.

Автоматическое масштабирование позволяет оптимально распределить ресурсы для приложения на основе его текущее потребления ресурсов.

Kubernetes предлагает три основных типа автомасштабирования:

  1. Горизонтальный стручок Autoscaler (HPA): HPA контролирует количество стручков
  2. Vertical Pod Autoscaler (VPA): VPA контролирует ресурсы в отдельных модулях.
  3. Cluster Autoscaler (CA): CA контролирует количество узлов в кластере

Горизонтальный стручковый автоскалер (HPA)


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

Горизонтальное масштабирование стручка
HPA постоянно проверяет значения пороговых значений метрик, которые вы настраиваете (примечание: интервал проверки HPA по умолчанию составляет 15 секунд, и его можно изменить в соответствии с нашим требованием, используя   --horizontal-pod-auto-scaler-sync-period флаг), и если текущий порог выше указанного порога, 

HPA пытается увеличить количество стручки. Контроллер HPA предполагает линейную зависимость между метрикой и количеством стручков. Он работает на соотношении между желаемым значением показателя и текущим значением показателя. Формула, используемая для вычисления желаемых реплик, выглядит следующим образом (для получения более подробной информации обратитесь к документации K8s).

Вычислить нужные реплики

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

Вам также может понравиться:  Архитектура микросервисов: Введение в автоматическое масштабирование

Вариация загрузки процессора

Развертывание приложения

Теперь давайте развернем микросервис в Kubernetes и изучим поведение производительности с включенным автоматическим масштабированием. Мы развернем микросервис Spring Boot (см.  Здесь  репозиторий Github) в K8s. Ниже приведен файл YAML Kubernetes для развертывания.


YAML