Grundlegende Problembehandlung bei AKS-Clusterstartproblemen
In diesem Artikel werden die grundlegenden Methoden zur Problembehandlung beschrieben, die Sie verwenden können, wenn Sie einen Microsoft Azure Kubernetes Service (AKS)-Cluster nicht erfolgreich starten können.
Voraussetzungen
Azure CLI (Version 2.0.59 oder höher).
Das Kubernetes-Kubectl-Tool. Führen Sie zum Installieren von Kubectl mithilfe der Azure CLI den Befehl "az aks install-cli " aus.
Anzeigen von Fehlern aus Azure CLI
Wenn Sie Cluster mithilfe der Azure CLI starten, werden Fehler als Ausgabe aufgezeichnet, wenn der Vorgang fehlschlägt. Hier erfahren Sie, wie ein Befehl, eine Benutzereingabe und eine Vorgangsausgabe in einer Bash
Konsole angezeigt werden:
$ az aks start --resource-group myResourceGroup --name MyManagedCluster
(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35
Diese Fehler enthalten häufig detaillierte Beschreibungen darüber, was im Clusterstartvorgang schief gelaufen ist, und sie enthalten Links zu Artikeln, die weitere Details enthalten. Darüber hinaus können Sie unsere Problembehandlungsartikel basierend auf dem Fehler, den ein Azure CLI-Vorgang erzeugt, als Referenz verwenden.
Anzeigen von Fehlerdetails im Azure-Portal
Um die Details zu Fehlern im Azure-Portal anzuzeigen, überprüfen Sie das Azure-Aktivitätsprotokoll. Um die Liste der Aktivitätsprotokolle im Azure-Portal zu finden, suchen Sie im Aktivitätsprotokoll. Oder wählen Sie Benachrichtigungen (das Glockensymbol) und dann im Aktivitätsprotokoll "Weitere Ereignisse" aus.
Die Liste der Protokolle auf der Seite "Aktivitätsprotokoll " enthält einen Zeileneintrag, in dem der Spaltenwert "Vorgangsname " den Namen "Verwalteter Cluster starten" hat. Das entsprechende Ereignis, das von Spaltenwert initiiert wird, wird auf den Namen Ihres Geschäfts-, Schul- oder Unikontos festgelegt. Wenn der Vorgang erfolgreich ist, wird der Spaltenwert "Status" angezeigt.
Was geschieht, wenn stattdessen ein Fehler aufgetreten ist? In diesem Fall wird im Feld "Status des verwalteten Clustervorgangs starten" "Fehlgeschlagen" angezeigt. Im Gegensatz zu vorgängen zum Erstellen von Clusterkomponenten müssen Sie hier den Eintrag für fehlgeschlagene Vorgänge erweitern, um die Unteroperationseinträge zu überprüfen. Typische Unteroperationsnamen sind Richtlinienaktionen, z . B. "Überwachungs"-Richtlinienaktion und "auditIfNotExists"-Richtlinienaktion. Einige Unteroperationen zeigen weiterhin, dass sie erfolgreich waren.
Zur weiteren Untersuchung können Sie eine der fehlgeschlagenen Unteroperationen auswählen. Ein Seitenbereich wird geöffnet, sodass Sie weitere Informationen zur Unteroperation überprüfen können. Sie können Probleme mit Werten für Felder wie "Zusammenfassung", "JSON" und "Änderungsverlauf" beheben. Das JSON-Feld enthält den Ausgabetext für den Fehler im JSON-Format und stellt in der Regel die hilfreichsten Informationen bereit.
Anzeigen von Clustereinblicken
Sie können auch Clustereinblicke generieren, um Ihnen bei der Problembehandlung über das Blatt "Diagnose" und "Lösung von Problemen" im Azure-Portal zu helfen. Führen Sie die folgenden Schritte aus, um auf dieses Feature zuzugreifen:
Suchen Sie im Azure-Portal nach Kubernetes-Diensten, und wählen Sie sie aus.
Wählen Sie den Namen Ihres AKS-Clusters aus.
Wählen Sie im Navigationsbereich der AKS-Clusterseite "Diagnostizieren" aus, und lösen Sie Probleme.
Wählen Sie auf der Seite "Diagnose und Lösung von Problemen " den Link "Clustereinblicke" aus. Das Cluster-Insights-Tool analysiert Ihren Cluster und stellt dann eine Liste der Ergebnisse im Abschnitt "Beobachtungen und Lösungen " auf der Seite "Cluster Insights " bereit.
Wählen Sie eines der Ergebnisse aus, um weitere Informationen zu einem Problem und seinen möglichen Lösungen anzuzeigen.
Anzeigen von Ressourcen im Azure-Portal
In der Azure-Portal möchten Sie möglicherweise die Ressourcen anzeigen, die beim Erstellen des Clusters erstellt wurden. In der Regel befinden sich diese Ressourcen in einer Ressourcengruppe, die mit MC_ beginnt. Die Verwaltete Clusterressourcengruppe hat möglicherweise einen Namen wie MC_MyResourceGroup_MyManagedCluster_location-Code>.< Der Name kann jedoch anders sein, wenn Sie den Cluster mithilfe einer benutzerdefinierten verwalteten Clusterressourcengruppe erstellt haben.
Um die Ressourcengruppe zu finden, suchen Sie in der Azure-Portal nach Ressourcengruppen, und wählen Sie sie aus, und wählen Sie dann die Ressourcengruppe aus, in der der Cluster erstellt wurde. Die Ressourcenliste wird auf der Seite "Übersicht" der Ressourcengruppe angezeigt.
Warnung
Es wird empfohlen, ressourcen in der ressourcengruppe MC_ nicht zu ändern. Diese Aktion kann unerwünschte Auswirkungen auf Ihren AKS-Cluster verursachen.
Um den Status eines Skalierungssatzes für virtuelle Computer zu überprüfen, können Sie den Skalierungssatznamen in der Ressourcenliste der Ressourcengruppe auswählen. Möglicherweise hat er einen Namen ähnlich wie aks-nodepool1-12345678-vmss und einen Typwert des Skalierungssatzes virtueller Computer. Der Status des Skalierungssatzes wird oben auf der Seite "Übersicht" des Knotenpools angezeigt, und weitere Details werden in der Überschrift "Essentials" angezeigt. Wenn die Bereitstellung nicht erfolgreich war, ist der angezeigte Status fehlgeschlagen.
Für alle Ressourcen können Sie Details überprüfen, um besser zu verstehen, warum die Bereitstellung fehlgeschlagen ist. Bei einem Skalierungssatz können Sie den Statustext "Fehlgeschlagen " auswählen, um Details zum Fehler anzuzeigen. Die Details befinden sich in einer Zeile, die die Spalten Status, Ebene und Code enthält. Das folgende Beispiel zeigt eine Zeile mit Spaltenwerten.
Spalte | Beispielswert |
---|---|
Status | Fehler bei der Bereitstellung |
Ebene | Fehler |
Code | ProvisioningState/failed/VMExtensionProvisioningError |
Wählen Sie die Zeile aus, um das Feld "Nachricht " anzuzeigen. Dies enthält noch weitere Informationen zu diesem Fehler. Beispielsweise beginnt das Feld "Nachricht" für die Beispielzeile mit dem folgenden Text:
Der virtuelle Computer hat beim Verarbeiten der Erweiterung "vmssCSE" einen Fehler gemeldet. Fehlermeldung: "Fehler beim Ausführen des Befehls: Befehl beendet mit dem Beendigungsstatus=50 [stdout] [stderr] 0 0 0 --: Mit diesen Informationen bewaffnet, können Sie schließen, dass die virtuellen Computer im Skalierungssatz fehlgeschlagen und generierten Beendigungsstatus 50 fehlgeschlagen sind.
Verwenden von Kubectl-Befehlen
Wenn Sie eine weitere Option zum Beheben von Fehlern in Ihrem Cluster verwenden möchten, geben Sie kubectl-Befehle ein, um Details zu den Ressourcen abzurufen, die im Cluster bereitgestellt wurden. Um kubectl zu verwenden, melden Sie sich zuerst bei Ihrem AKS-Cluster an:
az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster
Je nach Art des Fehlers und auftretenden Fehlers können Sie sich möglicherweise nicht bei Ihrem Cluster anmelden, um weitere Details zu erhalten. Wenn Ihr Cluster jedoch im Azure-Portal erstellt und angezeigt wird, sollten Sie sich anmelden und Kubectl-Befehle ausführen können.
Anzeigen von Clusterknoten (kubectl get nodes)
Um weitere Details zu erhalten, um den Zustand der Knoten zu bestimmen, zeigen Sie die Clusterknoten an, indem Sie den Befehl "kubectl get nodes" eingeben. In diesem Beispiel werden im Cluster keine Knoten gemeldet:
$ kubectl get nodes
No resources found
Anzeigen von Pods im Systemnamespace (kubectl get pods)
Das Anzeigen der Pods im Kube-System-Namespace ist auch eine gute Möglichkeit zur Problembehandlung. Mit dieser Methode können Sie den Status der Kubernetes-System pods anzeigen. In diesem Beispiel geben wir den Befehl ein kubectl get pods
:
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-845757d86-7xjqb 0/1 Pending 0 78m
coredns-autoscaler-5f85dc856b-mxkrj 0/1 Pending 0 77m
konnectivity-agent-67f7f5554f-nsw2g 0/1 Pending 0 77m
konnectivity-agent-8686cb54fd-xlsgk 0/1 Pending 0 65m
metrics-server-6bc97b47f7-dfhbr 0/1 Pending 0 77m
Beschreiben des Status eines Pods (kubectl describe pod)
Indem Sie den Status der Pods beschreiben, können Sie die Konfigurationsdetails und alle Ereignisse anzeigen, die auf den Pods aufgetreten sind. Führen Sie den Befehl "kubectl describe pod" aus:
$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name: coredns-845757d86-7xjqb
Namespace: kube-system
Priority: 2000001000
Priority Class Name: system-node-critical
Node: <none>
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
pod-template-hash=845757d86
version=v20
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 24m (x1 over 25m) default-scheduler no nodes available to schedule pods
Warning FailedScheduling 29m (x57 over 84m) default-scheduler no nodes available to schedule pods
In der Befehlsausgabe können Sie sehen, dass der Pod nicht auf einem Knoten bereitgestellt werden kann, da keine Knoten verfügbar sind.
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.