Freigeben über


Beheben von "az aks command invoke"-Fehlern

In diesem Artikel wird beschrieben, wie Sie az aks command invoke-Fehler in microsoft Azure CLI beheben, sodass Sie erfolgreich eine Verbindung mit einem beliebigen AKS-Cluster (Azure Kubernetes Service) herstellen können, insbesondere mit einem privaten AKS-Cluster.

Andere Verbindungsmethoden müssen zusätzliche Konfigurationskomponenten verwenden, wie in der folgenden Tabelle gezeigt.

Verbindungsmethoden Zusätzliche Konfigurationskomponente
Virtuelles Netzwerk Virtuelles privates Netzwerk (VPN)
Mittels Peering verknüpftes Netzwerk Azure ExpressRoute
Privater Endpunkt Jumpbox

Der az aks command invoke Azure CLI-Befehl ist eine alternative Möglichkeit, eine Verbindung mit einem Cluster herzustellen, für den keine zusätzlichen Konfigurationskomponenten erforderlich sind.

Wenn Sie den az aks command invoke Befehl ausführen, erstellt die Azure CLI automatisch einen command-<ID> Pod im aks-command Namespace, um auf den AKS-Cluster zuzugreifen und die erforderlichen Informationen abzurufen.

Voraussetzungen

Problembeschreibung

In der folgenden Tabelle sind häufige az aks command invoke Fehlermeldungen aufgeführt. Jede Fehlermeldung enthält einen Link zu dem Abschnitt, der beschreibt, warum der Fehler auftritt und wie er behoben werden kann.

Fehlermeldung Link
Der Vorgang hat eine ungültige status "Nicht gefunden" zurückgegeben. Ursache 1: Der Pod kann aufgrund von Knoten- oder Ressourceneinschränkungen nicht erstellt werden.
Fehler beim Ausführen des Befehls im verwalteten Cluster aufgrund eines Kubernetes-Fehlers. Details: Zulassungswebhook "validation.gatekeeper.sh" die Anforderung abgelehnt: <richtlinienspezifische Nachricht> Ursache 2: Azure Policy die Poderstellung nicht zulässt
Fehler vom Server (verboten): Namespaces sind verboten: Benutzer "<ID>" kann die Ressource "<Ressource>" in der API-Gruppe "" im Clusterbereich nicht auflisten. Ursache 3: Erforderliche Rollen werden nicht gewährt
Fehler beim Herstellen einer Verbindung mit MSI. Stellen Sie sicher, dass MSI ordnungsgemäß konfiguriert ist.

Zurückgegebene Tokenanforderung abrufen: Antwort [400];
Ursache 4: Es liegt ein Cloud Shell Problem vor.

Ursache 1: Der Pod kann aufgrund von Knoten- oder Ressourceneinschränkungen nicht erstellt werden.

Der Vorgang gibt eine Not Found status zurück, da der command-<ID> Pod keinen erfolgreichen Zustand Runningwie erreichen kann. (In vielen Fällen bleibt der Pod im Pending Zustand.) In diesem Fall können die Knoten den Pod nicht planen. Dieses Szenario kann verschiedene Ursachen haben, z. B. die folgenden Ursachen:

  • Ressourceneinschränkungen
  • Knoten mit dem Status oder NotReadySchedulingDisabled
  • Knoten mit Taints, die der Pod nicht tolerieren kann
  • Andere Ursachen

Lösung 1: Ändern der Konfiguration, sodass Sie den Pod planen und ausführen können

Stellen Sie sicher, dass der command-<ID> Pod geplant und ausgeführt werden kann.

Ursache 2: Azure Policy die Poderstellung nicht zulässt

Wenn Sie über bestimmte Azure-Richtlinien verfügen, kann der az aks command invoke Befehl aufgrund einer nicht zulässigen Konfiguration im command-<ID> Pod fehlschlagen. Beispielsweise können Sie über eine Azure-Richtlinie verfügen, die ein schreibgeschütztes Stammdateisystem oder eine andere spezifische Konfiguration erfordert.

Lösung 2: Ausschließen des Namespace für Richtlinien, die die Poderstellung verhindern

Es wird empfohlen, den aks-command Namespace für die zugehörigen Azure-Richtlinien, die die Poderstellung nicht zulassen, auszunehmen. Weitere Informationen zu Ausnahmen finden Sie unter Grundlegendes zum Bereich in Azure Policy

So können Sie eine Azure Policy ausnehmen:

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

  2. Suchen Sie im Navigationsbereich Richtlinie den Abschnitt Erstellung , und wählen Sie dann Zuweisungen aus.

  3. Suchen Sie in der Tabelle der Zuweisungen nach der Zeile, die den Namen der Zuweisung enthält, den Sie ändern möchten, und wählen Sie dann den Namen der Zuweisung aus.

  4. Wählen Sie auf der Seite "Richtlinienzuweisung" für diese Zuweisung die Option Zuweisung bearbeiten aus.

  5. Wählen Sie die Registerkarte Parameter aus.

  6. Deaktivieren Sie die Option Nur Parameter anzeigen, die eine Eingabe oder Überprüfung erfordern .

  7. Fügen Sie im Feld Namespaceausschlüsse den Namespace aks-command der Liste der auszuschließenden Namespaces hinzu.

Wenn es sich bei der Richtlinie nicht um eine integrierte Richtlinie handelt, können Sie alternativ die Konfiguration des command-<ID> Pods überprüfen und die Richtlinie nach Bedarf anpassen. Führen Sie den folgenden Befehl aus, um die YAML-Konfiguration des Pods zu untersuchen:

kubectl get pods command-<ID> --namespace aks-command --output yaml

Ursache 3: Erforderliche Rollen werden nicht gewährt

Um den az aks command invoke Befehl verwenden zu können, müssen Sie Zugriff auf die folgenden Rollen im Cluster haben:

  • Microsoft.ContainerService/managedClusters/runCommand/action
  • Microsoft.ContainerService/managedClusters/commandResults/read

Wenn Sie nicht über diese Rollen verfügen, kann der az aks command invoke Befehl die erforderlichen Informationen nicht abrufen.

Lösung 3: Hinzufügen der erforderlichen Rollen

Fügen Sie die Microsoft.ContainerService/managedClusters/runCommand/action Rollen und Microsoft.ContainerService/managedClusters/commandResults/read hinzu.

Ursache 4: Es liegt ein Cloud Shell Problem vor.

Der az aks command invoke Befehl wird nicht wie erwartet verarbeitet, wenn er direkt in der Azure Cloud Shell-Umgebung ausgeführt wird. Dies ist ein bekanntes Problem in Cloud Shell.

Lösung 4a: Führen Sie zuerst den Befehl az login aus.

Führen Sie in Cloud Shell den Befehl az login aus, bevor Sie ausführenaz aks command invoke.

Lösung 4b: Führen Sie den Befehl auf einem lokalen Computer oder einem virtuellen Computer aus.

Führen Sie den az aks command invoke Befehl auf einem lokalen Computer oder einem virtuellen Computer (VM) aus, auf dem die Azure CLI installiert ist.

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.