Problembehandlung für das Kubernetes Add-on für ereignisgesteuerte automatische Skalierung
In diesem Artikel wird die Problembehandlung für das ereignisgesteuerte Kubernetes-Add-On für automatische Skalierung (KEDA) für den Microsoft Azure Kubernetes Service (AKS) beschrieben. Wenn Sie das KEDA AKS-Add-On bereitstellen, treten eventuell Probleme im Zusammenhang mit der Konfiguration der automatischen Anwendungsskalierung auf. Dieser Artikel hilft Ihnen bei der Problembehandlung und bei der Behebung allgemeiner Probleme, 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-Support
Das KEDA-Add-On folgt einem ähnlichen Supportmodell wie andere AKS-Add-Ons. Alle Azure KEDA-Scaler werden unterstützt, aber AKS unterstützt keine Scaler 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 sie 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" können Sie feststellen, 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 den erforderlichen Azure Global-Netzwerkregeln entspricht.
Aktivieren des Add-Ons für Cluster mit selbstverwalteten Open-Source-KEDA-Installationen
Theoretisch können Sie KEDA mehrmals installieren, obwohl Kubernetes nur einen Metrikserver installieren kann. Es wird jedoch nicht empfohlen, mehrere Installationen zu installieren, da nur eine Installation funktionierte.
Wenn das KEDA-Add-On auf einem AKS-Cluster installiert wird, wird die vorherige Installation von Open-Source-KEDA überschrieben, und das Add-On übernimmt. In diesem Szenario gehen die Anpassung und Konfiguration der selbst installierten KEDA-Bereitstellung verloren und werden nicht mehr angewendet.
Obwohl die vorhandene Automatische Skalierung weiterhin betriebsbereit sein könnte, führt diese Situation zu einem Risiko. Das KEDA-Add-On wird anders konfiguriert und unterstützt keine Features wie verwaltete Identitäten. Um Fehler während der Installation zu vermeiden, empfehlen wir, vorhandene KEDA-Installationen zu deinstallieren, bevor Sie das KEDA-Add-On aktivieren.
Um zu ermitteln, welcher Metrikadapter von KEDA verwendet wird, führen Sie den kubectl get
Folgenden Befehl aus:
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
Ist der Namespace nicht kube-system
vorhanden, wird das AKS-Add-On ignoriert, und ein anderer Metrikserver wird verwendet.
So starten Sie KEDA-Operator-Pods neu, 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-Operator-Pods 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-Operator-Pods ab, indem Sie den folgenden Befehl ausführen, und suchen Sie dann Pods mit Namen, die 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 Werte für
AZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
undAZURE_AUTHORITY_HOST
im Abschnitt "Umgebung " 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.