Acceso a un clúster privado de Azure Kubernetes Service (AKS) mediante la característica de invocación de comandos o Ejecutar comando
Cuando acceda a un clúster AKS privado, necesitará conectarse al clúster desde la red virtual del clúster, desde una red emparejada o mediante un punto de conexión privado configurado. Para estos enfoques es necesario configurar una VPN, Express Route, implementar un jumpbox dentro de la red virtual del clúster o crear un punto de conexión privado dentro de otra red virtual.
Con la CLI de Azure, puede usar también command invoke
para acceder a clústeres privados sin tener que configurar una VPN o Express Route. command invoke
permite invocar de forma remota comandos, como kubectl
y helm
, en el clúster privado a través de la API de Azure sin necesidad de conectarse directamente al clúster. Las acciones Microsoft.ContainerService/managedClusters/runcommand/action
y Microsoft.ContainerService/managedclusters/commandResults/read
controlan los permisos para usar command invoke
.
Con Azure Portal, puede usar la característica Run command
para ejecutar comandos en el clúster privado. La característica Run command
usa la misma funcionalidad command invoke
para ejecutar comandos en el clúster.
Antes de empezar
Antes de empezar, asegúrese de tener los siguientes recursos y permisos:
- Un clúster privado existente. Si no lo tiene, consulte Crear un clúster privado de AKS.
- La versión 2.24.0 de la CLI de Azure, o cualquier versión posterior. Ejecute
az --version
para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. - Acceda a los roles
Microsoft.ContainerService/managedClusters/runcommand/action
yMicrosoft.ContainerService/managedclusters/commandResults/read
en el clúster.
Limitaciones
El pod creado por el comando run
proporciona helm
y la versión compatible más reciente de kubectl
para el clúster con kustomize
.
command invoke
ejecuta los comandos desde su clúster, por lo que cualquier comando ejecutado de esta manera está sujeto a sus restricciones de red configuradas y a cualquier otra restricción configurada. Asegúrese de que hay suficientes nodos y recursos en el clúster para programar este pod de comandos.
Nota:
La salida de command invoke
tiene un tamaño limitado a 512 kB.
Ejecución de comandos en el clúster de AKS
Uso de command invoke
para ejecutar un solo comando
Ejecute un comando en el clúster mediante el comando
az aks command invoke --command
. En el comando de ejemplo siguiente se ejecuta el comandokubectl get pods -n kube-system
en el clúster myPrivateCluster en myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Uso de command invoke
para ejecutar varios comandos
Ejecute varios comandos en el clúster mediante el comando
az aks command invoke --command
. En el comando de ejemplo siguiente se ejecutan tres comandoshelm
en el clúster myPrivateCluster en 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"
Uso de command invoke
para ejecutar comandos con un archivo o directorio adjuntos
Ejecute comandos con un archivo o directorio adjuntos mediante el comando
az aks command invoke --command
con el parámetro--file
. En el comando de ejemplo siguiente se ejecutakubectl apply -f deployment.yaml -n default
en el clúster myPrivateCluster en myResourceGroup. El archivodeployment.yaml
se adjunta desde el directorio actual en el equipo de desarrollo dondeaz aks command invoke
se ha ejecutado.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Use command invoke
para ejecutar comandos con todos los archivos adjuntos en el directorio actual
Ejecute comandos con todos los archivos del directorio actual adjunto mediante el comando
az aks command invoke --command
con el parámetro--file
. En el comando de ejemplo siguiente se ejecutakubectl apply -f deployment.yaml configmap.yaml -n default
en el clúster myPrivateCluster en myResourceGroup. Los archivosdeployment.yaml
yconfigmap.yaml
forman parte del directorio actual en el equipo de desarrollo dondeaz aks command invoke
se ha ejecutado.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
Solución de problemas
Para obtener información sobre los problemas más comunes con az aks command invoke
y cómo corregirlos, consulte Resolver az aks command invoke
errores.
Pasos siguientes
En este artículo, ha aprendido a acceder a un clúster privado y ejecutar comandos en ese clúster. Para obtener más información sobre los clústeres de AKS, consulte los siguientes artículos:
Azure Kubernetes Service