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
- Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
- A 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 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.
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.
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 o serviço, será solicitado que você insira a porta TCP do aplicativo local. Neste exemplo, digite 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 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.
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.
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.
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.
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.