Compartilhar via


Usar o Bridge to Kubernetes com o AKS

Observação

A Microsoft planeja não manter mais ativamente o projeto Bridge to Kubernetes. Nos próximos meses, faremos a transição do projeto para um estado de arquivamento. Enquanto isso, o projeto ainda está disponível para uso e download. Durante esse período, esperamos explorar e recomendar projetos da comunidade que forneçam benefícios semelhantes ao Bridge to Kubernetes para seu uso futuro. Se você tiver dúvidas, entre em contato conosco em nosso quadro de problemas no GitHub.

Neste tutorial, use um aplicativo Web de microsserviços de exemplo do AKS específico 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 a conexão do computador de desenvolvimento a um cluster do Kubernetes em execução no AKS. Se você já tiver seu próprio aplicativo em execução em um cluster do Kubernetes, confira Desenvolver com o Kubernetes. Se você estiver usando outro cluster, como o MiniKube em execução localmente, confira Usar o Bridge to 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 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 seu cluster do Kubernetes usando o 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 seguinte comando e copie o IP do serviço de front-end na coluna IP Externo.

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 o stats-api no VS Code.

code ./stats-api

Primeiro, coloque um ponto de interrupção na linha 17 de server.js.

Em seguida, certifique-se de que o namespace todo-app no cluster MyAKS esteja definido como padrão (se tiver * próximo a ele). 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 Ponte para Kubernetes.

Em seguida, configure a ponte: abra a Paleta de Comandos (CTRL+SHIFT+P ou Cmd+Shift+P em um Mac) e digite Bridge to Kubernetes. Selecione a opção Bridge to Kubernetes: Configurar.

Captura de tela mostrando a janela de comando Bridge to Kubernetes Configure.

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 seleção do serviço a ser conectado à janela.

Importante

Você só pode redirecionar serviços que têm um único pod.

Depois de selecionar o serviço, será solicitado que você insira a porta TCP do aplicativo local. Neste exemplo, digite 3001.

Captura de tela mostrando a janela 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 saber mais sobre essa opção, confira Usar recursos de roteamento para desenvolver isoladamente. Para este exemplo, continuamos com não isolados. Se você escolheu o isolamento, o task.json tem o prefixo que você deve usar para rotear a solicitação para o computador.

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

Observação

Nas inicializações subsequentes, você clicará apenas no ícone de depuração sem passar por essa configuração, e será solicitado o nome do serviço, a porta, a tarefa de inicialização ou se a execução será isolada. 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.

Observação

Você receberá uma solicitação para 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 janela Escolher a depuração com Bridge to Kubernetes.

Navegue até o ponto de entrada do front-end do aplicativo por meio do IP externo que você encontrou anteriormente, {your external IP from get services command}.nip.io. Observe que, se você realizou a seleção do 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 estatísticas.

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 solicitação continuar completa de forma 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 AKS ativado para depuração futura ou pode excluí-lo com o seguinte comando.

az aks delete --name MyAKS --resource-group MyResourceGroup

Próximas etapas

Saiba mais sobre o Bridge to Kubernetes em Como funciona o Bridge to Kubernetes.