A new interesting feature that has been released by Microsoft, with the aks-preview module, is the possibility to execute kubectl commands, directly from Azure CLI, without connecting to the cluster. The full documentation is available here: https://docs.microsoft.com/en-us/azure/aks/private-clusters#aks-run-command-preview
The first thing is to register the RunCommandPreview in your subscription:
az feature register --namespace "Microsoft.ContainerService" --name "RunCommandPreview" |
You can check the status of the registering, with this command:
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/RunCommandPreview')].{Name:name,State:properties.state}" |
When the state is Registered you need to re-register the provider ContainerService:
az provider register --namespace Microsoft.ContainerService |
You can now execute your Kubernetes commands, with the following command:
az aks command invoke -n Starwind -g Starwind -c "kubectl get pods -A" |
You can also apply a file:
az aks command invoke -g Starwind -n Starwind -c "kubectl apply -f deployment.yaml" -f website.yaml |
I can now access the webpage that I deployed from the Azure CLI:
How it works? It is simple. When you execute the az aks command invoke command, a new pod is deployed in your AKS clusters, and execute the command that you passed.
At this time, this feature has some limitation like the execution with Private AKS cluster and Azure AD authentication, where it doesn’t work.