Instalación del complemento de escalado automático controlado por eventos de Kubernetes (KEDA) mediante una plantilla de ARM
En este artículo se muestra cómo implementar el complemento de escalado automático controlado por eventos de Kubernetes (KEDA) en Azure Kubernetes Service (AKS) mediante una plantilla de ARM.
Importante
La versión de Kubernetes del clúster determina qué versión de KEDA se instalará en el clúster de AKS. Para ver qué versión de KEDA se asigna a cada versión de AKS, vea la columna de complementos administrados de AKS de la tabla de versiones de componentes de Kubernetes.
En el caso de las versiones de Kubernetes de disponibilidad general, AKS ofrece compatibilidad completa con la versión secundaria de KEDA correspondiente en la tabla. Las versiones preliminares de Kubernetes y la revisión más reciente de KEDA están parcialmente cubiertas por el soporte técnico al cliente de la mejor manera posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Nota:
La versión 2.15 de KEDA presenta un cambio importante que quita la compatibilidad con la identidad de pod. Se recomienda pasar a la identidad de la carga de trabajo para la autenticación si usa la identidad de pod. Aunque el complemento administrado por KEDA no ejecuta actualmente la versión 2.15 de KEDA, comenzará a ejecutarlo en la versión preliminar 1.31 de AKS.
Para obtener más información sobre cómo escalar de forma segura las aplicaciones con identidad de carga de trabajo, lea nuestro tutorial. Para ver la directiva de cambio importante o de desuso de KEDA, lea la documentación oficial.
Antes de empezar
- Necesita una suscripción de Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- Necesita tener instalada la CLI de Azure.
- En este artículo se supone que tiene un grupo de recursos de Azure existente. Si no tiene un grupo de recursos existente, puede crear uno mediante el comando
az group create
. - Asegúrese de que tiene configuradas las reglas de firewall para permitir el acceso al servidor de API de Kubernetes. Para más información, consulte Reglas de FQDN y red de salida para clústeres de Azure Kubernetes Service (AKS).
- Creación de un par de claves SSH.
Nota:
Si usa id. de carga de trabajo de Microsoft Entra ID y habilita KEDA antes del identificador de carga de trabajo, debe reiniciar los pods del operador KEDA para que se puedan insertar las variables de entorno adecuadas:
Para reiniciar los pods, ejecute
kubectl rollout restart deployment keda-operator -n kube-system
.Obtenga pods de operador KEDA mediante
kubectl get pod -n kube-system
y busque pods que comiencen porkeda-operator
.Compruebe la inserción correcta de las variables de entorno ejecutando
kubectl describe pod <keda-operator-pod> -n kube-system
. EnEnvironment
, debería ver los valores deAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
yAZURE_AUTHORITY_HOST
.
Creación de un par de claves SSH
Vaya a Azure Cloud Shell.
Cree un par de claves SSH con el comando
az sshkey create
.az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
Habilitación del complemento KEDA con una plantilla de ARM
Implemente la plantilla de ARM para un clúster de AKS.
Seleccione Editar plantilla.
Habilite el complemento KEDA especificando el campo
workloadAutoScalerProfile
en la plantilla de ARM, como se muestra en el ejemplo siguiente:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
Seleccione Guardar.
Actualice los valores necesarios para la plantilla de ARM:
- Suscripción: seleccione la suscripción de Azure que se va a usar para la implementación.
- Grupo de recursos: seleccione el grupo de recursos que se va a usar para la implementación.
- Región: seleccione la región que se va a usar para la implementación.
- Prefijo de DNS: escriba un nombre de DNS único para usar en el clúster.
- Nombre de usuario de administración de Linux: escriba un nombre de usuario para el clúster.
- Origen de clave pública SSH: seleccione Usar clave existente almacenada en Azure.
- Claves de almacén: seleccione el par de claves que creó anteriormente en el artículo.
Seleccione Revisar y crear>Crear.
Conectarse al clúster AKS
Para conectarse al clúster de Kubernetes desde su dispositivo local, use kubectl, el cliente de la línea de comandos de Kubernetes.
Si usa Azure Cloud Shell, kubectl
ya está instalado. También se puede instalar localmente. Para ello debe usar el comando az aks install-cli
.
- Configure
kubectl
para conectarse al clúster de Kubernetes, use el comando az aks get-credentials. En el ejemplo siguiente se obtienen las credenciales del clúster de AKS llamado MyAKSCluster en el grupo de recursos MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
Implementación de ejemplo
El siguiente fragmento es un ejemplo de implementación que crea un clúster con KEDA activado y un grupo de nodos compuesto por tres nodos 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"
}
}
]
}
Inicio del escalado de aplicaciones con KEDA
Puede escalar automáticamente las aplicaciones con KEDA mediante definiciones de recursos personalizados (CRD). Para más información, consulte la documentación de KEDA.
Eliminación de recursos
Elimine el grupo de recursos y todos los recursos relacionados usando el comando
az group delete
.az group delete --name <resource-group-name>
Pasos siguientes
En este artículo se ha mostrado cómo instalar el complemento KEDA en un clúster de AKS y, después, comprobar que esté instalado y en ejecución. Con el complemento KEDA instalado en el clúster, puede implementar una aplicación de ejemplo para iniciar el escalado de aplicaciones.
Para obtener información sobre la solución de problemas de KEDA, consulte Solución de problemas del complemento de Escalado automático controlado por eventos de Kubernetes (KEDA).
Para obtener más información, vea los documentos de KEDA de nivel superior .
Azure Kubernetes Service