Accédez à un cluster Azure Kubernetes Service privé (AKS) à l’aide de la fonction d’invocation de commande ou d’exécution de commande
Lorsque vous accédez à un cluster AKS privé, vous devez vous connecter à ce cluster à partir du réseau virtuel du cluster, d’un réseau appairé ou d’un point de terminaison privé configuré. Ces approches nécessitent la configuration d’un VPN, ExpressRoute, le déploiement d’un serveur de rebond au sein du réseau virtuel du cluster ou la création d’un point de terminaison privé dans un autre réseau virtuel.
Avec l’interface Azure CLI, vous pouvez également utiliser command invoke
pour accéder aux clusters privés sans devoir configurer un VPN ou Express Route. command invoke
vous permet d’invoquer à distance des commandes comme kubectl
et helm
sur votre cluster privé par le biais de l’API Azure sans vous connecter directement au cluster. Les actions Microsoft.ContainerService/managedClusters/runcommand/action
et Microsoft.ContainerService/managedclusters/commandResults/read
contrôlent les autorisations d’utilisation de command invoke
.
Avec le Portail Azure, vous pouvez utiliser la fonctionnalité Run command
pour exécuter des commandes sur votre cluster privé. La fonctionnalité Run command
utilise la même fonctionnalité command invoke
pour exécuter des commandes sur votre cluster.
Avant de commencer
Avant de commencer, assurez-vous de disposer des ressources et des autorisations suivantes :
- Un cluster privé existant. Si vous n’en avez pas, consultez Créer un cluster AKS privé.
- Azure CLI version 2.24.0 ou ultérieure. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Accès aux rôles
Microsoft.ContainerService/managedClusters/runcommand/action
etMicrosoft.ContainerService/managedclusters/commandResults/read
sur le cluster.
Limites
Le pod créé par la commande run
fournit helm
et la dernière version compatible de kubectl
pour votre cluster avec kustomize
.
command invoke
exécute les commandes à partir de votre cluster, de sorte que toutes les commandes exécutées de cette manière sont soumises aux restrictions réseau (et autres) que vous avez configurées sur votre cluster. Assurez-vous également qu’il existe suffisamment de nœuds et de ressources dans votre cluster pour planifier ce pod de commande.
Remarque
La sortie pour command invoke
est limitée à 512 ko.
Exécuter des commandes sur votre cluster AKS
Utiliser command invoke
pour exécuter une seule commande
Exécutez une commande sur votre cluster à l’aide de la commande
az aks command invoke --command
. L’exemple de commande ci-dessous exécute la commandekubectl get pods -n kube-system
sur le cluster myPrivateCluster dans myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Utiliser command invoke
pour exécuter plusieurs commandes
Exécutez plusieurs commandes sur votre cluster à l’aide de la commande
az aks command invoke --command
. L’exemple de commande ci-dessous exécute 3 commandeshelm
sur le cluster myPrivateCluster dans 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"
Utiliser command invoke
pour exécuter des commandes avec un fichier ou un répertoire attaché
Exécutez des commandes avec un fichier ou un répertoire joint à l’aide de la commande
az aks command invoke --command
avec le paramètre--file
. L’exemple de commande ci-dessous exécutekubectl apply -f deployment.yaml -n default
sur le cluster myPrivateCluster dans myResourceGroup. Le fichierdeployment.yaml
est joint à partir du répertoire actif de l’ordinateur de développement oùaz aks command invoke
a été exécuté.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Utilisez command invoke
pour exécuter des commandes avec tous les fichiers du répertoire actif joints
Exécutez des commandes avec tous les fichiers du répertoire actif joints à l’aide de la commande
az aks command invoke --command
avec le paramètre--file
. L’exemple de commande ci-dessous exécutekubectl apply -f deployment.yaml configmap.yaml -n default
sur le cluster myPrivateCluster dans myResourceGroup. Les fichiersdeployment.yaml
etconfigmap.yaml
font partie du répertoire actif de l’ordinateur de développement oùaz aks command invoke
a été exécuté.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
Dépannage
Pour plus d’informations sur les problèmes les plus courants liés à az aks command invoke
et sur la façon de les résoudre, consultez Résoudre les échecs « az aks command invoke
».
Étapes suivantes
Dans cet article, vous avez appris à accéder à un cluster privé et à y exécuter des commandes. Pour plus d’informations sur les clusters AKS, consultez la documentation suivante :
Azure Kubernetes Service