Teilen über


Installieren des ereignisgesteuerten Kubernetes-Add-Ons für automatische Skalierung (Kubernetes Event-Driven Autoscaling, KEDA) mithilfe einer ARM-Vorlage

In diesem Artikel wird gezeigt, wie Sie das ereignisgesteuerte Kubernetes-Add-On für automatische Skalierung (KEDA) mithilfe einer ARM-Vorlage in Azure Kubernetes Service (AKS) installieren.

Wichtig

Die Kubernetes-Version Ihres Clusters bestimmt, welche KEDA-Version in Ihrem AKS-Cluster installiert wird. Informationen dazu, welche KEDA-Version welcher AKS-Version zugeordnet ist, finden Sie in der Spalte Verwaltete AKS-Add-Ons der Tabelle mit den Kubernetes-Komponentenversionen.

Für Kubernetes-Versionen mit allgemeiner Verfügbarkeit (GA) bietet AKS volle Unterstützung für die entsprechende KEDA-Nebenversion in der Tabelle. Kubernetes-Vorschauversionen und der neueste KEDA-Patch werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Hinweis

In der KEDA Version 2.15 wird ein Breaking Change eingeführt, die Unterstützung von Pod-Identitäten entfernt. Es wird empfohlen, die Workloadidentität für Ihre Authentifizierung zu übertragen, wenn Sie die Pod-Identität verwenden. Während das von KEDA verwaltete Add-On derzeit nicht KEDA Version 2.15 ausführt, wird es ab der AKS-Vorschauversion 1.31 ausgeführt.

Weitere Informationen zum sicheren Skalieren Ihrer Anwendungen mit Workloadidentität finden Sie in unserem Tutorial. Lesen Sie die offizielle Dokumentation von KEDA, um den Breaking Change bzw. die Einstellungsrichtlinie von KEDA anzuzeigen.

Voraussetzungen

Hinweis

Wenn Sie Microsoft Entra Workload ID verwenden und KEDA vor Workload ID aktivieren, müssen Sie die KEDA-Operatorpods neu starten, damit die richtigen Umgebungsvariablen eingefügt werden können:

  1. Sie starten die Pods neu, indem Sie kubectl rollout restart deployment keda-operator -n kube-system ausführen.

  2. Rufen Sie die KEDA-Operatorpods mit kubectl get pod -n kube-system ab, und suchen Sie nach Pods, die mit keda-operator beginnen.

  3. Überprüfen Sie die erfolgreiche Einfügung der Umgebungsvariablen durch Ausführen von kubectl describe pod <keda-operator-pod> -n kube-system. Unter Environment sollten Werte für AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE und AZURE_AUTHORITY_HOST angezeigt werden.

Erstellen eines SSH-Schlüsselpaars

  1. Navigieren Sie zu Azure Cloud Shell.

  2. Erstellen Sie ein SSH-Schlüsselpaar mit dem Befehl az sshkey create.

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

Aktivieren des KEDA-Add-Ons mit einer ARM-Vorlage

  1. Stellen Sie die ARM-Vorlage für einen AKS-Cluster bereit.

  2. Wählen Sie Vorlage bearbeiten aus.

  3. Aktivieren Sie das KEDA-Add-On, indem Sie das Feld workloadAutoScalerProfile in der ARM-Vorlage angeben, wie im folgenden Beispiel gezeigt:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Wählen Sie Speichern aus.

  5. Aktualisieren Sie die erforderlichen Werte für die ARM-Vorlage:

    • Abonnement: Wählen Sie das Azure-Abonnement aus, das Sie für die Bereitstellung verwenden möchten.
    • Ressourcengruppe: Wählen Sie die Ressourcengruppe aus, die für die Bereitstellung verwendet werden soll.
    • Region: Wählen Sie die Region aus, die für die Bereitstellung verwendet werden soll.
    • DNS-Präfix: Geben Sie einen eindeutigen DNS-Namen ein, der für den Cluster verwendet werden soll.
    • Linux-Administratorbenutzername: Geben Sie einen Benutzernamen für den Cluster ein.
    • Quelle des öffentlichen SSH-Schlüssels: Wählen Sie In Azure gespeicherten vorhandenen Schlüssel verwenden aus.
    • Schlüssel speichern: Wählen Sie das Schlüsselpaar aus, das Sie weiter oben im Artikel erstellt haben.
  6. Wählen Sie Bewerten + erstellen>Erstellen aus.

Herstellen einer Verbindung mit dem AKS-Cluster

Zum Herstellen der Verbindung mit dem Kubernetes-Cluster auf Ihrem lokalen Gerät verwenden Sie den Kubernetes-Befehlszeilenclient kubectl.

Wenn Sie Azure Cloud Shell verwenden, ist kubectl bereits installiert. Mit dem Befehl az aks install-cli können Sie sie auch lokal installieren.

  • Mit dem Befehl az aks get-credentials können Sie kubectl für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Im folgenden Beispiel werden Anmeldeinformationen für den AKS-Cluster namens MyAKSCluster in MyResourceGroup abgerufen:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Beispielbereitstellung

Der folgende Ausschnitt ist ein Beispiel für die Bereitstellung eines Clusters mit aktiviertem KEDA und einem einzelnen Knotenpool, der aus drei DS2_v5-Knoten besteht.

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

Starten der Skalierung von Apps mit KEDA

Sie können Ihre Apps mit KEDA mithilfe von benutzerdefinierten Ressourcendefinitionen (CRDs) automatisch skalieren. Weitere Informationen finden Sie in der KEDA-Dokumentation.

Entfernen von Ressourcen

  • Verwenden Sie den Befehl az group delete, um die Ressourcengruppe und alle zugeordneten Ressourcen zu entfernen.

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

Nächste Schritte

In diesem Artikel konnten Sie erfahren, wie Sie das KEDA-Add-On in einem AKS-Cluster installieren und dann überprüfen, ob es installiert wurde und ausgeführt wird. Wenn das KEDA-Add-On in Ihrem Cluster installiert ist, können Sie eine Beispielanwendung bereitstellen, um mit der Skalierung von Apps zu beginnen.

Informationen zur KEDA-Problembehandlung finden Sie unter Problembehandlung für das Add-On für die ereignisgesteuerte automatische Skalierung in Kubernetes.

Weitere Informationen finden Sie in der KEDA-Upstreamdokumentation.