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
- Das Kubernetes kubectl-Tool . Um kubectl mithilfe der Azure CLI zu installieren, führen Sie den Befehl az aks install-cli aus.
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-system
ist, 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:
Starten Sie die Pods neu, indem Sie den folgenden Befehl ausführen:
kubectl rollout restart deployment keda-operator -n kube-system
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
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_FILE
undAZURE_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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für