Compartilhar via


Usar o Bridge to Kubernetes com um exemplo

Nota

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 usar e baixar. Durante esse período, esperamos explorar e recomendar projetos de comunidade que ofereç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.

Este exemplo ilustra como o Bridge to Kubernetes pode ser usado para desenvolver uma versão de microsserviço de um aplicativo TODO simples em qualquer cluster do Kubernetes. Este exemplo, usando o Visual Studio Code, foi adaptado do código fornecido pelo TodoMVC. Neste exemplo, usamos o MiniKube para hospedar o aplicativo, mas essas etapas devem funcionar com qualquer cluster do Kubernetes.

O exemplo de aplicativo TODO é composto por um front-end e um back-end que fornece armazenamento persistente. Este exemplo estendido adiciona um componente de estatísticas e divide o aplicativo em vários microsserviços, especificamente:

  • O front-end chama o database-api para persistir e atualizar itens TODO;
  • O serviço database-api depende de um banco de dados Mongo para persistir itens TODO;
  • As gravações de front-end adicionam, completam e excluem eventos em uma fila RabbitMQ;
  • Um trabalhador de estatísticas recebe eventos da fila RabbitMQ e atualiza um cache Redis;
  • Uma API de estatísticas expõe as estatísticas armazenadas em cache para o front-end mostrar.

Ao todo, esse aplicativo TODO estendido é composto por seis componentes interrelacionados.

Pré-requisitos

  • Qualquer cluster do Kubernetes ou gerenciador de pacotes Chocolatey para instalar o MiniKube
  • No Windows 10, Hyper-V
  • Kubectl instalado e no caminho em um ambiente de linha de comando de sua escolha
  • Extensão do Visual Studio Code Bridge to Kubernetes

Instalar o MiniKube

Você pode usar qualquer provedor do Kubernetes com o Bridge to Kubernetes. Neste artigo, usamos MiniKube. O MiniKube é um provedor leve do Kubernetes que permite hospedar o Kubernetes em seu computador local. Siga as instruções de instalação para instalar o MiniKube no Windows 10, Linux ou macOS.

Para obter melhores resultados no Windows 10, você deve usar o gerenciador de VM Hyper-V e criar um comutador virtual .

Depois de instalado, inicie o MiniKube, especifique para usar o Hyper-V e forneça o nome do comutador virtual primário. Esse comando deve ser executado em um prompt de comando com privilégios de Administrador.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Implantar o aplicativo

Clone o repositório do Bridge to Kubernetes e abra uma janela de comando com a pasta de trabalho atual em todo-app.

Crie um namespace para o exemplo.

kubectl create namespace todo-app

Em seguida, aplique o manifesto de implantação:

kubectl apply -n todo-app -f deployment.yaml

Essa é uma implantação simples que expõe o front-end usando um serviço do tipo LoadBalancer. Aguarde até que todos os pods estejam em execução e que o IP externo do serviço frontend fique disponível.

Se você estiver testando com o MiniKube, precisará usar minikube tunnel para resolver um IP externo.

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

Navegue até o aplicativo usando o IP externo e a porta local (o primeiro número na coluna PORT(S).

http://{external-ip}:{local-port}

Teste o aplicativo em execução no navegador. Ao adicionar, concluir e excluir itens pendentes, observe que a página de estatísticas é atualizada com as métricas esperadas.

Depurar o serviço stats-api

Agora você pode usar a extensão Ponte para Kubernetes para demonstrar como o tráfego do cluster kubernetes pode ser redirecionado para uma versão em execução local da stats-api.

cd stats-api/

Abra o código-fonte da api de estatísticas no VS Code.

code .

Depois que o VS Code for iniciado, abra o painel Kubernetes na barra lateral esquerda do VS Code e selecione o namespace todo-app no cluster MiniKube. Clique com o botão direito do mouse no nó todo-app e escolha Usar Namespace.

Selecionar Namespace

Instale dependências executando npm install em uma janela de terminal (CTRL + ~).

npm install

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

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.

ponte para Kubernetes: configurar o comando

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.

Selecione o serviço para se conectar ao

Depois de selecionar seu serviço, você será solicitado a inserir a porta TCP para seu aplicativo local. Para este exemplo, insira 3001.

Insira o número da porta

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

Escolha a tarefa de inicialização do depurador

Você tem a opção de executar de forma isolada ou não isolada. 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 desenvolvimento isolado. Para este exemplo, vamos usar nonisolated.

Escolha isolamento

Nota

O VS Code solicita que você permita que o EndpointManager execute com privilégios elevados e modifique o arquivo de hosts.

O perfil de depuração Bridge to Kubernetes foi configurado com êxito.

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.

Escolher o perfil de inicialização de depuração

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.

Depuração com o Bridge to Kubernetes

Navegue até o ponto de entrada de front-end do todo-app. Para minikube, usaremos 127.0.0.1. Para acessar a URL do ponto de extremidade local para seu aplicativo, abra o menu kubernetes na barra de status e escolha a entrada do ponto de extremidade.

Faça uma solicitação para a stats-api escolhendo o link stats.

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 maneira transparente.

Este exemplo é apenas uma ilustração de como usar o Bridge to Kubernetes em clusters não AKS. Experimente em seu próprio projeto em seguida!

Limpar

Para limpar os ativos produzidos por este exemplo, execute:

kubectl delete namespace todo-app

Próximas etapas

Você também pode implantar seu aplicativo no AKS (Serviço de Kubernetes do Azure) com o Bridge to Kubernetes. Confira Usar o Bridge to Kubernetes com o AKS