Vereinfachte automatische Anwendungsskalierung mit dem Kubernetes-Add-On für ereignisgesteuerte automatische Skalierung (Kubernetes Event-Driven Autoscaling, KEDA)

KEDA (Kubernetes-based Event Driven Autoscaling), ein Graduate-Projekt der CNCF, ist eine einfache Einzweckkomponente, die die Autoskalierung von Anwendungen erleichtern soll.

Sie wendet ereignisgestützte automatische Skalierung an, um Ihre Anwendung zu skalieren, um die Nachfrage auf nachhaltige und kostengünstige Weise mit Skalierung-bis-Null zu bedienen.

Das KEDA-Add-On vereinfacht diesen Vorgang weiter, indem es eine verwaltete KEDA-Installation bereitstellt, die Ihnen einen umfassenden Katalog von Azure KEDA-Skalierungen bietet, mit denen Sie Ihre Anwendungen in Ihrem AKS-Cluster (Azure Kubernetes Services) skalieren können.

Aufbau

KEDA bietet zwei Hauptkomponenten:

  • Der KEDA-Operator ermöglicht es Endbenutzer*innen, Workloads von 0 bis N-Instanzen mit Unterstützung für Kubernetes-Bereitstellungen, -Aufträge, -StatefulSets oder alle benutzerdefinierten Ressourcen, die die Unterressource /scale definieren, hoch oder herunter zu skalieren.
  • Der Metrikserver stellt dem HPA (Horizontal Pod Autoscaler) in Kubernetes externe Metriken wie Meldungen in einem Kafka-Thema oder die Anzahl der Ereignisse in einem Azure Event Hub zum Zweck der automatischen Skalierung zur Verfügung. Aufgrund von Upstream-Einschränkungen muss KEDA der einzige installierte Metrikadapter sein.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

Erfahren Sie mehr über die Funktionsweise von KEDA in der offiziellen KEDA-Dokumentation.

Installation

KEDA kann Ihrem AKS-Cluster (Azure Kubernetes Service) hinzugefügt werden, indem das KEDA-Add-On mithilfe einer ARM-Vorlage oder der Azure CLI aktiviert wird.

Das KEDA-Add-On bietet eine vollständig unterstützte Installation von KEDA, die in AKS integriert ist.

Funktionen und Features

KEDA bietet die folgenden Funktionen und Features:

  • Erstellen von nachhaltigen und kosteneffizienten Anwendungen mit Skalierung bis Null
  • Bedarfsgesteuertes Skalieren von Anwendungsworkloads mithilfe eines umfassenden Katalogs von Azure KEDA-Skalierungen
  • Führen Sie automatische Skalierung von Anwendungen mit ScaledObjects durch, wie Bereitstellungen, StatefulSets oder beliebigen benutzerdefinierten Ressourcen, die die /scale-Unterressource definieren
  • Automatische Skalierung von auftragsartigen Workloads mit ScaledJobs
  • Verwenden Sie Sicherheit auf Produktionsniveau, indem Sie die automatische Authentifizierung von den Workloads entkoppeln.
  • Verwenden Sie eine eigene externe Skalierung, um mit bei der automatischen Skalierung mit maßgeschneiderten Entscheidungen zu arbeiten
  • Integration mit Microsoft Entra Workload ID für die Authentifizierung

Hinweis

Wenn Sie die Workloadidentität verwenden möchten, aktivieren Sie das Workload ID-Add-On, bevor Sie das KEDA-Add-On aktivieren.

Add-On-Einschränkungen

Für das KEDA-AKS-Add-On gelten die folgenden Einschränkungen:

  • Das HTTP-Add-On (Vorschau) von KEDA zum Skalieren von HTTP-Workloads wird nicht zusammen mit der Erweiterung installiert sondern kann separat bereitgestellt werden.
  • Die externe Skalierung für Azure Cosmos DB von KEDA für die Skalierung auf der Grundlage des Azure Cosmos DB-Änderungsfeeds wird nicht zusammen mit der Erweiterung installiert sondern kann separat bereitgestellt werden.
  • Nur ein Metrikserver ist im Kubernetes-Cluster zulässig. Aus diesem Grund sollte das KEDA-Add-On den einzigen Metrikserver innerhalb des Clusters bilden.
    • Mehrfachinstallationen von KEDA werden nicht unterstützt.

Zu allgemeinen KEDA-Fragen empfehlen wir den Besuch der FAQ-Übersicht.

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.

Unterstützte Kubernetes- und KEDA-Versionen

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:

Nächste Schritte