Installera tillägget Kubernetes Event-driven Autoscaling (KEDA) med hjälp av en ARM-mall

Den här artikeln visar hur du distribuerar tillägget Kubernetes Händelsedriven autoskalning (KEDA) till Azure Kubernetes Service (AKS) med hjälp av en ARM-mall.

Viktigt!

Kubernetes-klustret avgör vilken KEDA-version som ska installeras i AKS-klustret. Information om vilken KEDA-version som mappas till varje AKS-version finns i kolumnen AKS-hanterade tillägg i kubernetes-komponentversionstabellen.

För GA Kubernetes-versioner erbjuder AKS fullt stöd för motsvarande KEDA-delversion i tabellen. Förhandsversioner av Kubernetes och den senaste KEDA-korrigeringen omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

Innan du börjar

Kommentar

Om du använder Microsoft Entra-arbetsbelastnings-ID och aktiverar KEDA före arbetsbelastnings-ID måste du starta om KEDA-operatorpoddarna så att rätt miljövariabler kan matas in:

  1. Starta om poddarna genom att köra kubectl rollout restart deployment keda-operator -n kube-system.

  2. Hämta KEDA-operatorpoddar med hjälp av kubectl get pod -n kube-system och hitta poddar som börjar med keda-operator.

  3. Kontrollera att miljövariablerna har injicerats genom att köra kubectl describe pod <keda-operator-pod> -n kube-system. Under Environmentbör du se värden för AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEoch AZURE_AUTHORITY_HOST.

Skapa ett SSH-nyckelpar

  1. Navigera till Azure Cloud Shell.

  2. Skapa ett SSH-nyckelpar med kommandot az sshkey create .

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

Aktivera KEDA-tillägget med en ARM-mall

  1. Distribuera ARM-mallen för ett AKS-kluster.

  2. Välj Redigera mall.

  3. Aktivera KEDA-tillägget genom att workloadAutoScalerProfile ange fältet i ARM-mallen, enligt följande exempel:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Välj Spara.

  5. Uppdatera de värden som krävs för ARM-mallen:

    • Prenumeration: Välj den Azure-prenumeration som ska användas för distributionen.
    • Resursgrupp: Välj den resursgrupp som ska användas för distributionen.
    • Region: Välj den region som ska användas för distributionen.
    • Dns-prefix: Ange ett unikt DNS-namn som ska användas för klustret.
    • Användarnamn för Linux-administratör: Ange ett användarnamn för klustret.
    • Offentlig SSH-nyckelkälla: Välj Använd befintlig nyckel som lagras i Azure.
    • Lagra nycklar: Välj det nyckelpar som du skapade tidigare i artikeln.
  6. Välj Granska + skapa>Skapa.

Anslut till ditt AKS-kluster

Om du vill ansluta till Kubernetes-klustret från din lokala enhet använder du kubectl, Kubernetes-kommandoradsklienten.

Om du använder Azure Cloud Shell är kubectl redan installerat. Du kan också installera den lokalt med hjälp av az aks install-cli kommandot .

  • Konfigurera kubectl för att ansluta till kubernetes-klustret med kommandot az aks get-credentials . I följande exempel hämtas autentiseringsuppgifter för AKS-klustret med namnet MyAKSCluster i MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Exempel på distribution

Följande kodfragment är en exempeldistribution som skapar ett kluster med KEDA aktiverat med en enda nodpool bestående av tre DS2_v5 noder.

{
    "$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"
            }
        }
    ]
}

Börja skala appar med KEDA

Du kan autoskala dina appar med KEDA med hjälp av anpassade resursdefinitioner (CRD). Mer information finns i KEDA-dokumentationen.

Ta bort resurser

  • Ta bort resursgruppen och alla relaterade resurser med kommandot az group delete .

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

Nästa steg

Den här artikeln visar hur du installerar KEDA-tillägget i ett AKS-kluster och sedan kontrollerar att det är installerat och körs. Med KEDA-tillägget installerat i klustret kan du distribuera ett exempelprogram för att börja skala appar.

Information om KEDA-felsökning finns i Felsöka tillägget Kubernetes Händelsedriven autoskalning (KEDA).

Mer information finns i de överordnade KEDA-dokumenten.