Compartilhar via


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

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.

Captura de tela mostrando o Namespace Bridge to Kubernetes.

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.

Captura de tela mostrando a janela Configurar Bridge to Kubernetes.

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.

Captura de tela mostrando a janela de seleção do serviço a ser conectado.

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.

Captura de tela mostrando a janela para inserir o número da porta.

Escolha Executar Script: desenvolvimento como a tarefa de inicialização.

Captura de tela mostrando a janela escolher a tarefa de inicialização do depurador.

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.

Captura de tela mostrando a janela de seleção da opção de isolamento.

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.

Captura de tela mostrando a janela escolher o perfil de inicialização de depuração.

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.

Captura de tela mostrando a escolha da depuração com a janela Bridge to Kubernetes.

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.

Captura de tela mostrando a escolha do site em execução – escolha o link de status.

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.