Toegang tot een privé-Azure Kubernetes Service-cluster (AKS)

Wanneer u toegang hebt tot een privé-AKS-cluster, moet u verbinding maken met het cluster vanuit het virtuele clusternetwerk, een peernetwerk of een geconfigureerd privé-eindpunt. Deze benaderingen vereisen het configureren van een VPN, Express Route, het implementeren van een jumpbox in het virtuele clusternetwerk of het maken van een privé-eindpunt in een ander virtueel netwerk.

Met de Azure CLI kunt u gebruiken command invoke om toegang te krijgen tot privéclusters zonder dat u een VPN of Express Route hoeft te configureren. command invoke hiermee kunt u op afstand opdrachten, zoals kubectl en helm, op uw privécluster aanroepen via de Azure-API zonder rechtstreeks verbinding te maken met het cluster. De Microsoft.ContainerService/managedClusters/runcommand/action acties en Microsoft.ContainerService/managedclusters/commandResults/read bepalen de machtigingen voor het gebruik van command invoke.

Met de Azure Portal kunt u de Run command functie gebruiken om opdrachten uit te voeren op uw privécluster. De Run command functie maakt gebruik van dezelfde command invoke functionaliteit om opdrachten uit te voeren op uw cluster.

Voordat u begint

Voordat u begint, moet u ervoor zorgen dat u over de volgende resources en machtigingen beschikt:

  • Een bestaand privécluster. Zie Een privé-AKS-cluster maken als u er nog geen hebt.
  • De Azure CLI versie 2.24.0 of hoger. Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.
  • Toegang tot de Microsoft.ContainerService/managedClusters/runcommand/action rollen en Microsoft.ContainerService/managedclusters/commandResults/read in het cluster.

Beperkingen

De pod die met de run opdracht is gemaakt, biedt helm en de meest recente compatibele versie van kubectl voor uw cluster met kustomize.

command invoke voert de opdrachten uit vanuit uw cluster, zodat alle opdrachten die op deze manier worden uitgevoerd, onderhevig zijn aan uw geconfigureerde netwerkbeperkingen en eventuele andere geconfigureerde beperkingen. Zorg ervoor dat er voldoende knooppunten en resources in uw cluster zijn om deze opdrachtpod te plannen.

Notitie

De uitvoer voor command invoke is beperkt tot 512 kB.

Opdrachten uitvoeren op uw AKS-cluster

Gebruik command invoke om één opdracht uit te voeren

  • Voer een opdracht uit op uw cluster met behulp van de az aks command invoke --command opdracht . Met de volgende voorbeeldopdracht wordt de kubectl get pods -n kube-system opdracht uitgevoerd op het cluster myPrivateCluster in myResourceGroup.

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

Gebruik command invoke om meerdere opdrachten uit te voeren

  • Voer meerdere opdrachten uit op uw cluster met behulp van de az aks command invoke --command opdracht . Met de volgende voorbeeldopdracht worden drie helm opdrachten uitgevoerd op het 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"
    

Gebruik command invoke om opdrachten uit te voeren met een bijgevoegd bestand of een bijgevoegde map

  • Voer opdrachten uit met een bijgevoegd bestand of map met behulp van de az aks command invoke --command opdracht met de --file parameter . De volgende voorbeeldopdracht wordt uitgevoerd kubectl apply -f deployment.yaml -n default op het cluster myPrivateCluster in myResourceGroup. Het deployment.yaml bestand is bijgevoegd vanuit de huidige map op de ontwikkelcomputer waarop az aks command invoke is uitgevoerd.

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

Gebruik command invoke om opdrachten uit te voeren met alle bestanden in de huidige map bijgevoegd

  • Voer opdrachten uit met alle bestanden in de huidige map die is gekoppeld met behulp van de az aks command invoke --command opdracht met de --file parameter . De volgende voorbeeldopdracht wordt uitgevoerd kubectl apply -f deployment.yaml configmap.yaml -n default op het cluster myPrivateCluster in myResourceGroup. De deployment.yaml bestanden en configmap.yaml maken deel uit van de huidige map op de ontwikkelcomputer waarop az aks command invoke is uitgevoerd.

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