Share via


Accedere a un cluster privato del servizio Azure Kubernetes

Quando si accede a un cluster del servizio Azure Kubernetes privato, è necessario connettersi al cluster dalla rete virtuale del cluster, da una rete con peering o da un endpoint privato configurato. Questi approcci richiedono la configurazione di una VPN, ExpressRoute, la distribuzione di un jumpbox all'interno della rete virtuale del cluster o la creazione di un endpoint privato all'interno di un'altra rete virtuale.

Con l'interfaccia della riga di comando di Azure è possibile usare command invoke per accedere ai cluster privati senza la necessità di configurare una VPN o ExpressRoute. command invoke consente di richiamare in remoto i comandi, ad esempio kubectl e helm, nel cluster privato tramite l'API di Azure senza connettersi direttamente al cluster. Le azioni Microsoft.ContainerService/managedClusters/runcommand/action e Microsoft.ContainerService/managedclusters/commandResults/read controllano le autorizzazioni per l'uso di command invoke.

Con il portale di Azure è possibile usare la funzionalità Run command per eseguire i comandi nel cluster privato. La funzionalità Run command usa la stessa funzionalità command invoke per eseguire comandi nel cluster.

Operazioni preliminari

Prima di iniziare, verificare di aver soddisfatto le risorse e i prerequisiti seguenti:

Limiti

Il pod creato dal comando run fornisce helm e la versione compatibile più recente di kubectl per il cluster con kustomize.

command invoke esegue i comandi dal cluster, pertanto tutti i comandi eseguiti in questo modo sono soggetti alle restrizioni di rete configurate e a eventuali altre restrizioni configurate. Verificare che nel cluster siano presenti sufficienti nodi e risorse per pianificare questo pod di comando.

Nota

L'output per command invoke è limitato a 512 KB di dimensioni.

Eseguire comandi nel cluster del servizio Azure Kubernetes

Usare command invoke per eseguire un comando singolo

  • Eseguire un comando nel cluster usando il comando az aks command invoke --command. Il comando di esempio seguente esegue il comando kubectl get pods -n kube-system nel cluster myPrivateCluster in myResourceGroup.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl get pods -n kube-system"
    

Usare command invoke per eseguire più comandi

  • Eseguire più comandi nel cluster usando il comando az aks command invoke --command. Il comando di esempio seguente esegue tre comandi helm nel 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"
    

Usare command invoke per eseguire comandi con un file o una directory collegata

  • Eseguire i comandi con un file o una directory collegata usando il comando az aks command invoke --command con il parametro --file. Il comando di esempio seguente esegue kubectl apply -f deployment.yaml -n default nel cluster myPrivateCluster in myResourceGroup. Il file deployment.yaml viene allegato dalla directory corrente nel computer di sviluppo in cui az aks command invoke è stata eseguita.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml -n default" \
      --file deployment.yaml
    

Usare command invoke per eseguire comandi con tutti i file nella directory corrente collegata

  • Eseguire i comandi con tutti i file nella directory corrente collegata usando il comando az aks command invoke --command con il parametro --file. Il comando di esempio seguente esegue kubectl apply -f deployment.yaml configmap.yaml -n default nel cluster myPrivateCluster in myResourceGroup. I file deployment.yaml e configmap.yaml fanno parte della directory corrente nel computer di sviluppo in cui az aks command invoke è stata eseguita.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \
      --file .