Использован автоперевод

Автоматическое масштабирование, управляемое событиями в Kubernetes

Один из ответов заключается в том, чтобы делать правильные вещи с минимальными затратами на эксплуатацию.

Мы можем использовать автоматическое масштабирование

Автомасштабирование, также известное как automatic scaling, - это функция облачных вычислений, которая позволяет автоматически регулировать мощность ваших ресурсов в зависимости от фактической рабочей нагрузки. Эта возможность гарантирует, что у вас будет необходимое количество вычислительных ресурсов для удовлетворения различных потребностей без ручного вмешательства. Автоматическое масштабирование обычно используется в облачных средах, таких как Amazon Web Services (AWS) и Microsoft Azure, для поддержания высокой доступности, оптимизации затрат и повышения производительности системы.

  • Вертикальное автоматическое масштабирование Pod — VPA (вверх и вниз)
  • Автоматическое масштабирование по горизонтали — HPA (Выход и вход)
  • Динамическое автоматическое масштабирование
  • Автоматическое масштабирование с прогнозированием
  • Автоматическое масштабирование, управляемое событиями

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

KEDA расшифровывается как Kubernetes Event-Driven Autoscaling, это проект с открытым исходным кодом, который обеспечивает автоматическое масштабирование, управляемое событиями, для контейнерных рабочих нагрузок, запущенных в Kubernetes. Это позволяет масштабировать приложения Kubernetes в зависимости от внешних событий, таких как сообщения, поступающие в очередь, количество HTTP-запросов или пользовательские триггеры событий. KEDA помогает сделать ваши приложения более эффективными и экономичными, а также реагировать на изменения в рабочих нагрузках.

Почему KEDA использует управление событиями

Kubernetes позволяет выполнять автоматическое масштабирование различными способами: по горизонтали, вертикали или по узлам.

  • Поддержка только стандартных объектов Kubernetes (развертывание, набор с отслеживанием состояния, набор реплик) и использование сервера метрик
  • Нет способа проследить за их поведением, поэтому вам нужно разработать свой собственный набор ключевых показателей эффективности, чтобы убедиться, что они работают должным образом. Итак, если HPA или VPA по какой-то непонятной причине не работают должным образом, вы не будете получать точные предупреждения.
  • Не существует адаптера метрик, совместимого с вашим источником данных, для создания правил автоматического масштабирования на основе пользовательских показателей. Если у вас нет адаптера метрик, вам нужно использовать показатели ресурсов (ЦП или памяти).

KEDA заполняет два пробела, с которыми вы столкнетесь при создании распределенного облачного приложения на

огромный масштаб.

1. КЕДА дает вам больше контроля. Больший контроль над вашими экземплярами по сравнению с их запуском

в общедоступном облаке. Вы можете использовать существующий кластер Kubernetes и запускать свои функции, например Azure

, непосредственно рядом с другими компонентами вашей общей архитектуры приложения. KEDA

позволяет вам задавать пользовательские границы для масштабирования.

2. С другой стороны, KEDA позволяет масштабировать развертывания в Kubernetes на основе внешних

событий или показателей. В Kubernetes вы можете использовать Horizontal Pod Autoscaler (HPA) для масштабирования

Развертываний на основе показателей, генерируемых внутри кластера. Особенно при запуске

Kubernetes в сочетании с внешними облачными сервисами, такими как Azure Service Bus,

артефакты вашего приложения должны масштабироваться в соответствии с этими внешними показателями.

KEDA предоставляет структурированную, оптимизированную стратегию, позволяющую удовлетворить эти потребности, не усложняя

общую архитектуру.

  • Эффективное использование ресурсов
  • Архитектура, управляемая событиями
  • Оптимизация затрат за счет нулевого масштабирования
  • Гибкая интеграция (более 50 масштабируемых программ)
  • Повышенная производительность
  • Традиционное HPA: всегда минимальное количество модулей → более высокая стоимость
  • KEDA позволяет масштабировать незанятые приложения до нуля
  • Сокращает вычислительные ресурсы
  • Пример: пакетное масштабирование процессора с 0 до 10 позволяет сэкономить до 70%

KEDA отслеживает источник событий и регулярно проверяет, есть ли какие-либо события. При необходимости KEDA активирует или деактивирует ваш модуль в зависимости от наличия каких-либо событий, устанавливая значение количества реплик для развертывания равным 1 или 0, в зависимости от вашего минимального количества реплик. KEDA также предоставляет данные о показателях в HPA, который обрабатывает масштабирование до 1 и после него.

  • Масштабатор: Подключается к внешнему компоненту (например, ServiceBus) и получает метрики (например, глубину очереди)
  • Оператор (агент): Отвечает за “активацию” развертывания и создание объекта автоматического масштабирования горизонтального модуля
  • Адаптер метрик: Предоставляет метрики из внешних источников для автоматического масштабирования горизонтального модуля
  • KEDA - это тонкий слой, созданный поверх Kubernetes для обеспечения масштабируемой обработки сообщений с использованием функций Azure и других моделей разработки. Это дает вам более точный контроль над операциями масштабирования, которые обычно выполняются за кулисами при запуске функций Azure непосредственно в Azure.
  • Хотя KEDA имеет встроенную поддержку первоклассных функций Azure, она не ограничивается функциями Azure. Концепция работает для всех типов приложений, управляемых сообщениями, которые необходимо масштабировать на основе таких показателей, как сообщения в сервисной шине Azure.
  • Сокращайте затраты и повышайте скорость реагирования
  • Идеально подходит для интенсивных рабочих нагрузок, основанных на событиях
  • Работает в облаке и на месте.

Комментарии 0

Авторизуйтесь чтобы оставить комментарий