Acessar um cluster privado do Serviço Kubernetes do Azure (AKS) usando o recurso de comando invoke ou Run command
Quando você acessa um cluster AKS privado, precisa se conectar ao cluster a partir da rede virtual do cluster, de uma rede emparelhada ou de um ponto de extremidade privado configurado. Essas abordagens exigem a configuração de uma VPN, Rota Expressa, a implantação de uma jumpbox dentro da rede virtual do cluster ou a criação de um ponto de extremidade privado dentro de outra rede virtual.
Com a CLI do Azure, você pode usar command invoke
para acessar clusters privados sem a necessidade de configurar uma VPN ou Rota Expressa. command invoke
permite que você invoque comandos remotamente, como kubectl
e helm
, em seu cluster privado por meio da API do Azure sem se conectar diretamente ao cluster. As Microsoft.ContainerService/managedClusters/runcommand/action
ações e Microsoft.ContainerService/managedclusters/commandResults/read
controlam as permissões de uso command invoke
do .
Com o portal do Azure, você pode usar o Run command
recurso para executar comandos em seu cluster privado. O Run command
recurso usa 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, consulte Criar um cluster AKS privado.
- A CLI do Azure versão 2.24.0 ou posterior. 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 run
comando fornece helm
e a versão mais recente compatível do kubectl
para seu cluster com kustomize
.
command invoke
executa os comandos do cluster, portanto, todos os comandos executados dessa maneira estão sujeitos às restrições de rede configuradas e a quaisquer outras restrições configuradas. Verifique se há nós e recursos suficientes em seu cluster para agendar esse pod de comando.
Nota
A saída para command invoke
é limitada a 512kB de tamanho.
Executar comandos no cluster AKS
Use command invoke
para executar um único comando
Execute um comando no cluster usando o
az aks command invoke --command
comando. O comando de exemplo a seguir 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"
Use command invoke
para executar vários comandos
Execute vários comandos no cluster usando o
az aks command invoke --command
comando. O comando de exemplo a seguir 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"
Use command invoke
para executar comandos com um arquivo ou diretório anexado
Execute comandos com um arquivo ou diretório anexado usando o
az aks command invoke --command
comando com o--file
parâmetro. O comando de exemplo a seguir é executadokubectl apply -f deployment.yaml -n default
no cluster myPrivateCluster em myResourceGroup. Odeployment.yaml
arquivo é 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
Use command invoke
para executar comandos com todos os arquivos no diretório atual anexado
Execute comandos com todos os arquivos no diretório atual anexado usando o
az aks command invoke --command
comando com o--file
parâmetro. O comando de exemplo a seguir é executadokubectl apply -f deployment.yaml configmap.yaml -n default
no cluster myPrivateCluster em myResourceGroup. Osdeployment.yaml
arquivos 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 .
Resolução de Problemas
Para obter informações sobre os problemas mais comuns e az aks command invoke
como corrigi-los, consulte Resolver az aks command invoke
falhas.
Próximos passos
Neste artigo, você aprendeu como acessar um cluster privado e executar comandos nesse cluster. Para obter mais informações sobre clusters AKS, consulte os seguintes artigos:
Azure Kubernetes Service