Концепция — варианты масштабирования Kubernetes

Завершено

Иногда масштабирование количества модулей pod для обработки повышенного спроса недостаточно. Чтобы учитывать постоянно меняющиеся требования приложения, например регулярное изменение нагрузки в течение дня или недели, часто требуется механизм автомасштабирования кластера.

Параметры масштабирования Kubernetes

Кластеры Kubernetes могут масштабироваться с помощью одного из следующих компонентов:

  • Автомасштабирование кластера, которое следит за модулями pod, которые не могут быть запланированы на узлах из-за ограничений ресурсов. Кластер автоматически увеличивает количество узлов для удовлетворения спроса.
  • Горизонтальное автомасштабирование pod (HPA), которое использует сервер метрик в кластере Kubernetes для мониторинга спроса на ресурсы модулей pod. Если приложению нужно больше ресурсов, количество pod автоматически увеличивается в соответствии с требованиями.

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

Автомасштабирование кластера может оказаться не в состоянии уменьшить масштаб в ситуациях, когда модули pod не могут перемещаться, например:

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

Использование KEDA с HPA

KEDA выступает в качестве пользовательского API метрик, используя масштабировщики для предоставления метрик HPA, упрощая процесс разработки сервера метрик.

Масштабировщики помогают предоставлять метрики из различных источников в HPA. KEDA поддерживает широкий спектр масштабируемых средств, в том числе:

  • Apache Kafka
  • AWS CloudWatch
  • AWS Kinesis Stream
  • AWS SQS Queue
  • Хранилище BLOB-объектов Azure
  • Центры событий Azure
  • Azure Log Analytics
  • Azure Monitor
  • Служебная шина Azure
  • Очередь службы хранилища Azure
  • Google Cloud Platform Pub/Sub
  • IBM MQ
  • InfluxDB
  • Потоковая передача NAT
  • OpenStack Swift
  • PostgreSQL
  • Prometheus
  • Очередь RabbitMQ
  • Списки Redis

Полный список см. в разделе "Доступные масштабировщики для KEDA".

Проверьте свои знания

1.

Рабочая нагрузка выполняет преобразование фото с интенсивным ЦП. Какой вариант масштабирования следует выбрать?

2.

Кластер приближается к использованию всех доступных ресурсов во время пиковой нагрузки. Какой параметр масштабирования следует использовать?

3.

Служба обрабатывает сообщения из очереди Apache Kafka. Какой вариант масштабирования следует выбрать?