Поделиться через


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

Это важно

Надстройка KEDA для AKS в настоящее время не поддерживает изменение запросов ЦП или ограничений и других значений Helm для сервера метрик или оператора. Имейте в виду это ограничение при использовании надстройки. Если у вас есть вопросы, вы можете обратиться здесь.

В этой статье рассказывается, как установить надстройку Kubernetes Event-driven Autoscaling (KEDA) в службе Azure Kubernetes Service (AKS) с помощью Azure CLI.

Это важно

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

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

Замечание

KEDA версии 2.15+ вводит важное изменение, которое удаляет поддержку идентификации pod. Рекомендуется перейти к удостоверению рабочей нагрузки для проверки подлинности, если вы используете удостоверение pod. Хотя управляемая надстройка KEDA в настоящее время не поддерживает версию 2.15 KEDA и выше, она начнет поддерживаться в предварительной версии AKS, начиная с версии 1.31.

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

Перед тем как начать

Замечание

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

  1. Перезапустите поды, выполнив команду 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.

Установка надстройки KEDA с помощью Azure CLI

Чтобы установить надстройку KEDA, используйте --enable-keda при создании или обновлении кластера.

Активируйте надстройку KEDA в вашем кластере AKS

Замечание

В то время как KEDA предоставляет различные параметры настройки, надстройка KEDA в настоящее время предоставляет базовую общую конфигурацию.

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

Создание кластера AKS с включенной надстройкой KEDA

  1. Создайте группу ресурсов с помощью команды az group create.

    az group create --name myResourceGroup --location eastus
    
  2. Создайте кластер 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.