Grundlegende Problembehandlung bei der Erstellung von AKS-Clustern

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 erstellen oder bereitstellen können.

Voraussetzungen

Anzeigen von Fehlern aus Azure CLI

Wenn Sie Cluster mithilfe von Azure CLI erstellen, werden Fehler als Ausgabe aufgezeichnet, wenn der Vorgang fehlschlägt. Hier erfahren Sie, wie eine Befehls-, Benutzer- und Vorgangsausgabe in einer Bash-Konsole angezeigt werden kann:

$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://docs.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y

(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Code: ControlPlaneAddOnsNotReady

Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Diese Fehler enthalten häufig detaillierte Beschreibungen der Fehler bei der Clustererstellung und stellen Links zu Artikeln bereit, die weitere Details enthalten. Darüber hinaus können Sie unsere Artikel zur Problembehandlung als Referenz auf der Grundlage des Fehlers verwenden, den ein Azure CLI-Vorgang erzeugt.

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 nach aktivitätsprotokoll. Oder wählen Sie "Benachrichtigungen" (das Glockensymbol ) und dann "Weitere Ereignisse" im Aktivitätsprotokoll aus.

Die Liste der Protokolle auf der Seite " Aktivitätsprotokoll" enthält einen Zeileneintrag, in dem der Wert der Spalte " Vorgangsname " den Namen "Verwalteten Cluster erstellen oder aktualisieren" trägt. Das entsprechende Ereignis, das durch den Spaltenwert initiiert wird, wird auf den Namen Ihres Geschäfts-, Schul- oder Unikontos festgelegt. Wenn der Vorgang erfolgreich ist, zeigt der Statusspaltenwert "Akzeptiert" an. Außerdem werden Unteroperationseinträge für die Erstellung der Clusterkomponenten angezeigt, z. B. die folgenden Vorgangsnamen:

  • Erstellen oder Aktualisieren der Routentabelle
  • Erstellen oder Aktualisieren einer Netzwerksicherheitsgruppe
  • Benutzer zugewiesene Identitätserstellung aktualisieren
  • Erstellen oder Aktualisieren von Load Balancer
  • Erstellen oder Aktualisieren einer öffentlichen IP-Adresse
  • Rollenzuweisung erstellen
  • Ressourcengruppe aktualisieren

In diesen Unteroperationseinträgen ist der Statuswert "Succeeded" und das durch das Feld initiierte Ereignis auf AzureContainerService festgelegt.

Was geschieht, wenn stattdessen ein Fehler aufgetreten ist? In diesem Fall zeigt das Feld "Verwalteten Clustervorgangsstatus erstellen oder aktualisieren" "Fehlgeschlagen" an. Im Gegensatz zu den Vorgängen zum Erstellen von Clusterkomponenten müssen Sie hier den Eintrag für einen fehlgeschlagenen Vorgang erweitern, um die Unteroperationseinträge zu überprüfen. Typische Namen für Unteroperationen sind Richtlinienaktionen, z. B. "Audit"-Richtlinienaktion und "auditIfNotExists"-Richtlinienaktion. Einige der Unteroperationen zeigen weiterhin, dass sie erfolgreich waren.

Zur weiteren Untersuchung können Sie einen der fehlgeschlagenen Unteroperationen auswählen. Ein Seitenbereich wird geöffnet, sodass Sie weitere Informationen zum Untervorgang ü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 enthält in der Regel die hilfreichsten Informationen.

Anzeigen von Clustererkenntnissen

Wurde der Cluster im Azure-Portal erstellt und ist er dort sichtbar? Wenn dies zutrifft, können Sie Clustererkenntnisse generieren, die Ihnen bei der Problembehandlung helfen. Führen Sie die folgenden Schritte aus, um auf dieses Feature zuzugreifen:

  1. Suchen Sie im Azure-Portal nach Kubernetes-Diensten, und wählen Sie sie aus.

  2. Wählen Sie den Namen Ihres AKS-Clusters aus.

  3. Wählen Sie im Navigationsbereich der AKS-Clusterseite "Diagnose" aus, und lösen Sie Probleme.

  4. Wählen Sie auf der Seite "Probleme diagnostizieren und lösen " den Link " Clustererkenntnisse" aus . Das Cluster-Insights-Tool analysiert Ihren Cluster und stellt dann eine Liste seiner Ergebnisse im Abschnitt "Beobachtungen und Lösungen" auf der Seite "Cluster Insights" bereit.

  5. 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

Im 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 Ressourcengruppe für verwaltete Cluster 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 im 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 MC_ Ressourcengruppe nicht zu ändern. Diese Aktion kann unerwünschte Auswirkungen auf Ihren AKS-Cluster haben.

Um den Status einer Vm-Skalierungsgruppe zu überprüfen, können Sie den Namen des Skalierungssatzes in der Liste der Ressourcen für die Ressourcengruppe auswählen. Es könnte einen Namen haben, der aks-nodepool1-12345678-vmss ähnelt, und er würde einen Typwert der Vm-Skalierung festlegen. Der Status des Skalierungssatzes wird oben auf der Übersichtsseite 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. Für einen Skalierungssatz können Sie den Statustext "Fehlgeschlagen " auswählen, um Details zu dem 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 Beispielwert
Status Fehler bei der Bereitstellung
Ebene Error
Code ProvisioningState/failed/VMExtensionProvisioningError

Wählen Sie die Zeile aus, um das Feld "Nachricht " anzuzeigen. Dies enthält noch weitere Informationen zu diesem Fehler. Das Feld "Nachricht " für die Beispielzeile beginnt beispielsweise im folgenden Text:

Der virtuelle Computer hat einen Fehler bei der Verarbeitung der Erweiterung "vmssCSE" gemeldet. Fehlermeldung: "Fehler beim Aktivieren: Befehl konnte nicht ausgeführt werden: Befehl mit Beendigungsstatus beendet=50 [stdout] [stderr] 0 0 0 --:

Mit diesen Informationen können Sie schließen, dass die virtuellen Computer im Skalierungssatz fehlgeschlagen sind und den Ausgangsstatus 50 generiert haben.

Hinweis

Wenn die Clusterbereitstellung nicht den Punkt erreicht hat, an dem diese Ressourcen erstellt wurden, können Sie möglicherweise die verwaltete Clusterressourcengruppe in der Azure-Portal nicht überprüfen.

Verwenden von Kubectl-Befehlen

Geben Sie kubectl-Befehle ein, um eine weitere Option zur Fehlerbehandlung in Ihrem Cluster zu erhalten, 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 Typ des Fehlers und wann er aufgetreten ist, können Sie sich möglicherweise nicht bei Ihrem Cluster anmelden, um weitere Details zu erhalten. Wenn Ihr Cluster jedoch erstellt wurde und im Azure-Portal angezeigt wird, sollten Sie sich anmelden und Kubectl-Befehle ausführen können.

Clusterknoten anzeigen (kubectl get nodes)

Um weitere Details zum Bestimmen des Status der Knoten zu erhalten, zeigen Sie die Clusterknoten an, indem Sie den Befehl kubectl get nodes eingeben. In diesem Beispiel werden keine Knoten im Cluster 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 kubectl get pods folgenden Befehl ein:

$ 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)

Durch die Beschreibung des Status der Pods 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.