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


Установка надстройки Автомасштабирования на основе событий 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, ознакомьтесь с официальной документацией.

Подготовка к работе

Примечание.

Если вы используете Идентификация рабочей нагрузки 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.

Установка надстройки 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.