Установка надстройки автомасштабирования на основе событий 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, ознакомьтесь с официальной документацией.
Подготовка к работе
- Вам требуется подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
- Необходимо установить Azure CLI.
- В этой статье предполагается, что у вас есть существующую группу ресурсов Azure. Если у вас нет существующей группы ресурсов, ее можно создать с помощью
az group create
команды. - Убедитесь, что у вас есть правила брандмауэра, настроенные для предоставления доступа к серверу API Kubernetes. Дополнительные сведения см. в разделе "Правила исходящей сети и полное доменное имя" для кластеров Служба Azure Kubernetes (AKS).
- Создание пары ключей SSH.
Примечание.
Если вы используете Идентификация рабочей нагрузки Microsoft Entra и включите KEDA перед Идентификация рабочей нагрузки, необходимо перезапустить модули pod оператора KEDA, чтобы можно было внедрить соответствующие переменные среды:
Перезапустите модули pod, выполнив команду
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
Выберите Редактировать шаблон.
Включите надстройку 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