Toegang krijgen tot een privé-AKS-cluster (Azure Kubernetes Service) met behulp van de opdracht aanroepen of uitvoeren van de opdrachtfunctie
Wanneer u toegang hebt tot een privé-AKS-cluster, moet u verbinding maken met het cluster vanuit het virtuele clusternetwerk, een gekoppeld netwerk of een geconfigureerd privé-eindpunt. Voor deze benaderingen is het configureren van een VPN, Express Route, het implementeren van een jumpbox binnen het virtuele clusternetwerk of het maken van een privé-eindpunt in een ander virtueel netwerk vereist.
Met de Azure CLI kunt u toegang krijgen command invoke
tot privéclusters zonder dat u een VPN of Express Route hoeft te configureren. command invoke
hiermee kunt u opdrachten op afstand aanroepen, zoals kubectl
en helm
, op uw privécluster via de Azure-API zonder rechtstreeks verbinding te maken met het cluster. De Microsoft.ContainerService/managedClusters/runcommand/action
en Microsoft.ContainerService/managedclusters/commandResults/read
acties bepalen de machtigingen voor het gebruik van command invoke
.
Met Azure Portal kunt u de Run command
functie gebruiken om opdrachten uit te voeren op uw privécluster. De Run command
functie gebruikt dezelfde command invoke
functionaliteit om opdrachten op uw cluster uit te voeren.
De pod die is gemaakt door het Run command
biedt kubectl
en helm
voor het uitvoeren van uw cluster. jq
, xargs
, grep
en awk
zijn beschikbaar voor Bash-ondersteuning.
Voordat u begint
Voordat u begint, moet u ervoor zorgen dat u over de volgende resources en machtigingen beschikt:
- Een bestaand privécluster. Zie Een privé-AKS-cluster maken als u er nog geen hebt.
- Azure CLI versie 2.24.0 of hoger. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - Toegang tot de
Microsoft.ContainerService/managedClusters/runcommand/action
enMicrosoft.ContainerService/managedclusters/commandResults/read
rollen in het cluster.
Beperkingen
Deze functie is ontworpen om de toegang tot clusters te vereenvoudigen en is niet ontworpen voor programmatische toegang. Als u een programma hebt dat Kubernetes aanroept met behulp Run command
van, zijn de volgende nadelen van toepassing:
- U krijgt alleen exitCode - en tekstuitvoer en u verliest details op API-niveau.
- Een extra hop introduceert extra storingspunten.
De pod die door de Run command
pod is gemaakt, is vastgelegd in code met een 200m CPU
en 500Mi memory
aanvraag, en een 500m CPU
en 1Gi memory
limiet. In zeldzame gevallen waarin al uw knooppunt is verpakt, kan de pod niet worden gepland binnen de BEPERKING van de ARM-API van 60 seconden. Dit betekent dat de Run command
fout mislukt, zelfs als deze is geconfigureerd voor automatische schaalaanpassing.
command invoke
voert de opdrachten uit vanuit uw cluster, zodat opdrachten op deze manier worden uitgevoerd, onderhevig zijn aan uw geconfigureerde netwerkbeperkingen en eventuele andere geconfigureerde beperkingen. Zorg ervoor dat er voldoende knooppunten en resources in uw cluster zijn om deze opdrachtpod te plannen.
Notitie
De uitvoer voor command invoke
is beperkt tot 512kB in grootte.
Opdrachten uitvoeren op uw AKS-cluster
Gebruik command invoke
deze opdracht om één opdracht uit te voeren
Voer een opdracht uit op uw cluster met behulp van de
az aks command invoke --command
opdracht. Met de volgende voorbeeldopdracht wordt dekubectl get pods -n kube-system
opdracht uitgevoerd op het cluster myPrivateCluster in myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Meerdere command invoke
opdrachten uitvoeren
Voer meerdere opdrachten uit op uw cluster met behulp van de
az aks command invoke --command
opdracht. Met de volgende voorbeeldopdracht worden driehelm
opdrachten uitgevoerd op het cluster myPrivateCluster in myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
Gebruiken command invoke
om opdrachten uit te voeren met een bijgevoegd bestand of map
Voer opdrachten uit met een bijgevoegd bestand of map met behulp van de
az aks command invoke --command
opdracht met de--file
parameter. De volgende voorbeeldopdracht wordt uitgevoerdkubectl apply -f deployment.yaml -n default
op het cluster myPrivateCluster in myResourceGroup. Hetdeployment.yaml
bestand is gekoppeld vanuit de huidige map op de ontwikkelcomputer waaraz aks command invoke
het is uitgevoerd.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Gebruiken command invoke
om opdrachten uit te voeren met alle bestanden in de huidige map die is bijgevoegd
Voer opdrachten uit met alle bestanden in de huidige map die zijn gekoppeld met behulp van de
az aks command invoke --command
opdracht met de--file
parameter. De volgende voorbeeldopdracht wordt uitgevoerdkubectl apply -f deployment.yaml configmap.yaml -n default
op het cluster myPrivateCluster in myResourceGroup. Dedeployment.yaml
bestanden enconfigmap.yaml
bestanden maken deel uit van de huidige map op de ontwikkelcomputer waaropaz aks command invoke
is uitgevoerd.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
Probleemoplossing
Zie Fouten az aks command invoke
oplossen voor informatie over de meest voorkomende problemen met az aks command invoke
en hoe u deze kunt oplossen.
Volgende stappen
In dit artikel hebt u geleerd hoe u toegang krijgt tot een privécluster en opdrachten uitvoert op dat cluster. Zie de volgende artikelen voor meer informatie over AKS-clusters:
Azure Kubernetes Service