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 eMicrosoft.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 okubectl 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êshelm
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 é executadokubectl apply -f deployment.yaml -n default
no cluster myPrivateCluster em myResourceGroup. Odeployment.yaml
ficheiro é anexado a partir do diretório atual no computador de desenvolvimento ondeaz 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 é executadokubectl apply -f deployment.yaml configmap.yaml -n default
no cluster myPrivateCluster em myResourceGroup. Osdeployment.yaml
ficheiros econfigmap.yaml
fazem parte do diretório atual no computador de desenvolvimento ondeaz 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 .