Упрощенное автомасштабирование приложений с помощью надстройки автомасштабирования на основе событий Kubernetes (KEDA)

Автомасштабирование на основе событий Kubernetes (KEDA) — это единый и упрощенный компонент, который стремится упростить автомасштабирование приложений и является проектом выпускника CNCF.

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

Надстройка KEDA упрощает развертывание управляемой установки KEDA, предоставляя широкий каталог масштабируемых модулей Azure KEDA, которые можно масштабировать приложения с помощью кластера Служба Azure Kubernetes (AKS).

Архитектура

KEDA предоставляет два основных компонента:

  • Оператор KEDA позволяет конечным пользователям масштабировать рабочие нагрузки от 0 до N экземпляров с поддержкой развертываний, заданий, наборов StatefulSet или любого пользовательского ресурса Kubernetes, определяющего подресурс /scale.
  • Сервер метрик предоставляет такие внешние метрики средству горизонтального автомасштабирования объектов pod (HPA) в Kubernetes для автомасштабирования, например, сообщения в теме Kafka или количество событий в концентраторе событий Azure. Из-за ограничений восходящего потока KEDA должно быть единственным установленным адаптером метрик.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

Узнайте больше о том, как функционирует KEDA в официальной документации по KEDA.

Установка

KEDA можно добавить в кластер Службы Azure Kubernetes (AKS), включив надстройку KEDA с помощью шаблона ARM или Azure CLI.

Надстройка KEDA предоставляет полностью поддерживаемую установку KEDA, интегрированную с кластером AKS.

Функции и возможности

KEDA предоставляет следующие возможности и функции:

  • Создание устойчивых и рентабельных приложений с помощью масштабирования до нуля
  • Масштабирование рабочих нагрузок приложений для удовлетворения спроса с помощью полнофункциональные каталоги масштабируемых модулей Azure KEDA
  • Автомасштабирование приложений с помощью определения ScaledObjects, например Deployments, StatefulSets или любого пользовательского ресурса, который определяет подресурс /scale
  • Автомасштабирование рабочих нагрузок, похожих на задания, с помощью ScaledJobs
  • Используйте безопасность производственного уровня, отделяя проверку подлинности автомасштабирования от рабочих нагрузок
  • Привлечение собственного внешнего средства масштабирования для использования индивидуальных решений по автомасштабированию
  • Интеграция с Идентификация рабочей нагрузки Microsoft Entra для проверки подлинности

Примечание.

Если вы планируете использовать удостоверение рабочей нагрузки, включите надстройку удостоверений рабочей нагрузки перед включением надстройки KEDA.

Ограничения надстройки

Надстройка KEDA для AKS имеет следующие ограничения.

  • Надстройка HTTP KEDA (предварительная версия) для масштабирования рабочих нагрузок HTTP не устанавливается вместе с расширением, но ее можно развернуть отдельно.
  • Внешнее средство масштабирования KEDA для Azure Cosmos DB для масштабирования на основе канала изменений Azure Cosmos DB не устанавливается вместе с расширением, но его можно развернуть отдельно.
  • В кластере Kubernetes разрешен только один сервер метрик. Из-за этого надстройка KEDA должна быть единственным сервером метрик в кластере.
    • Несколько установок KEDA не поддерживаются

Ответы на общие вопросы по KEDA рекомендуем просмотреть в обзоре раздела вопросов и ответов.

Примечание.

Если вы используете Идентификация рабочей нагрузки Microsoft Entra и включите KEDA перед Идентификация рабочей нагрузки, необходимо перезапустить модули pod оператора KEDA, чтобы можно было внедрить соответствующие переменные среды:

  1. Перезапустите модули pod, выполнив команду kubectl rollout restart deployment keda-operator -n kube-system.

  2. Получение модулей pod оператора KEDA с помощью kubectl get pod -n kube-system и поиска модулей pod, которые начинаются с keda-operator.

  3. Проверьте успешное внедрение переменных среды, выполнив команду kubectl describe pod <keda-operator-pod> -n kube-system. В разделе Environmentдолжны отображаться значения для AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEи AZURE_AUTHORITY_HOST.

Поддерживаемые версии Kubernetes и KEDA

Версия Kubernetes кластера определяет, какая версия KEDA будет установлена в кластере AKS. Сведения о том, какие версии KEDA сопоставляются с каждой версией AKS, см. в столбце управляемых надстроек AKS таблицы версий компонентов Kubernetes.

Для версий GA Kubernetes AKS обеспечивает полную поддержку соответствующей дополнительной версии KEDA в таблице. Предварительные версии Kubernetes и последнее исправление KEDA частично охватываются поддержкой клиентов на основе наилучших усилий. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.

Следующие шаги