Freigeben über


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 der Vorgang fehlschlägt, wenn Sie versuchen, Cluster mithilfe der Azure CLI zu erstellen, zeigt die Ausgabe Fehlerinformationen an. Hier ist ein Beispiel für azure CLI-Befehl und -Ausgabe:

# Create a cluster specifying subnet

az aks create --resource-group myResourceGroup
--name MyManagedCluster \
--load-balancer-sku standard \
--vnet-subnet-id /subscriptions/<subscriptions-id>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

Beispiel für die Ausgabe:

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://learn.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

Sie können den Fehlercode und die Fehlermeldung aus der Ausgabe identifizieren. In diesem Fall sind sie:

  • Fehlercode: ControlPlaneAddOnsNotReady
  • Fehlermeldung: 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 Beschreibungen enthalten häufig Details dazu, was bei der Clustererstellung schief gelaufen ist, und sie verknüpfen mit Artikeln, die noch mehr Details enthalten. Darüber hinaus können Sie unsere Problembehandlungsartikel als Referenz verwenden, basierend auf den Fehlern, die der Azure CLI-Vorgang erzeugt.

Anzeigen von Fehlerdetails im Azure-Portal

Um die AKS-Clustererstellungsfehler im Azure-Portal zu untersuchen, öffnen Sie das Aktivitätsprotokoll. Sie können die Ergebnisse nach Ihren Anforderungen filtern. Wählen Sie dazu "Filter hinzufügen" aus, um dem Filter weitere Eigenschaften hinzuzufügen.

Screenshot zum Hinzufügen eines Filters.

Suchen Sie auf der Seite "Aktivitätsprotokoll" nach Protokolleinträgen, in denen in der Spalte "Vorgangsname" "Erstellt" oder "Verwalteter Cluster aktualisieren" angezeigt wird.

Das ereignis, das von Spalte initiiert wird, zeigt den Benutzer an, der den Vorgang ausgeführt hat, bei dem es sich um ein Geschäftskonto, ein Schulkonto oder eine von Azure verwaltete Identität handeln kann.

Wenn der Vorgang erfolgreich ist, wird der Spaltenwert "Status" akzeptiert. Außerdem werden Unteroperationseinträge für die Erstellung der Clusterkomponenten angezeigt, z. B. die folgenden Vorgangsnamen:

  • Route-Tabelle erstellen oder aktualisieren
  • Erstellen oder Aktualisieren der Netzwerksicherheitsgruppe
  • Benutzer zugewiesene Identitätserstellung aktualisieren
  • Erstellen oder Aktualisieren des Lastenausgleichs
  • Erstellen oder Aktualisieren der öffentlichen IP-Adresse
  • Rollenzuweisung erstellen
  • Ressourcengruppe aktualisieren

In diesen Unteroperationseinträgen ist der Statuswert erfolgreich, und das vom Feld initiierte Ereignis wird auf AzureContainerService festgelegt.

Screenshot der Ansicht im Aktivitätsprotokoll.

Was geschieht, wenn stattdessen ein Fehler aufgetreten ist? In diesem Fall ist der Statuswert fehlgeschlagen. Im Gegensatz zu vorgängen zum Erstellen von Clusterkomponenten müssen Sie die fehlgeschlagenen Unteroperationseinträge erweitern, um sie zu überprüfen. Typische Unteroperationsnamen sind Richtlinienaktionen, z . B. "Überwachungs"-Richtlinienaktion und "auditIfNotExists"-Richtlinienaktion. Nicht alle Unteroperationen bestehen zwangsläufig zusammen. Sie können davon ausgehen, dass einige davon erfolgreich sind.

Wählen Sie eine der fehlgeschlagenen Unteroperationen aus, um sie weiter zu untersuchen. Wählen Sie die Registerkarten "Zusammenfassung", "JSON" und "Änderungsverlauf " aus, um das Problem zu beheben. Die JSON-Registerkarte enthält den Ausgabetext für den Fehler im JSON-Format und stellt in der Regel die hilfreichsten Informationen bereit.

Screenshot des detaillierten Protokolls im JSON-Format.

Hier ist ein Beispiel für das detaillierte Protokoll im JSON-Format:

{
     "status": {
        "value": "Failed",
        "localizedValue": "Failed"
    },
    "subStatus": {
        "value": "",
        "localizedValue": ""
    },
    "submissionTimestamp": "2024-08-30T10:06:07Z",
    "subscriptionId": "<subscriptionId>",
    "tenantId": "<tenantId>",
    "properties": {
        "statusMessage": "{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"VMExtensionProvisioningError\",\"message\":\"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.\"}]}}",
}
}

Anzeigen von Clustereinblicken

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 "Diagnostizieren" aus, und lösen Sie Probleme.

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

  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

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, deren Name in 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 sich negativ auf Ihren AKS-Cluster auswirken.

Um den Status eines Skalierungssatzes für virtuelle Computer zu überprüfen, können Sie den Skalierungssatznamen in der Liste der Ressourcen für die Ressourcengruppe auswählen. Möglicherweise hat er einen Name-Wert, der ähnlich wie aks-nodepool1-12345678-vmss aussieht, 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 ein besseres Verständnis darüber zu erhalten, 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 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 im folgenden Text:

Der virtuelle Computer hat beim Verarbeiten der Erweiterung "vmssCSE" einen Fehler gemeldet. Fehlermeldung: "Fehler beim Ausführen: Befehl konnte nicht ausgeführt werden: Befehl beendet mit exit status=50 [stdout] [stderr] 0 0 0 --:

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

Notiz

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

Verwenden von Kubectl-Befehlen

Verwenden Sie kubectl-Befehle zum Beheben von Fehlern in Ihrem Cluster, um Details zu den Ressourcen abzurufen, die im Cluster bereitgestellt wurden. Melden Sie sich dazu 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 in der Azure-Portal erstellt und angezeigt wird, sollten Sie sich anmelden und Kubectl-Befehle ausführen können.

Anzeigen von Clusterknoten (kubectl get nodes)

Um den Status der Clusterknoten zu ermitteln, zeigen Sie die Knoten an, indem Sie den kubectl get nodes Befehl ausführen. 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 pods 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.