Problembehandlung bei Azure Kubernetes Service Clustern oder Knoten in einem fehlerhaften Zustand
In diesem Artikel wird erläutert, wie Sie probleme mit einem Microsoft Azure Kubernetes Service-Cluster (AKS) oder Knoten beheben, der in einen fehlerhaften Zustand wechselt.
Häufige Ursachen
Dies sind die häufigsten Ursachen für einen fehlerhaften Cluster oder Knotenpool:
Ursache | Referenz |
---|---|
Fehler bei der Bereitstellung der VM-Erweiterung (Custom Script Extension, CSE) | Problembehandlung von Knotenfehlern, die durch CSE-Fehler verursacht werden |
Wichtige Azure-Ressourcen sind nicht verfügbar | |
Fehler bei der VM-Zuordnung aufgrund von zonalen/regionalen Kapazitäten | |
Fehler bei der VM-Zuweisung aufgrund eines überschrittenen Kernkontingents | Fehler "Quotaexceededed" |
Vom Kunden auferlegte Einschränkungen | |
Workloadprobleme |
Grundlegende Problembehandlung für häufige Fehler, die einen Cluster/Knoten zum Ausfall eines Clusters/Knotens führen
In der folgenden Tabelle sind einige häufige Fehler aufgeführt, die dazu führen können, dass ein Cluster oder Knoten in einen fehlerbehafteten Zustand wechselt, deren Beschreibungen und grundlegende Methoden zur Problembehandlung, um diese Fehler zu beheben.
Fehler | Beschreibung | Problembehandlungsmethode |
---|---|---|
OutboundConnFailVMExtensionError | Dieser Fehler gibt an, dass die VM-Erweiterung aufgrund fehlender ausgehender Konnektivität nicht installiert oder aktualisiert werden kann. | Überprüfen Sie die Regeln für Netzwerksicherheitsgruppen (NSG) und die Firewalleinstellungen des virtuellen Computers oder der VM-Skalierungsgruppe. Stellen Sie sicher, dass die VM oder VM-Skalierungsgruppe auf die folgenden Endpunkte zugreifen kann: https://aka.ms/aks/outbound , https://aka.ms/aks/ssh , https://aka.ms/aks/agent und https://aka.ms/aks/containerinsights . |
Fehler beim Ausgleichen | Dieser Fehler gibt an, dass der Knoten vor dem Upgradevorgang nicht ausgeglichen werden kann. | Überprüfen Sie die Pod-status und -Ereignisse auf dem Knoten mithilfe der kubectl-Befehle: kubectl get pods --all-namespaces -o wide und kubectl describe pod <pod-name> -n <namespace> . Suchen Sie nach Pods, die in einem beendeten oder unbekannten Zustand oder mit Fehlern oder Warnungen in den Ereignissen hängen bleiben. Möglicherweise müssen Sie das Löschen der Pods erzwingen oder den Kubelet-Dienst auf dem Knoten neu starten. |
SubscriptionNotRegistered-Fehler | Dieser Fehler gibt an, dass das Abonnement nicht für die Verwendung des AKS-Ressourcenanbieters registriert ist. | Registrieren Sie das Abonnement mithilfe des az provider register --namespace Microsoft.ContainerService Befehls. |
RequestDisallowedByPolicy-Fehler | Dieser Fehler gibt an, dass der Vorgang durch eine Richtlinie blockiert wird, die auf das Abonnement oder die Ressourcengruppe angewendet wird. | Überprüfen Sie die Richtliniendetails und Richtlinienzuweisungsbereiche. Um den Vorgang zuzulassen, müssen Sie die Richtlinie möglicherweise ändern oder ausschließen. |
QuotaExceeded-Fehler | Dieser Fehler gibt an, dass der Vorgang das Kontingentlimit für einen Ressourcentyp oder eine Region überschreitet. | Überprüfen Sie die aktuelle Kontingentnutzung und das Kontingentlimit für den Ressourcentyp oder die Region mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell. Möglicherweise müssen Sie einige nicht verwendete Ressourcen löschen oder eine Kontingenterhöhung anfordern. |
PublicIPCountLimitReached-Fehler | Dieser Fehler gibt an, dass der Vorgang die maximale Anzahl öffentlicher IP-Adressen erreicht, die in einem Abonnement oder einer Region erstellt werden können. | Überprüfen Sie die aktuelle Nutzung und das Limit für öffentliche IP-Adressen für das Abonnement oder die Region mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell. Möglicherweise müssen Sie einige nicht verwendete öffentliche IP-Adressen löschen oder eine Erhöhung des Grenzwerts für öffentliche IP-Adressen anfordern. |
OverconstrainedAllocationRequest-Fehler | Dieser Fehler gibt an, dass der Vorgang die angeforderte VM-Größe in einer Region nicht zuordnen kann. | Überprüfen Sie die Verfügbarkeit der VM-Größe in der Region mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell. Möglicherweise müssen Sie eine andere VM-Größe oder eine andere Region auswählen. |
ReadOnlyDisabledSubscription-Fehler | Dieser Fehler gibt an, dass das Abonnement derzeit deaktiviert und auf schreibgeschützt festgelegt ist. | Überprüfen und anpassen Sie die Abonnementberechtigungen, da das Abonnement möglicherweise aufgrund von Abrechnungsproblemen, abgelaufenem Guthaben oder Richtlinienverstößen ausgesetzt wurde. |
Grundlegende Problembehandlung anderer möglicher Probleme, die einen Cluster/Knoten zum Ausfall eines Clusters/Knotens führen
In dieser Tabelle werden weitere mögliche Probleme beschrieben, die dazu führen können, dass ein Cluster oder Knoten in einen fehlerhaften Zustand wechselt, sowie deren Beschreibungen und Lösungen zum Beheben dieser Probleme.
Problem | Beschreibung | Lösung |
---|---|---|
Die Subnetzgröße ist zu klein. | Der Vorgang kann den Cluster nicht erstellen oder aktualisieren, da das Subnetz nicht über genügend Speicherplatz für die erforderliche Anzahl von Knoten verfügt. | Löschen Sie den Knotenpool, und erstellen Sie einen neuen mit einer größeren Subnetzgröße mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell. |
Das virtuelle Netzwerk ist blockiert. | Der Vorgang kann nicht mit dem Cluster-API-Server oder der Kubernetes-Steuerungsebene vergemeinschaften, da die Firewall oder eine benutzerdefinierte DNS-Einstellung (Domain Name System) die ausgehenden Verbindungen von den Knoten blockiert. | Lassen Sie den Datenverkehr des Knotens in der Firewall zu, und richten Sie die DNS-Auflösung in Azure mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell ein. |
PDB-Probleme | Der Vorgang kann den Cluster nicht aktualisieren, da ein PDB das Entfernen eines oder mehrerer Pods beendet hat. Ein PDB ist eine Ressource, die einschränkt, wie viele Pods während eines bestimmten Zeitraums freiwillig beendet werden können. | Entfernen Sie vorübergehend den PDB, stimmen Sie den Cluster ab, und fügen Sie dann den PDB mithilfe des Befehlszeilentools kubectl erneut hinzu. |
Infrastrukturprobleme | Der Vorgang kann den Cluster aufgrund eines internen Problems mit dem ARM-Dienst (Azure Resource Manager), der Ressourcen in Azure verwaltet, nicht aktualisieren. | Führen Sie eine Agentpoolabstimmung für jeden Knotenpool und eine Abstimmung für den verwalteten Cluster mithilfe der Azure CLI oder Azure PowerShell durch. |
API-Serverfehler | Der Vorgang kann den Cluster-API-Server oder die Kubernetes-Steuerungsebene aufgrund eines Ausfalls oder eines Fehlers nicht erreichen. | Melden Sie es dem AKS-Supportteam, und geben Sie die relevanten Protokolle und Diagnoseinformationen an. Sie können die Protokolle und Diagnoseinformationen mithilfe des Azure-Portal, der Azure CLI oder Azure PowerShell abrufen. |
Hinweis
- Der in der vorherigen Tabelle erwähnte Vorgang bezieht sich auf jeden Updatevorgang (
PUT
), der auf Kundenseite ausgelöst wird. - In Kubernetes gibt es eine Komponente in einem Controller. Es stellt den tatsächlichen Zustand der Welt sicher, einschließlich des Clusterzustands und potenziell externer Zustände wie ausführende Container für Kubelet oder Lastenausgleichsmodule für einen Cloudanbieter. Es wird am gewünschten Zustand ausgerichtet, der in einem -Objekt angegeben ist. Dieser Ausrichtungsprozess ist eine Schlüsselfunktion des Controllers. Für AKS stellt diese Komponente sicher, dass der Zustand des AKS-Clusters an der gewünschten Konfiguration ausgerichtet ist. Führen
az resource update --ids <AKS cluster id>
Sie aus, um sie manuell auszulösen. Sie können die AKS-Cluster-ID abrufen, indem Sie ausführenaz aks show -n <cluster name> -g <cluster resource group> -o json --query id
. Wenn es Unterschiede zwischen dem tatsächlichen und dem gewünschten Zustand gibt, ergreifen Sie die erforderlichen Maßnahmen, um diese Diskrepanzen zu beheben.
Überprüfung des Bereitstellungsstatus
Wählen Sie zum Überprüfen der cluster-status Bereitstellungsstatusüberprüfung aus. Anschließend wird der Bereitstellungsstatus des Clusters und des Agentpools angezeigt.
Szenario 1: Cluster befindet sich in einem fehlerhaften Zustand
Um dieses Problem zu beheben, rufen Sie den Vorgang ab, der den Fehler verursacht, und ermitteln Sie den Fehler. Hier sind zwei häufige Vorgangsfehler aufgeführt, die zu einem Clusterfehler führen können:
- Fehler bei der Clustererstellung
- Fehler beim Clusterupgrade
Wenn sich ein kürzlich erstellter oder aktualisierter Cluster in einem fehlerhaften Zustand befindet, verwenden Sie die folgenden Methoden, um den Fehler zu beheben:
Untersuchen Sie das Aktivitätsprotokoll , um die Grundursache des Fehlers zu identifizieren.
Sie können das Aktivitätsprotokoll mithilfe des Azure-Portal, derAzure CLI oder Azure PowerShell anzeigen.
Das Aktivitätsprotokoll kann ihnen den Fehlercode und die Meldung im Zusammenhang mit dem Fehler anzeigen. Weitere Informationen zu bestimmten Fehlern finden Sie im Abschnitt Grundlegende Problembehandlung für häufige Fehler, die einen Cluster/Knoten zum Ausfall eines Clusters/Knotens führen .
Verwenden Sie das AKS-Feature "Diagnostizieren und Lösen von Problemen" , um häufige Probleme zu beheben und zu beheben.
Hinweis
Dieses Feature ist nur in der Azure-Portal und der Azure CLI verfügbar.
Anzeigen des Aktivitätsprotokolls für einen fehlerhaften Cluster mithilfe des Azure-Portal
Führen Sie die folgenden Schritte aus, um die Aktivitätsprotokolle für einen fehlerhaften Cluster aus dem Azure-Portal anzuzeigen:
Navigieren Sie im Azure-Portal zur Seite Ressourcengruppen, und wählen Sie die Ressourcengruppe aus, die Ihren Cluster enthält.
Wählen Sie auf der Seite Übersicht den Clusternamen aus der Ressourcenliste aus.
Wählen Sie auf der Clusterseite im linken Menü Aktivitätsprotokoll aus.
Auf der Seite Aktivitätsprotokoll können Sie Ereignisse nach Status, Zeitraum, Ereignis initiiert von und Ereigniskategorie filtern. Beispielsweise können Sie in der Dropdownliste Statusdie Option Fehler auswählen, um nur fehlerhafte Ereignisse anzuzeigen.
Um die Details eines Ereignisses zu überprüfen, wählen Sie den Ereignisnamen aus der Liste aus. Ein neuer Bereich mit der Ereigniszusammenfassung, den Eigenschaften und den JSON-Daten wird geöffnet. Sie können die JSON-Daten auch als Datei herunterladen.
Um den Fehlercode und die Meldung zu überprüfen, die dem Ereignis zugeordnet sind, scrollen Sie nach unten zum Abschnitt Status in der Ereigniszusammenfassung. Sie finden die Fehlerinformationen auch in den Abschnitten eigenschaften und JSON-Daten.
Anzeigen des Aktivitätsprotokolls für einen fehlerhaften Cluster mithilfe der Azure CLI
Wenn Sie die Azure CLI verwenden möchten, um das Aktivitätsprotokoll für einen fehlerhaften Cluster anzuzeigen, führen Sie die folgenden Schritte aus:
Installieren Sie die Azure CLI auf Ihrem Computer, und melden Sie sich mit Ihrem Azure-Konto an.
Listen Sie die Ressourcengruppen in Ihrem Abonnement mit dem
az group list
Befehl auf, und suchen Sie den Namen der Ressourcengruppe, die Ihren Cluster enthält.Listen Sie die Ressourcen in der Ressourcengruppe mithilfe des
az resource list
Befehls mit dem--resource-group
Parameter auf, und suchen Sie den Namen des Clusters.Listen Sie das Aktivitätsprotokoll des Clusters mithilfe des
az monitor activity-log list
Befehls mit den--resource-group
Parametern und--resource
auf. Sie können auch die--status
Parameter ,--start-time
,--end-time
,--caller
und--filter
verwenden, um Ereignisse nach verschiedenen Kriterien zu filtern. Sie können beispielsweise verwenden--status Failed
, um nur fehlerhafte Ereignisse anzuzeigen.Zeigen Sie die Details eines bestimmten Ereignisses mithilfe des
az monitor activity-log show
Befehls mit den--resource-group
Parametern ,--resource
und--event-id
an. Sie finden die Ereignis-ID in der Ausgabe des vorherigen Befehls. Die Ausgabe enthält die Ereigniszusammenfassung, Eigenschaften und JSON-Daten. Sie können auch den--output
-Parameter verwenden, um das Ausgabeformat zu ändern.Um den Fehlercode und die Meldung anzuzeigen, die dem Ereignis zugeordnet sind, suchen Sie in der Befehlsausgabe nach dem
statusMessage
Feld. Sie finden die Fehlerinformationen auch in den Abschnitten eigenschaften und JSON-Daten.
Verwenden des AKS-Features "Diagnose und Problembehandlung" für einen fehlerhaften Cluster
Navigieren Sie im Azure-Portal zu Ihrer AKS-Clusterressource, und wählen Sie im linken Menü Diagnose und Problembehandlung aus. Es wird eine Liste von Kategorien und Szenarien angezeigt, die Sie auswählen können, um Diagnoseprüfungen auszuführen und empfohlene Lösungen zu erhalten.
Verwenden Sie in der Azure CLI den az aks collect
Befehl mit den --name
Parametern und --resource-group
, um Diagnosedaten von Ihren Clusterknoten zu sammeln. Sie können auch die --storage-account
Parameter und --sas-token
verwenden, um ein Azure Storage-Konto anzugeben, in das die Daten hochgeladen werden. Die Ausgabe enthält einen Link zum Blatt Probleme diagnostizieren und lösen , auf dem Sie die Ergebnisse und vorgeschlagenen Aktionen anzeigen können.
Auf dem Blatt Probleme diagnostizieren und lösen können Sie Clusterprobleme als Kategorie auswählen. Wenn Probleme erkannt werden, wird eine Liste möglicher Lösungen angezeigt, die Sie befolgen können, um sie zu beheben.
Szenario 2: Knoten befindet sich in einem fehlerhaften Zustand
In seltenen Fällen kann ein Azure Disk Detach-Vorgang teilweise fehlschlagen, sodass die Knoten-VM in einem fehlerhaften Zustand verbleibt.
Um dieses Problem zu beheben, aktualisieren Sie die VM-status manuell mit einer der folgenden Methoden:
Führen Sie für einen Cluster, der auf einer Verfügbarkeitsgruppe basiert, den folgenden Befehl az vm update aus:
az vm update --resource-group <resource-group-name> --name <vm-name>
Führen Sie für einen Cluster, der auf einer VM-Skalierungsgruppe basiert, den folgenden Befehl az vmss update-instances aus:
az vmss update-instances --resource-group <resource-group-name> --name <scale-set-name> --instance-id <vm-or-scale-set-id>
Szenario 3: Knotenpool befindet sich in einem fehlerhaften Zustand
Dieses Problem kann auftreten, wenn bei der VM-Skalierungsgruppe oder Verfügbarkeitsgruppe, die den Knotenpool unterstützt, bei der Bereitstellung, Skalierung oder Aktualisierung ein Fehler auftritt. Dieses Problem kann auf unzureichende Kapazität, Kontingentgrenzwerte, Netzwerkprobleme, Richtlinienverstöße, Ressourcensperren oder andere Faktoren zurückzuführen sein, die verhindern, dass die VM ordnungsgemäß zugeordnet oder konfiguriert wird.
Führen Sie zum Behandeln dieses Problems die folgenden Schritte aus:
- Überprüfen Sie die status des Knotenpools mithilfe des
az aks nodepool show
Befehls. Wenn der Bereitstellungsstatus lautetFailed
, werden die Fehlermeldung und der Code in der Ausgabe angezeigt. - Überprüfen Sie die status der VM-Skalierungsgruppe oder Verfügbarkeitsgruppe mithilfe des
az vmss show
Befehls oderaz vm availability-set show
. Wenn der Bereitstellungsstatus lautetFailed
, werden die Fehlermeldung und der Code in der Ausgabe angezeigt. - Überprüfen Sie die status der einzelnen VM im Knotenpool mit dem
az vmss list-instances
Befehl oderaz vm list
. Wenn sich eineFailed
VM im Zustand oderUnhealthy
befindet, werden die Fehlermeldung und der Code in der Ausgabe angezeigt. - Überprüfen Sie das Aktivitätsprotokoll und die Diagnoseeinstellung der VM-Skalierungsgruppe oder Verfügbarkeitsgruppe, um festzustellen, ob Ereignisse oder Warnungen vorhanden sind, die die Ursache des Fehlers angeben. Sie können die Azure-Portal, die Azure CLI oder die Azure Monitor-API verwenden, um auf das Aktivitätsprotokoll und die Diagnoseeinstellung zuzugreifen.
- Überprüfen Sie das Kontingent und die Kapazität der Region und des Abonnements, in der der Knotenpool bereitgestellt wird. Sie können den
az vm list-usage
Befehl oder den Azure-Portal verwenden, um das Kontingent und die Kapazität zu überprüfen. Wenn das Kontingent oder die Kapazitätsgrenze erreicht ist, können Sie eine Erhöhung anfordern oder einige nicht verwendete Ressourcen löschen. - Überprüfen Sie die Richtlinien- und Rollenzuweisungen des Knotenpools. Sie können die
az policy
Befehle und oderaz role
die Azure-Portal verwenden, um die Richtliniendefinitionen, Zuweisungen, Konformität und Ausnahmen zu überprüfen. Sie können die Rollenzuweisungen und Berechtigungen des Knotenpools auch mit demaz role assignment
Befehl oder dem Azure-Portal überprüfen. - Überprüfen Sie die Ressourcensperren des Knotenpools. Sie können den
az lock
Befehl oder den Azure-Portal verwenden, um die Sperrebene, den Bereich und die Notizen zu überprüfen. Sie können die Sperre bei Bedarf auch löschen oder aktualisieren.
Andere Protokollierungs- und Diagnosetools
Wenn das Problem mit den vorherigen Methoden zur Problembehandlung nicht behoben wird, können Sie die folgenden Protokollierungs- und Diagnosetools verwenden, um weitere Informationen zu sammeln und die Grundursache zu ermitteln:
Azure Monitor für Container:
Dieser Dienst sammelt und analysiert Metriken und Protokolle von AKS-Clustern und den Knoten. Azure Monitor für Container kann die Integrität, Leistung und Verfügbarkeit von Clustern und Knoten überwachen. Sie können es auch zum Anzeigen von Containerprotokollen, Kubelet-Protokollen und Knotenstartdiagnoseprotokollen verwenden.
-
Dieses Tool sammelt Knoten- und Podprotokolle, Netzwerkinformationen und Clusterkonfigurationen aus einem AKS-Cluster und lädt sie in ein Azure-Speicherkonto hoch. Dieses Tool kann Ihnen helfen, häufige Clusterprobleme wie DNS-Auflösung, Netzwerkkonnektivität und Knoten-status zu beheben. Sie können es auch verwenden, um eine Supportanfrage mit den gesammelten Protokollen zu generieren.
AKS-Diagnose
Dieses Tool führt eine Reihe von Überprüfungen für AKS-Cluster und die Knoten aus und bietet Empfehlungen und Korrekturschritte für häufige Probleme. Dieses Tool kann Ihnen helfen, Probleme im Zusammenhang mit der Erstellung, dem Upgrade, der Skalierung, dem Netzwerk, dem Speicher und der Sicherheit von Clustern zu beheben. Sie können es auch verwenden, um eine Supportanfrage mit den angefügten Diagnoseergebnissen zu generieren.
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