Installer le module complémentaire KEDA (Kubernetes Event-driven Autoscaling) à l’aide d’un modèle ARM

Cet article explique comment déployer le module complémentaire KEDA (Kubernetes Event-driven Autoscaling) sur AKS (Azure Kubernetes Service) à l’aide d’un modèle ARM.

Important

La version Kubernetes de votre cluster détermine la version KEDA installée sur votre cluster AKS. Pour voir la version KEDA mappée à chaque version AKS, consultez la colonne Modules complémentaires gérés par AKS du tableau des versions de composant Kubernetes.

Pour les versions Kubernetes GA, AKS offre une prise en charge complète de la version mineure KEDA correspondante dans le tableau. Les préversions de Kubernetes et le dernier patch KEDA sont partiellement couverts par le service client, dans la mesure du possible. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

Remarque

La version 2.15 de KEDA introduit un changement cassant qui supprime la prise en charge de l’identité de pod. Nous vous recommandons de passer à l’identité de charge de travail pour l’authentification si vous utilisez l’identité de pod. Bien que le module complémentaire managé KEDA n’exécute pas actuellement la version 2.15 de KEDA, il doit commencer à l’exécuter dans la préversion 1.31 d’AKS.

Pour plus d’informations sur la mise à l’échelle sécurisée de vos applications avec l’identité de charge de travail, consultez notre tutoriel. Pour consulter la stratégie de changement cassant/dépréciation de KEDA, lisez la documentation officielle correspondante.

Avant de commencer

Remarque

Si vous utilisez l’ID de charge de travail Microsoft Entra et que vous activez KEDA avant l’ID de charge de travail, vous devez redémarrer les pods d’opérateur KEDA afin que les variables d’environnement appropriées puissent être injectées :

  1. Redémarrez les pods en exécutant kubectl rollout restart deployment keda-operator -n kube-system.

  2. Obtenez des pods d’opérateur KEDA en utilisant kubectl get pod -n kube-system et en recherchant les pods commençant par keda-operator.

  3. Vérifiez que l’injection des variables d’environnement a réussi en exécutant kubectl describe pod <keda-operator-pod> -n kube-system. Sous Environment, vous devez voir les valeurs de AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE et AZURE_AUTHORITY_HOST.

Création d’une paire de clés SSH

  1. Accédez à Azure Cloud Shell.

  2. Créez une paire de clés SSH à l’aide de la commande az sshkey create.

    az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
    

Activer le module complémentaire KEDA avec un modèle ARM

  1. Déployez le modèle ARM pour un cluster AKS.

  2. Sélectionnez Modifier un modèle.

  3. Activez le module complémentaire KEDA en spécifiant le champ workloadAutoScalerProfile dans le modèle ARM, comme illustré dans l’exemple suivant :

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Cliquez sur Enregistrer.

  5. Mettez à jour les valeurs requises pour le modèle ARM :

    • Abonnement : Sélectionnez l’abonnement Azure à utiliser pour le déploiement de la zone d’atterrissage des données.
    • Groupe de ressources : sélectionnez le groupe de ressources à utiliser pour le déploiement.
    • Région : sélectionnez la région à utiliser pour le déploiement.
    • Préfixe DNS : entrez un nom DNS unique à utiliser pour le cluster.
    • Nom d’utilisateur administrateur Linux : entrez un nom d’utilisateur pour le cluster.
    • Source de clé publique SSH : sélectionnez Utiliser une clé existante stockée dans Azure.
    • Stocker les clés : sélectionnez la paire de clés que vous avez créée précédemment dans l’article.
  6. Sélectionnez Vérifier + créer>Créer.

Se connecter à votre cluster AKS

Pour vous connecter au cluster Kubernetes à partir de votre ordinateur local, utilisez kubectl, le client de ligne de commande Kubernetes.

Si vous utilisez Azure Cloud Shell, kubectl est déjà installé. Vous pouvez également l’installer localement avec la commande az aks install-cli.

  • Configurez kubectl pour vous connecter à votre cluster Kubernetes via la commande az aks get-credentials. L’exemple suivant obtient les informations d’identification du cluster AKS nommé MyAKSCluster dans le groupe de ressources MyResourceGroup :
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Exemple de déploiement

L’extrait de code suivant est un exemple de déploiement qui crée un cluster avec KEDA activé avec un pool de nœuds unique composé de trois nœuds 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"
            }
        }
    ]
}

Commencer à mettre à l’échelle des applications avec KEDA

Vous pouvez mettre à l’échelle automatiquement vos applications avec KEDA à l’aide de définitions de ressources personnalisées (CRD). Pour plus d’informations, consultez la documentation KEDA.

Supprimer des ressources

  • Utilisez la commande az group delete pour supprimer le groupe de ressources et toutes les ressources associées.

    az group delete --name <resource-group-name>
    

Étapes suivantes

Cet article vous a montré comment installer le module complémentaire KEDA sur un cluster AKS, puis comment vérifier qu’il est installé et en cours d’exécution. Avec le module complémentaire KEDA installé sur votre cluster, vous pouvez déployer un exemple d’application pour commencer la mise à l’échelle des applications.

Pour plus d’informations sur la résolution des problèmes KEDA, consultez Résoudre les problèmes du module complémentaire Kubernetes Event-driven Autoscaling (KEDA).

Pour plus d’informations, consultez la documentation KEDA en amont.