Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Надстройка 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, ознакомьтесь с официальной документацией.
Перед тем как начать
- Вам требуется подписка Azure. Если у вас нет подписки Azure, можно создать бесплатную учетную запись.
- Необходимо установить Azure CLI.
- В этой статье предполагается, что у вас есть существующую группу ресурсов Azure. Если у вас нет существующей группы ресурсов, ее можно создать с помощью
az group createкоманды. - Убедитесь, что у вас есть правила брандмауэра, настроенные для предоставления доступа к серверу API Kubernetes. Дополнительные сведения см. в разделе Правила исходящей сети и FQDN для кластеров Azure Kubernetes Service (AKS).
- Создайте пару ключей SSH.
Замечание
Если вы используете Идентификатор рабочей нагрузки Microsoft Entra и включили KEDA перед тем, как включили Идентификатор рабочей нагрузки, необходимо перезапустить поды оператора KEDA, чтобы можно было внедрить соответствующие переменные среды:
Перезапустите поды, выполнив команду
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.
Создание пары ключей SSH
Перейдите в Azure Cloud Shell.
Создайте пару ключей SSH с помощью
az sshkey createкоманды.az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
Включите дополнение KEDA с помощью шаблона ARM
Разверните шаблон ARM для кластера AKS.
Выберите Редактировать шаблон.
Включите надстройку KEDA, указав
workloadAutoScalerProfileполе в шаблоне ARM, как показано в следующем примере:"workloadAutoScalerProfile": { "keda": { "enabled": true } }Нажмите кнопку "Сохранить".
Обновите необходимые значения для шаблона ARM:
- Подписка. Выберите подписку Azure, используемую для развертывания.
- Группа ресурсов. Выберите группу ресурсов, используемую для развертывания.
- Регион: выберите регион, используемый для развертывания.
- Префикс DNS: введите уникальное DNS-имя, используемое для кластера.
- Имя пользователя администратора Linux: введите имя пользователя для кластера.
- Источник открытого ключа SSH: выберите "Использовать существующий ключ", хранящийся в Azure.
- Ключи магазина: выберите пару ключей, созданную ранее в статье.
Выберите Просмотреть и создать>Создать.
Подключение к кластеру 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.
Azure Kubernetes Service