Упрощенное автомасштабирование приложений с помощью надстройки автомасштабирования на основе событий Kubernetes (KEDA)
Автомасштабирование на основе событий Kubernetes (KEDA) — это единый и упрощенный компонент, который стремится упростить автомасштабирование приложений и является проектом выпускника CNCF.
Оно применяет управляемое событиями автомасштабирование для устойчивого и экономически эффективного масштабирования вашего приложения с целью удовлетворения спроса с масштабированием до нуля.
Надстройка KEDA упрощает развертывание управляемой установки KEDA, предоставляя широкий каталог масштабируемых модулей Azure KEDA, которые можно масштабировать приложения с помощью кластера Служба Azure Kubernetes (AKS).
Примечание.
KEDA версии 2.15 представляет критическое изменение, которое удаляет поддержку удостоверений pod. Рекомендуется перейти к удостоверению рабочей нагрузки для проверки подлинности, если вы используете удостоверение pod. Хотя управляемая надстройка KEDA в настоящее время не запускает KEDA версии 2.15, она начнет работать в предварительной версии AKS версии 1.32.
Дополнительные сведения о безопасном масштабировании приложений с удостоверением рабочей нагрузки см. в нашем руководстве. Чтобы просмотреть политику критических изменений и нерекомендуемой политики KEDA, ознакомьтесь с официальной документацией.
Архитектура
KEDA предоставляет два основных компонента:
- Оператор KEDA позволяет конечным пользователям масштабировать рабочие нагрузки от 0 до N экземпляров с поддержкой развертываний, заданий, наборов StatefulSet или любого пользовательского ресурса Kubernetes, определяющего подресурс
/scale
. - Сервер метрик предоставляет такие внешние метрики средству горизонтального автомасштабирования объектов pod (HPA) в Kubernetes для автомасштабирования, например, сообщения в теме Kafka или количество событий в концентраторе событий Azure. Из-за ограничений вышестоящего потока KEDA должен быть единственным установленным внешним адаптером метрик.
Узнайте больше о том, как функционирует 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, чтобы можно было внедрить соответствующие переменные среды:
Перезапустите модули pod, выполнив команду
kubectl rollout restart deployment keda-operator -n kube-system
.Получение модулей pod оператора KEDA с помощью
kubectl get pod -n kube-system
и поиска модулей pod, которые начинаются сkeda-operator
.Проверьте успешное внедрение переменных среды, выполнив команду
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 частично охватываются поддержкой клиентов на основе наилучших усилий. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.
Следующие шаги
Azure Kubernetes Service