Få åtkomst till ett privat AKS-kluster (Azure Kubernetes Service)

När du kommer åt ett privat AKS-kluster måste du ansluta till klustret från klustrets virtuella nätverk, ett peer-kopplat nätverk eller en konfigurerad privat slutpunkt. Dessa metoder kräver att du konfigurerar en VPN, Express Route, distribuerar en jumpbox i klustrets virtuella nätverk eller skapar en privat slutpunkt i ett annat virtuellt nätverk.

Med Azure CLI kan du använda command invoke för att komma åt privata kluster utan att behöva konfigurera ett VPN eller Express Route. command invoke Gör att du kan fjärranropa kommandon, till exempel kubectl och helm, i ditt privata kluster via Azure-API:et utan att ansluta direkt till klustret. Åtgärderna Microsoft.ContainerService/managedClusters/runcommand/action och Microsoft.ContainerService/managedclusters/commandResults/read styr behörigheterna för att använda command invoke.

Med Azure Portal kan du använda Run command funktionen för att köra kommandon i ditt privata kluster. Funktionen Run command använder samma command invoke funktioner för att köra kommandon i klustret.

Innan du börjar

Kontrollera att du har följande resurser och behörigheter innan du börjar:

  • Ett befintligt privat kluster. Om du inte har något kan du läsa Skapa ett privat AKS-kluster.
  • Azure CLI version 2.24.0 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
  • Åtkomst till rollerna Microsoft.ContainerService/managedClusters/runcommand/action och Microsoft.ContainerService/managedclusters/commandResults/read i klustret.

Begränsningar

Podden som skapats av run kommandot tillhandahåller helm och den senaste kompatibla versionen av kubectl för klustret med kustomize.

command invoke kör kommandona från klustret, så alla kommandon som körs på det här sättet omfattas av dina konfigurerade nätverksbegränsningar och andra konfigurerade begränsningar. Kontrollera att det finns tillräckligt med noder och resurser i klustret för att schemalägga den här kommandopodden.

Anteckning

Utdata för command invoke är begränsade till 512 kB i storlek.

Köra kommandon i AKS-klustret

Använd command invoke för att köra ett enda kommando

  • Kör ett kommando i klustret med kommandot az aks command invoke --command . Följande exempelkommando kör kubectl get pods -n kube-system kommandot på myPrivateCluster-klustret i myResourceGroup.

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

Använd command invoke för att köra flera kommandon

  • Kör flera kommandon i klustret med kommandot az aks command invoke --command . Följande exempelkommando kör tre helm kommandon i myPrivateCluster-klustret i 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"
    

Använd command invoke för att köra kommandon med en bifogad fil eller katalog

  • Kör kommandon med en bifogad fil eller katalog med kommandot az aks command invoke --command med parametern --file . Följande exempelkommando körs kubectl apply -f deployment.yaml -n defaultmyPrivateCluster-klustret i myResourceGroup. Filen deployment.yaml är ansluten från den aktuella katalogen på utvecklingsdatorn där az aks command invoke den kördes.

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

Använd command invoke för att köra kommandon med alla filer i den aktuella katalogen som är anslutna

  • Kör kommandon med alla filer i den aktuella katalogen som är anslutna az aks command invoke --command med kommandot med parametern --file . Följande exempelkommando körs kubectl apply -f deployment.yaml configmap.yaml -n defaultmyPrivateCluster-klustret i myResourceGroup. Filerna deployment.yaml och configmap.yaml är en del av den aktuella katalogen på utvecklingsdatorn där az aks command invoke kördes.

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