Delen via


De Keda-invoegtoepassing (Kubernetes Event-driven Autoscaling) installeren met behulp van een ARM-sjabloon

In dit artikel leest u hoe u de invoegtoepassing Kubernetes Event Driven AutoScaling (KEDA) implementeert in Azure Kubernetes Service (AKS) met behulp van een ARM-sjabloon.

Belangrijk

De Kubernetes-versie van uw cluster bepaalt welke KEDA-versie op uw AKS-cluster wordt geïnstalleerd. Als u wilt zien welke KEDA-versie aan elke AKS-versie wordt toegewezen, raadpleegt u de kolom met door AKS beheerde invoegtoepassingen van de versietabel van het Kubernetes-onderdeel.

Voor GA Kubernetes-versies biedt AKS volledige ondersteuning voor de bijbehorende secundaire KEDA-versie in de tabel. Kubernetes Preview-versies en de nieuwste KEDA-patch worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

Notitie

KEDA versie 2.15 introduceert een belangrijke wijziging waarmee ondersteuning voor pod-identiteiten wordt verwijderd. We raden u aan over te stappen naar de workloadidentiteit voor uw verificatie als u pod-identiteit gebruikt. Hoewel de door KEDA beheerde invoegtoepassing momenteel niet wordt uitgevoerd op KEDA versie 2.15, wordt deze uitgevoerd in de AKS preview-versie 1.31.

Lees onze zelfstudie voor meer informatie over het veilig schalen van uw toepassingen met workloadidentiteit. Lees de officiële documentatie van KEDA om het belangrijke wijzigings-/afschaffingsbeleid van KEDA weer te geven.

Voordat u begint

Notitie

Als u Microsoft Entra Workload-ID gebruikt en KEDA inschakelt voordat Workload-ID, moet u de KEDA-operatorpods opnieuw starten, zodat de juiste omgevingsvariabelen kunnen worden geïnjecteerd:

  1. Start de pods opnieuw door uit te voeren kubectl rollout restart deployment keda-operator -n kube-system.

  2. Haal KEDA-operatorpods op met behulp van kubectl get pod -n kube-system pods en zoek pods die beginnen met keda-operator.

  3. Controleer of de omgevingsvariabelen zijn geïnjecteerd door uit te voeren kubectl describe pod <keda-operator-pod> -n kube-system. Onder Environmentziet u waarden voor AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEen AZURE_AUTHORITY_HOST.

Een SSH-sleutelpaar maken

  1. Navigeer naar de Azure Cloud Shell.

  2. Maak een SSH-sleutelpaar met behulp van de az sshkey create opdracht.

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

De KEDA-invoegtoepassing inschakelen met een ARM-sjabloon

  1. Implementeer de ARM-sjabloon voor een AKS-cluster.

  2. Selecteer Sjabloon bewerken.

  3. Schakel de KEDA-invoegtoepassing in door het workloadAutoScalerProfile veld in de ARM-sjabloon op te geven, zoals wordt weergegeven in het volgende voorbeeld:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Selecteer Opslaan.

  5. Werk de vereiste waarden voor de ARM-sjabloon bij:

    • Abonnement: Selecteer het Azure-abonnement dat u wilt gebruiken voor de implementatie.
    • Resourcegroep: Selecteer de resourcegroep die u wilt gebruiken voor de implementatie.
    • Regio: Selecteer de regio die u wilt gebruiken voor de implementatie.
    • Dns-voorvoegsel: voer een unieke DNS-naam in die moet worden gebruikt voor het cluster.
    • Gebruikersnaam voor Linux-beheerder: voer een gebruikersnaam in voor het cluster.
    • Openbare SSH-sleutelbron: selecteer Bestaande sleutel gebruiken die is opgeslagen in Azure.
    • Sleutels opslaan: selecteer het sleutelpaar dat u eerder in het artikel hebt gemaakt.
  6. Selecteer Beoordelen en maken>Maken.

Verbinding maken met uw AKS-cluster

Als u vanaf uw lokale apparaat verbinding wilt maken met het Kubernetes-cluster, gebruikt u kubectl, de Kubernetes-opdrachtregelclient.

Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd. U kunt deze ook lokaal installeren met behulp van de az aks install-cli opdracht.

  • Configureer kubectl om verbinding te maken met uw Kubernetes-cluster met de opdracht az aks get-credentials . In het volgende voorbeeld worden referenties opgehaald voor het AKS-cluster met de naam MyAKSCluster in myResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Voorbeeldimplementatie

Het volgende codefragment is een voorbeeldimplementatie waarmee een cluster wordt gemaakt waarvoor KEDA is ingeschakeld met één knooppuntgroep die uit drie DS2_v5 knooppunten bestaat.

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

Apps schalen met KEDA

U kunt uw apps automatisch schalen met KEDA met behulp van aangepaste resourcedefinities (CRD's). Zie de KEDA-documentatie voor meer informatie.

Resources verwijderen

  • Verwijder de resourcegroep en alle gerelateerde resources met behulp van de az group delete opdracht.

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

Volgende stappen

In dit artikel hebt u gezien hoe u de KEDA-invoegtoepassing installeert op een AKS-cluster en vervolgens controleert of deze is geïnstalleerd en wordt uitgevoerd. Als de KEDA-invoegtoepassing op uw cluster is geïnstalleerd, kunt u een voorbeeldtoepassing implementeren om apps te schalen.

Zie De invoegtoepassing Kubernetes Event-driven Autoscaling (KEDA) oplossen voor meer informatie over het oplossen van problemen met KEDA.

Bekijk de upstream KEDA-documenten voor meer informatie.