Share via


Fouten met az aks command invoke oplossen

In dit artikel wordt beschreven hoe u fouten met az aks command invoke in Microsoft Azure CLI kunt oplossen, zodat u verbinding kunt maken met elk AKS-cluster (Azure Kubernetes Service), met name met een privé-AKS-cluster.

Voor andere verbindingsmethoden moeten extra configuratieonderdelen worden gebruikt, zoals wordt weergegeven in de volgende tabel.

Verbindingsmethoden Extra configuratieonderdeel
Virtueel netwerk Virtueel particulier netwerk (VPN)
Gekoppeld netwerk Azure ExpressRoute
Privé-eindpunt Jumpbox

De az aks command invoke Azure CLI-opdracht is een alternatieve manier om verbinding te maken met een cluster waarvoor geen extra configuratieonderdelen nodig zijn.

Wanneer u de az aks command invoke opdracht uitvoert, maakt Azure CLI automatisch een command-<ID> pod in de aks-command naamruimte om toegang te krijgen tot het AKS-cluster en de vereiste informatie op te halen.

Vereisten

Symptomen

De volgende tabel bevat veelvoorkomende az aks command invoke foutberichten. Elk foutbericht bevat een koppeling naar de sectie waarin wordt beschreven waarom de fout optreedt en hoe u deze kunt oplossen.

Foutbericht Koppelen
De bewerking heeft een ongeldige status 'Niet gevonden' geretourneerd Oorzaak 1: De pod kan niet worden gemaakt vanwege knooppunt- of resourcebeperkingen
Kan de opdracht niet uitvoeren in een beheerd cluster vanwege een kubernetes-fout. details: toegangswebhook "validation.gatekeeper.sh" geweigerd de aanvraag: <policy-specific-message> Oorzaak 2: Azure Policy staat het maken van pods niet toe
Fout van server (verboden): naamruimten zijn verboden: gebruiker '<ID>' kan resource '<resource>' in API-groep niet vermelden in het clusterbereik Oorzaak 3: vereiste rollen worden niet verleend
Kan geen verbinding maken met MSI. Zorg ervoor dat MSI correct is geconfigureerd.

Get Token request returned: Response [400];
Oorzaak 4: er is een Cloud Shell probleem

Oorzaak 1: De pod kan niet worden gemaakt vanwege knooppunt- of resourcebeperkingen

De bewerking retourneert een Not Found status omdat de command-<ID> pod geen geslaagde status kan bereiken, zoals Running. (In veel gevallen blijft de pod in de Pending status.) In dit geval kunnen de knooppunten de pod niet plannen. Dit scenario kan verschillende oorzaken hebben, zoals de volgende oorzaken:

  • Resourcebeperkingen
  • Knooppunten met de NotReady status of SchedulingDisabled
  • Knooppunten met taints die de pod niet kan tolereren
  • Andere oorzaken

Oplossing 1: Wijzig de configuratie zodat u de pod kunt plannen en uitvoeren

Zorg ervoor dat de command-<ID> pod kan worden gepland en uitgevoerd.

Oorzaak 2: Azure Policy staat het maken van pods niet toe

Als u specifiek Azure-beleid hebt, kan de az aks command invoke opdracht mislukken vanwege een niet-toegestane configuratie in de command-<ID> pod. U hebt bijvoorbeeld een Azure-beleid waarvoor een alleen-lezen-basisbestandssysteem of een andere specifieke configuratie is vereist.

Oplossing 2: de naamruimte uitsluiten voor beleidsregels die het maken van pods verbieden

U wordt aangeraden de aks-command naamruimte uit te stellen voor het gekoppelde Azure-beleid waarmee het maken van pods niet is toegestaan. Zie Bereik in Azure Policy voor meer informatie over vrijstelling

Een Azure Policy uitsluiten:

  1. Zoek en selecteer Beleid in de Azure Portal.

  2. Zoek in het navigatiedeelvenster Beleid de sectie Ontwerpen en selecteer vervolgens Toewijzingen.

  3. Zoek in de tabel met toewijzingen de rij met de toewijzingsnaam die u wilt wijzigen en selecteer vervolgens de naam van de toewijzing.

  4. Selecteer op de pagina beleidstoewijzing voor die toewijzing de optie Toewijzing bewerken.

  5. Selecteer het tabblad Parameters .

  6. Schakel de optie Alleen parameters weergeven die invoer of controle nodig hebben uit.

  7. Voeg in het vak Uitsluitingen van naamruimte de naamruimte aks-command toe aan de lijst met naamruimten die moeten worden uitgesloten.

Als het beleid geen ingebouwd beleid is, kunt u ook de configuratie van de command-<ID> pod controleren en het beleid zo nodig aanpassen. Voer de volgende opdracht uit om de YAML-configuratie van de pod te verkennen:

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

Oorzaak 3: vereiste rollen worden niet verleend

Als u de az aks command invoke opdracht wilt gebruiken, moet u toegang hebben tot de volgende rollen in het cluster:

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

Als u deze rollen niet hebt, kan de az aks command invoke opdracht de vereiste informatie niet ophalen.

Oplossing 3: De vereiste rollen toevoegen

Voeg de Microsoft.ContainerService/managedClusters/runCommand/action rollen en Microsoft.ContainerService/managedClusters/commandResults/read toe.

Oorzaak 4: er is een Cloud Shell probleem

De az aks command invoke opdracht wordt niet verwerkt zoals verwacht wanneer deze rechtstreeks in de Azure Cloud Shell-omgeving wordt uitgevoerd. Dit is een bekend probleem in Cloud Shell.

Oplossing 4a: Voer eerst de opdracht az login uit

Voer in Cloud Shell de opdracht az login uit voordat u uitvoertaz aks command invoke.

Oplossing 4b: Voer de opdracht uit op een lokale computer of een virtuele machine

Voer de az aks command invoke opdracht uit op een lokale computer of een virtuele machine (VM) waarop Azure CLI is geïnstalleerd.

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.