Compartir vía


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

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:

  1. Para reiniciar los pods, ejecute kubectl rollout restart deployment keda-operator -n kube-system.

  2. Obtenga pods de operador KEDA mediante kubectl get pod -n kube-system y busque pods que comiencen por keda-operator.

  3. Compruebe la inserción correcta de las variables de entorno ejecutando kubectl describe pod <keda-operator-pod> -n kube-system. En Environment, debería ver los valores de AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEy AZURE_AUTHORITY_HOST.

Creación de un par de claves SSH

  1. Vaya a Azure Cloud Shell.

  2. 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

  1. Implemente la plantilla de ARM para un clúster de AKS.

  2. Seleccione Editar plantilla.

  3. Habilite el complemento KEDA especificando el campo workloadAutoScalerProfile en la plantilla de ARM, como se muestra en el ejemplo siguiente:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Seleccione Guardar.

  5. 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.
  6. 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 .