Установка надстройки Автомасштабирования на основе событий Kubernetes (KEDA) с помощью Azure CLI
В этой статье показано, как установить надстройку Kubernetes Autoscaling (KEDA) на Служба Azure Kubernetes (AKS) с помощью Azure CLI.
Внимание
Версия Kubernetes кластера определяет, какая версия KEDA будет установлена в кластере AKS. Сведения о том, какие версии KEDA сопоставляются с каждой версией AKS, см. в столбце управляемых надстроек AKS таблицы версий компонентов Kubernetes.
Для версий GA Kubernetes AKS обеспечивает полную поддержку соответствующей дополнительной версии KEDA в таблице. Предварительные версии Kubernetes и последнее исправление KEDA частично охватываются поддержкой клиентов на основе наилучших усилий. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.
Примечание.
KEDA версии 2.15 представляет критическое изменение, которое удаляет поддержку удостоверений pod. Рекомендуется перейти к удостоверению рабочей нагрузки для проверки подлинности, если вы используете удостоверение pod. Хотя управляемая надстройка KEDA в настоящее время не запускает KEDA версии 2.15, она начнет работать в предварительной версии AKS версии 1.31.
Дополнительные сведения о безопасном масштабировании приложений с удостоверением рабочей нагрузки см. в нашем руководстве. Чтобы просмотреть политику критических изменений и нерекомендуемой политики KEDA, ознакомьтесь с официальной документацией.
Подготовка к работе
- Вам требуется подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
- Необходимо установить Azure CLI.
- Убедитесь, что у вас есть правила брандмауэра, настроенные для предоставления доступа к серверу API Kubernetes. Дополнительные сведения см. в разделе "Правила исходящей сети и полное доменное имя" для кластеров Служба Azure Kubernetes (AKS).
Примечание.
Если вы используете Идентификация рабочей нагрузки 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
.
Установка надстройки KEDA с помощью Azure CLI
Чтобы установить надстройку KEDA, используйте --enable-keda
при создании или обновлении кластера.
Включение надстройки KEDA в кластере AKS
Примечание.
Хотя в KEDA доступны различные варианты настройки, надстройка KEDA в настоящее время предоставляет базовую общую конфигурацию.
Если требуется пользовательские конфигурации, можно вручную изменить файлы KEDA YAML, чтобы настроить установку. Azure не поддерживает пользовательские конфигурации.
Создание кластера AKS с включенной надстройкой KEDA
Создайте группу ресурсов с помощью
az group create
команды.az group create --name myResourceGroup --location eastus
Создайте кластер AKS с помощью
az aks create
команды и включите надстройку KEDA с помощью флага--enable-keda
.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-keda \ --generate-ssh-keys
Включение надстройки KEDA в существующем кластере AKS
Обновите существующий кластер с помощью
az aks update
команды и включите надстройку KEDA с помощью флага--enable-keda
.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-keda
Получение учетных данных для кластера
Получите учетные данные для кластера AKS с помощью
az aks get-credentials
команды.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Проверка установки надстройки KEDA в кластере
Убедитесь, что надстройка KEDA установлена в кластере
az aks show
с помощью команды и задайте для--query
параметра значениеworkloadAutoScalerProfile.keda.enabled
.az aks show --resource-group myResourceGroup --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled"
В следующем примере выходных данных показана установка надстройки KEDA в кластере:
true
Проверка выполнения KEDA в кластере
Убедитесь, что надстройка KEDA запущена в кластере
kubectl get pods
с помощью команды.kubectl get pods -n kube-system
В следующем примере выходных данных показан оператор KEDA, перехватчик приемов и сервер API метрик, установленный в кластере:
keda-admission-webhooks-**********-2n9zl 1/1 Running 0 3d18h keda-admission-webhooks-**********-69dkg 1/1 Running 0 3d18h keda-operator-*********-4hb5n 1/1 Running 0 3d18h keda-operator-*********-pckpx 1/1 Running 0 3d18h keda-operator-metrics-apiserver-**********-gqg4s 1/1 Running 0 3d18h keda-operator-metrics-apiserver-**********-trfcb 1/1 Running 0 3d18h
Проверка версии KEDA в кластере
Чтобы проверить версию KEDA, используйте kubectl get crd/scaledobjects.keda.sh -o yaml
. Например:
kubectl get crd/scaledobjects.keda.sh -o yaml
В следующем примере выходных данных показана конфигурация KEDA в метке app.kubernetes.io/version
:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.0
meta.helm.sh/release-name: aks-managed-keda
meta.helm.sh/release-namespace: kube-system
creationTimestamp: "2023-08-09T15:58:56Z"
generation: 1
labels:
app.kubernetes.io/component: operator
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: keda-operator
app.kubernetes.io/part-of: keda-operator
app.kubernetes.io/version: 2.10.1
helm.toolkit.fluxcd.io/name: keda-adapter-helmrelease
helm.toolkit.fluxcd.io/namespace: 64d3b6fd3365790001260647
name: scaledobjects.keda.sh
resourceVersion: "1421"
uid: 29109c8c-638a-4bf5-ac1b-c28ad9aa11fa
spec:
conversion:
strategy: None
group: keda.sh
names:
kind: ScaledObject
listKind: ScaledObjectList
plural: scaledobjects
shortNames:
- so
singular: scaledobject
scope: Namespaced
# Redacted due to length
Отключение надстройки KEDA в кластере AKS
Отключите надстройку KEDA в кластере
az aks update
с помощью команды с флагом--disable-keda
.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --disable-keda
Следующие шаги
В этой статье показано, как установить надстройку KEDA в кластере AKS с помощью Azure CLI.
Установив надстройку KEDA в кластере, вы можете развернуть пример приложения для запуска масштабирования приложений.
Дополнительные сведения об устранении неполадок KEDA см . в разделе "Устранение неполадок с автомасштабированием на основе событий Kubernetes( KEDA).
Дополнительные сведения см. в вышестоящей документации KEDA.
Azure Kubernetes Service