Freigeben über


Problembehandlung für das Add-On für die ereignisgesteuerte automatische Skalierung in Kubernetes

In diesem Artikel wird erläutert, wie Sie Probleme mit dem Keda-Add-On (Ereignisgesteuerte automatische Skalierung) von Kubernetes für microsoft Azure Kubernetes Service (AKS) behandeln. Wenn Sie das KEDA AKS-Add-On bereitstellen, treten möglicherweise Probleme auf, die mit der Konfiguration der automatischen Skalierung der Anwendung verbunden sind. Dieser Artikel hilft Ihnen, Fehler zu beheben und häufige Probleme zu beheben, die sich auf das Add-On auswirken, aber nicht in den offiziellen HÄUFIG gestellten Fragen und Problembehandlungsanleitungen für KEDA behandelt werden.

Voraussetzungen

KEDA-Add-On-Unterstützung

Das KEDA-Add-On folgt einem ähnlichen Unterstützungsmodell wie andere AKS-Add-Ons. Alle Azure KEDA-Skalierungsmodule werden unterstützt, aber AKS unterstützt keine Skalierungsmodule von Drittanbietern. Wenn Probleme mit Scalern von Drittanbietern auftreten, öffnen Sie ein Problem im offiziellen KEDA-GitHub-Repository.

Checkliste zur Problembehandlung

Überprüfen und beheben Sie KEDA-Komponenten mithilfe der Anweisungen in den folgenden Abschnitten.

Überprüfen der verfügbaren KEDA-Version

Sie können die verfügbare KEDA-Version mithilfe des Befehls kubectl get ermitteln:

kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'

Die Befehlsausgabe zeigt die installierte Version von KEDA an:

APP
2.8.1

Stellen Sie sicher, dass die Clusterfirewall ordnungsgemäß konfiguriert ist.

KEDA kann Anwendungen möglicherweise nicht erfolgreich skalieren, da es nicht gestartet werden kann.

Wenn Sie die Operatorprotokolle überprüfen, finden Sie möglicherweise Fehlereinträge, die dem folgenden Text ähneln:

1.6545953013458195e+09 ERROR Failed to get API Group-Resources {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/manager/manager.go:313
main.main
/workspace/main.go:87
runtime.main
/usr/local/go/src/runtime/proc.go:255
1.6545953013459463e+09 ERROR setup unable to start manager {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
main.main
/workspace/main.go:97
runtime.main
/usr/local/go/src/runtime/proc.go:255

Im Abschnitt Metrikserver stellen Sie möglicherweise fest, dass KEDA nicht gestartet werden kann:

I0607 09:53:05.297924 1 main.go:147] keda_metrics_adapter "msg"="KEDA Version: 2.7.1"
I0607 09:53:05.297979 1 main.go:148] keda_metrics_adapter "msg"="KEDA Commit: "
I0607 09:53:05.297996 1 main.go:149] keda_metrics_adapter "msg"="Go Version: go1.17.9"
I0607 09:53:05.298006 1 main.go:150] keda_metrics_adapter "msg"="Go OS/Arch: linux/amd64"
E0607 09:53:15.344324 1 logr.go:279] keda_metrics_adapter "msg"="Failed to get API Group-Resources" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344360 1 main.go:104] keda_metrics_adapter "msg"="failed to setup manager" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344378 1 main.go:209] keda_metrics_adapter "msg"="making provider" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344399 1 main.go:168] keda_metrics_adapter "msg"="unable to run external metrics adapter" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"

Dieses Szenario bedeutet wahrscheinlich, dass das KEDA-Add-On aufgrund einer falsch konfigurierten Firewall nicht gestartet werden kann. Um sicherzustellen, dass KEDA ordnungsgemäß ausgeführt wird, konfigurieren Sie die Firewall so, dass sie die global erforderlichen Netzwerkregeln von Azure erfüllt.

Aktivieren des Add-Ons für Cluster mit selbstverwalteten Open-Source-KEDA-Installationen

Theoretisch können Sie KEDA mehrmals installieren, obwohl Kubernetes die Installation nur eines Metrikservers zulässt. Es wird jedoch nicht empfohlen, mehrere Installationen zu installieren, da nur eine Installation funktionieren würde.

Wenn das KEDA-Add-On in einem AKS-Cluster installiert ist, wird die vorherige Installation von Open-Source-KEDA überschrieben, und das Add-On wird übernommen. In diesem Szenario geht die Anpassung und Konfiguration der selbst installierten KEDA-Bereitstellung verloren und wird nicht mehr angewendet.

Obwohl die vorhandene automatische Skalierung weiterhin funktionsfähig ist, birgt diese Situation ein Risiko. Das KEDA-Add-On wird anders konfiguriert und unterstützt keine Features wie die verwaltete Identität. Um Fehler während der Installation zu vermeiden, empfiehlt es sich, vorhandene KEDA-Installationen zu deinstallieren, bevor Sie das KEDA-Add-On aktivieren.

Führen Sie den kubectl get Befehl aus, um zu bestimmen, welcher Metrikadapter von KEDA verwendet wird:

kubectl get APIService/v1beta1.external.metrics.k8s.io -o custom-columns='NAME:.spec.service.name,NAMESPACE:.spec.service.namespace'

Eine Übersicht zeigt den Dienst und namespace, den Kubernetes zum Abrufen von Metriken verwendet:

NAME                              NAMESPACE
keda-operator-metrics-apiserver   kube-system

Warnung

Wenn der Namespace nicht kube-systemist, wird das AKS-Add-On ignoriert, und ein anderer Metrikserver wird verwendet.

Neustarten von KEDA-Operatorpods, wenn die Workloadidentität nicht ordnungsgemäß eingefügt wird

Wenn Sie Microsoft Entra Workload ID verwenden und KEDA aktivieren, bevor die Workload ID verwendet wird, müssen Sie die KEDA-Operatorpods neu starten. Dadurch wird sichergestellt, dass die richtigen Umgebungsvariablen eingefügt werden. Gehen Sie dazu wie folgt vor:

  1. Starten Sie die Pods neu, indem Sie den folgenden Befehl ausführen:

    kubectl rollout restart deployment keda-operator -n kube-system
    
  2. Rufen Sie KEDA-Operatorpods ab, indem Sie den folgenden Befehl ausführen, und suchen Sie dann Nach Pods, deren Namen mit "keda-operator" beginnen.

    kubectl get pod -n kube-system
    
  3. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Umgebungsvariablen erfolgreich eingefügt wurden:

    kubectl describe pod <keda-operator-pod-name> -n kube-system
    

    Wenn die Variablen erfolgreich eingefügt wurden, sollten im Abschnitt Umgebung Werte für AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEund AZURE_AUTHORITY_HOST angezeigt werden.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.