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
Het kubectl-hulpprogramma Kubernetes . Als u kubectl wilt installeren met behulp van Azure CLI, voert u de opdracht az aks install-cli uit.
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 ofSchedulingDisabled
- 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:
Zoek en selecteer Beleid in de Azure Portal.
Zoek in het navigatiedeelvenster Beleid de sectie Ontwerpen en selecteer vervolgens Toewijzingen.
Zoek in de tabel met toewijzingen de rij met de toewijzingsnaam die u wilt wijzigen en selecteer vervolgens de naam van de toewijzing.
Selecteer op de pagina beleidstoewijzing voor die toewijzing de optie Toewijzing bewerken.
Selecteer het tabblad Parameters .
Schakel de optie Alleen parameters weergeven die invoer of controle nodig hebben uit.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor