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


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

В этой статье показано, как развернуть надстройку Kubernetes 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 в настоящее время не запускает 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.

Создание пары ключей 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.