Share via


Acesso a um cluster privado do Azure Kubernetes Service (AKS)

Quando acede a um cluster privado do AKS, tem de se ligar ao cluster a partir da rede virtual do cluster, de uma rede em modo de peering ou de um ponto final privado configurado. Estas abordagens requerem a configuração de uma VPN, o Express Route, a implementação de uma jumpbox na rede virtual do cluster ou a criação de um ponto final privado dentro de outra rede virtual.

Com a CLI do Azure, pode utilizar command invoke para aceder a clusters privados sem a necessidade de configurar uma VPN ou Express Route. command invoke permite-lhe invocar remotamente comandos, como kubectl e helm, no cluster privado através da API do Azure sem ligar diretamente ao cluster. As Microsoft.ContainerService/managedClusters/runcommand/action ações e Microsoft.ContainerService/managedclusters/commandResults/read controlam as permissões para utilizar command invoke.

Com a portal do Azure, pode utilizar a Run command funcionalidade para executar comandos no seu cluster privado. A Run command funcionalidade utiliza a mesma command invoke funcionalidade para executar comandos no cluster.

Antes de começar

Antes de começar, certifique-se de que tem os seguintes recursos e permissões:

  • Um cluster privado existente. Se não tiver um, veja Criar um cluster privado do AKS.
  • A versão 2.24.0 ou posterior da CLI do Azure. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
  • Acesso às Microsoft.ContainerService/managedClusters/runcommand/action funções e Microsoft.ContainerService/managedclusters/commandResults/read no cluster.

Limitações

O pod criado pelo comando fornece helm e a versão compatível mais recente do kubectl para o cluster com kustomize.run

command invoke executa os comandos do cluster, pelo que todos os comandos executados desta forma estão sujeitos às restrições de rede configuradas e a quaisquer outras restrições configuradas. Certifique-se de que existem nós e recursos suficientes no cluster para agendar este pod de comandos.

Nota

O resultado de command invoke está limitado a 512 kB de tamanho.

Executar comandos no cluster do AKS

Utilizar command invoke para executar um único comando

  • Execute um comando no cluster com o az aks command invoke --command comando . O comando de exemplo seguinte executa o kubectl get pods -n kube-system comando no cluster myPrivateCluster em myResourceGroup.

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

Utilizar command invoke para executar vários comandos

  • Execute vários comandos no cluster com o az aks command invoke --command comando . O comando de exemplo seguinte executa três helm comandos no cluster myPrivateCluster em 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"
    

Utilizar command invoke para executar comandos com um ficheiro ou diretório anexado

  • Execute comandos com um ficheiro ou diretório anexado com o az aks command invoke --command comando com o --file parâmetro . O comando de exemplo seguinte é executado kubectl apply -f deployment.yaml -n default no cluster myPrivateCluster em myResourceGroup. O deployment.yaml ficheiro é anexado a partir do diretório atual no computador de desenvolvimento onde az aks command invoke foi executado.

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

Utilize command invoke para executar comandos com todos os ficheiros no diretório atual anexado

  • Execute comandos com todos os ficheiros no diretório atual anexado com o az aks command invoke --command comando com o --file parâmetro . O comando de exemplo seguinte é executado kubectl apply -f deployment.yaml configmap.yaml -n default no cluster myPrivateCluster em myResourceGroup. Os deployment.yaml ficheiros e configmap.yaml fazem parte do diretório atual no computador de desenvolvimento onde az aks command invoke foi executado.

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