Usar o Bridge to Kubernetes com o AKS
Nota
A Ponte para Kubernetes será desativada em 30 de abril de 2025. Para obter detalhes sobre a aposentadoria e alternativas de código aberto, consulte o problema no GitHub,.
Neste tutorial, você usará um aplicativo Web de microsserviços de exemplo específico do AKS para aprender a usar o Bridge to Kubernetes para depurar localmente em um único pod que faz parte de um cluster do AKS (Serviço de Kubernetes do Azure).
Antes de começar
Este guia usa o aplicativo de exemplo Todo App para demonstrar como conectar seu computador de desenvolvimento a um cluster kubernetes em execução no AKS. Se você já tiver seu próprio aplicativo em execução em um cluster do Kubernetes, consulte Desenvolver com o Kubernetes. Se você estiver usando outro cluster, como o MiniKube em execução localmente, consulte Usar Ponte para Kubernetes com um exemplo.
Pré-requisitos
- Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, poderá criar uma conta gratuita .
- CLI do Azure instalada.
- Visual Studio Code em execução no macOS, Windows 10 ou Linux.
- A extensão Bridge to Kubernetes instalada no Visual Studio Code.
Criar um cluster do Kubernetes
Crie um cluster do AKS em uma região com suporte. Os comandos a seguir criam um grupo de recursos chamado MyResourceGroup
e um cluster do AKS chamado MyAKS
.
az group create \
--name MyResourceGroup \
--location eastus
az aks create \
--resource-group MyResourceGroup \
--name MyAKS \
--location eastus \
--node-count 3 \
--generate-ssh-keys
Instalar o aplicativo de exemplo
Baixar o código e instalar dependências
git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\
Conectar-se ao cluster e implantar o aplicativo
No computador de desenvolvimento, baixe e configure a CLI do Kubernetes para se conectar ao cluster do Kubernetes usando az aks get-credentials
.
az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app
Experimentar o aplicativo
No mesmo terminal que você estava usando anteriormente, execute o comando a seguir e copie o IP para o serviço front-end na coluna IP externa.
kubectl get services
Para experimentar o aplicativo, abra a URL: {your external IP from above command goes here}.nip.io
Depurar o serviço stats-api
No mesmo terminal que você estava usando anteriormente, digite o seguinte comando para abrir stats-api no VS Code.
code ./stats-api
Primeiro, coloque um ponto de interrupção na linha 17 de server.js
.
Em seguida, verifique se o namespace todo-app
no cluster MyAKS
está definido como padrão (se ele tiver * ao lado dele). Se ele não estiver definido como padrão, clique com o botão direito do mouse no nó todo-app e escolha Usar Namespace.
Em seguida, configure a ponte: abra a Paleta de Comandos (CTRL+SHIFT+P ou Cmd+Shift+P em um Mac) e digite Bridge para Kubernetes. Selecione a opção Bridge to Kubernetes: Configurar.
Será solicitado que você configure o serviço que quer substituir, a porta a ser encaminhada do computador de desenvolvimento e a tarefa de inicialização a ser usada.
Escolha o serviço stats-api
.
Importante
Você só pode redirecionar serviços que têm um único pod.
Depois de selecionar seu serviço, você será solicitado a inserir a porta TCP para seu aplicativo local. Para este exemplo, insira 3001.
Escolha Executar Script: desenvolvimento como a tarefa de inicialização.
Você tem a opção de executar isolado ou não isolado. Se você executar isolado, somente suas solicitações serão roteadas para o processo local; outros desenvolvedores podem usar o cluster sem serem afetados. Se você não executar isolado, todo o tráfego será redirecionado para o processo local. Para obter mais informações sobre essa opção, consulte Usando recursos de roteamento para o desenvolvimento isolado. Para este exemplo, continuamos com não isolado. Se você escolheu o isolamento, task.json tem o prefixo que você deve usar para rotear a solicitação para o computador.
Nota
Nos lançamentos subsequentes, você clicará apenas no ícone de depuração sem passar por essa configuração e sem ser solicitado o nome do serviço, a porta, a tarefa de inicialização ou se deve executar isoladamente. Esses valores são salvos em .vscode/tasks.json
. Para alterar essas configurações posteriormente, abra a Paleta de Comandos (CTRL+SHIFT+P ou Cmd+Shift+P em um Mac) e execute o comando Bridge to Kubernetes: Configure.
O perfil de depuração Bridge to Kubernetes foi configurado com êxito.
Para iniciar a depuração, selecione o ícone Depurar à esquerda e selecione Executar Script: desenvolvimento com Kubernetes. Clique no botão Iniciar ao lado de Executar Script: desenvolvimento com Kubernetes.
Nota
Você será solicitado a permitir que o EndpointManager execute com privilégios elevados e modifique o arquivo de hosts.
Seu computador de desenvolvimento está conectado quando a barra de status do VS Code fica laranja e a extensão do Kubernetes mostra que você está conectado. Quando o computador de desenvolvimento estiver conectado, o tráfego começará a ser redirecionado para o computador de desenvolvimento para a stats-api que você está substituindo.
Navegue até o ponto de entrada de front-end do aplicativo por meio do IP externo encontrado anteriormente, {your external IP from get services command}.nip.io
. Observe que, se você selecionou o modo de isolamento, precisará usar {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io
.
Faça uma solicitação para a stats-api escolhendo o link stats.
Observe que o tráfego inicializado inicialmente no cluster foi redirecionado para a versão em execução local (fora do cluster) em que o ponto de interrupção foi disparado.
Pressione play e deixe a requisição continuar de forma completa e transparente.
Limpar
Ao interromper o depurador, todas as alterações no cluster são revertidas. Observe que, se você estiver executando com o isolamento ativado, o pod do gerenciador de roteamento será deixado lá para agilizar o início do depurador na próxima vez.
Você pode deixar o cluster do AKS ativado para depuração futura ou excluí-lo com o comando a seguir.
az aks delete --name MyAKS --resource-group MyResourceGroup
Próximas etapas
Saiba mais sobre o Bridge to Kubernetes no Como o Bridge to Kubernetes funciona.