Compartir vía


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 y Microsoft.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 comando kubectl 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 comandos helm 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 ejecuta kubectl apply -f deployment.yaml -n default en el clúster myPrivateCluster en myResourceGroup. El archivo deployment.yaml se adjunta desde el directorio actual en el equipo de desarrollo donde az 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 ejecuta kubectl apply -f deployment.yaml configmap.yaml -n default en el clúster myPrivateCluster en myResourceGroup. Los archivos deployment.yaml y configmap.yaml forman parte del directorio actual en el equipo de desarrollo donde az 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: