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


Установите дополнение «Автоматическое масштабирование на основе событий Kubernetes» (KEDA) с помощью шаблона ARM

Это важно

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

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

Это важно

Версия 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.

Создание пары ключей SSH

  1. Перейдите в Azure Cloud Shell.

  2. Создайте пару ключей SSH с помощью az sshkey create команды.

    az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
    

Включите дополнение KEDA с помощью шаблона ARM

  1. Разверните шаблон ARM для кластера AKS.

  2. Выберите Редактировать шаблон.

  3. Включите надстройку KEDA, указав workloadAutoScalerProfile поле в шаблоне ARM, как показано в следующем примере:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Нажмите кнопку "Сохранить".

  5. Обновите необходимые значения для шаблона ARM:

    • Подписка. Выберите подписку Azure, используемую для развертывания.
    • Группа ресурсов. Выберите группу ресурсов, используемую для развертывания.
    • Регион: выберите регион, используемый для развертывания.
    • Префикс DNS: введите уникальное DNS-имя, используемое для кластера.
    • Имя пользователя администратора Linux: введите имя пользователя для кластера.
    • Источник открытого ключа SSH: выберите "Использовать существующий ключ", хранящийся в Azure.
    • Ключи магазина: выберите пару ключей, созданную ранее в статье.
  6. Выберите Просмотреть и создать>Создать.

Подключение к кластеру AKS

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

Если вы используете Azure Cloud Shell, kubectl уже установлен. Вы также можете установить его локально с помощью az aks install-cli команды.

  • Настройте kubectl, чтобы подключиться к вашему кластеру Kubernetes, используйте команду az aks get-credentials. В следующем примере получаются учетные данные для кластера AKS с именем MyAKSCluster в MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Пример развертывания

Следующий фрагмент кода — это пример развертывания, создающий кластер с поддержкой KEDA с одним пулом узлов, состоящим из трех DS2_v5 узлов.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "apiVersion": "2023-03-01",
            "dependsOn": [],
            "type": "Microsoft.ContainerService/managedClusters",
            "location": "westcentralus",
            "name": "myAKSCluster",
            "properties": {
                "kubernetesVersion": "1.27",
                "enableRBAC": true,
                "dnsPrefix": "myAKSCluster",
                "agentPoolProfiles": [
                    {
                        "name": "agentpool",
                        "osDiskSizeGB": 200,
                        "count": 3,
                        "enableAutoScaling": false,
                        "vmSize": "Standard_D2S_v5",
                        "osType": "Linux",
                        "type": "VirtualMachineScaleSets",
                        "mode": "System",
                        "maxPods": 110,
                        "availabilityZones": [],
                        "nodeTaints": [],
                        "enableNodePublicIP": false
                    }
                ],
                "networkProfile": {
                    "loadBalancerSku": "standard",
                    "networkPlugin": "kubenet"
                },
                "workloadAutoScalerProfile": {
                    "keda": {
                        "enabled": true
                    }
                }
            },
            "identity": {
                "type": "SystemAssigned"
            }
        }
    ]
}

Запуск масштабирования приложений с помощью KEDA

Вы можете автомасштабировать свои приложения с помощью KEDA и пользовательских определений ресурсов (CRD). Дополнительные сведения см. в документации ПО KEDA.

Удаление ресурсов

  • Удалите группу ресурсов и все связанные ресурсы с помощью az group delete команды.

    az group delete --name <resource-group-name>
    

Дальнейшие шаги

В этой статье показано, как установить надстройку KEDA в кластере AKS, а затем убедиться, что она установлена и запущена. Установив надстройку KEDA в кластере, вы можете развернуть пример приложения для запуска масштабирования приложений.

Дополнительные сведения об устранении неполадок KEDA см. в разделе "Устранение неполадок с автомасштабированием на основе событий Kubernetes (KEDA)".

Дополнительные сведения см. в вышестоящей документации KEDA.