Tutorial: Executar e depurar localmente com o Bridge to Kubernetes no Visual Studio

Neste tutorial, você aprenderá a redirecionar o tráfego entre o cluster do Kubernetes e o computador de desenvolvimento. Este tutorial usa o Bridge to Kubernetes e o Visual Studio para depurar um serviço. Para usar o Visual Studio Code, confira Executar e depurar localmente com o Bridge to Kubernetes com o VS Code.

Para saber mais sobre o Bridge to Kubernetes, confira Como funciona o Bridge to Kubernetes.

Neste tutorial, você aprenderá como:

  • Conecte-se ao cluster com o Bridge to Kubernetes.
  • Encaminhe solicitações para um serviço em execução localmente para fins de desenvolvimento.
  • Depure um serviço em execução no computador local.

Pré-requisitos

Configurar um serviço

Este tutorial usa o Bridge to Kubernetes para trabalhar com um aplicativo de exemplo de tarefas pendentes simples em qualquer cluster do Kubernetes.

O aplicativo de exemplo tem um front-end para interagir e um back-end que fornece armazenamento persistente.

  1. Abra uma janela bash e verifique se o cluster está disponível e pronto. Em seguida, defina o contexto para esse cluster.

    kubectl cluster-info
    kubectl config use-context <kubernetes-cluster>
    
  2. Clonar o repositório de exemplo.

    git clone https://github.com/Azure/Bridge-To-Kubernetes
    
  3. Altere o diretório para samples/todo-app e, em seguida, crie um namespace para o exemplo.

    kubectl create namespace todo-app
    
  4. Aplique o manifesto de implantação:

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

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

    Se você estiver testando com o MiniKube, use minikube tunnel para resolver um IP externo. Se você estiver usando o AKS ou outro provedor de Kubernetes baseado em nuvem, um IP externo será atribuído automaticamente.

  5. Use o seguinte comando para monitorar o serviço frontend para aguardar até que ele esteja em execução:

    kubectl get service -n todo-app frontend --watch
    
    NAME       TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
    frontend   LoadBalancer   10.0.245.78   10.73.226.228   80:31910/TCP   6m26s
    

Conectar-se ao seu cluster

  1. Abra o Visual Studio. Na janela Introdução, selecione Continuar sem código.

  2. Selecione Abrir>Projeto/Solução, encontre o projeto samples\todo-app\database-api\databaseApi.csproj e selecione Abrir.

  3. No projeto, selecione Bridge to Kubernetes nas configurações de inicialização, conforme mostrado aqui:

    Screenshot shows debugging tools with Bridge to Kubernetes selected.

  4. Selecione o botão Iniciar ao lado de Bridge to Kubernetes. Na caixa de diálogo Criar perfil para Bridge to Kubernetes, insira os seguintes valores:

    • Selecione o nome do cluster.
    • Selecione todo-app para seu namespace.
    • Selecione database-api para o Serviço a ser redirecionado.
    • Selecione a mesma URL usada anteriormente para iniciar o navegador.

    Screenshot shows the Create profile for Bridge to Kubernetes dialog box with the values entered.

  5. Se você quiser executar isolado, selecione Habilitar isolamento de roteamento. Se você habilitar o isolamento de roteamento, outras pessoas que estiverem usando o cluster não serão afetadas por suas alterações. O modo de isolamento roteia suas solicitações para a cópia de cada serviço afetado. Ele roteia outro tráfego normalmente. Para saber mais, confira Como funciona o Bridge to Kubernetes.

  6. Selecione Salvar e depurar para salvar suas alterações.

    Screenshot shows the todo service displayed from your debugging, with an entry box for tasks.

    Observação

    EndpointManager solicita que você permita privilégios elevados ao arquivo de hosts.

    Seu computador de desenvolvimento se conecta ao cluster. A barra de status mostra que você está conectado ao database-api serviço.

    Screenshot shows the status bar that verifies that your development computer is connected.

  7. Tente inserir tarefas e marcá-las como concluídas.

  8. Selecione Depurar>Parar Depuração para interromper a depuração. Um atalho para essa ação é Shift+F5 ou use o botão Parar Depuração na barra de ferramentas.

A ponte para o Kubernetes redireciona todo o tráfego para o serviço database-api. Ele redireciona para a versão do aplicativo no computador de desenvolvimento. Bridge to Kubernetes também encaminha todo o tráfego de saída do aplicativo de volta para o cluster do Kubernetes.

Observação

Por padrão, parar a tarefa de depuração também desconecta o computador de desenvolvimento do cluster do Kubernetes. Para alterar esse comportamento, selecione Ferramentas>Opções e, em seguida, selecione Ferramentas de Depuração do Kubernetes. Defina Desconectar após a Depuração como False.

Screenshot shows the Disconnect After Debugging value in the Kubernetes Debugging Tools.

Depois de atualizar essa configuração, o computador de desenvolvimento permanecerá conectado quando você parar e iniciar a depuração. Para desconectar o computador de desenvolvimento do cluster, clique no botão Desconectar na barra de ferramentas.

Definir um ponto de interrupção

Nesta seção, você definirá um ponto de interrupção em seu serviço.

  1. Em Gerenciador de Soluções, selecione MongoHelper.cs para abrir o arquivo no editor. Se você não vir o Gerenciador de Soluções, selecione Exibir>Gerenciador de Soluções.

  2. Posicione o cursor na primeira linha do corpo do método CreateTask. Em seguida, selecione Depurar>Alternar Ponto de Interrupção para definir um ponto de interrupção.

    Screenshot shows the CreateTask method with a breakpoint set in the first line.

    Um atalho para essa ação é a tecla F9.

  3. Selecione o botão Iniciar ao lado de Bridge to Kubernetes, como você fez na seção anterior. A depuração começa com os valores inseridos anteriormente.

  4. No navegador que é aberto, insira um valor em todos e selecione Enter. O código atinge o ponto de interrupção que você inseriu. Ao realizar tarefas reais de depuração, você pode usar as opções de depuração para percorrer o código.

  5. Selecione Depurar>Parar Depuração para interromper a depuração.

  6. Para remover o ponto de interrupção, selecione essa linha e, em seguida, selecione Depurar>Alternar Ponto de Interrupção ou selecione F9.

Editar perfil de inicialização

Se você precisar alterar como o Bridge to Kubernetes se conecta ao cluster, nesta seção, você editará as configurações do perfil de inicialização.

  1. Clique na seta ao lado do botão Bridge to Kubernetes e clique em Propriedades de Depuração de databaseApi. Screenshot shows the Bridge to Kubernetes drop down menu.

  2. Clique no link Editar perfil de Bridge to Kubernetes na caixa de diálogo Perfis de Inicialização. Screenshot shows Launch Profiles dialog with a link to edit the Bridge to Kubernetes profile

Limpar os recursos

Se você usou o aplicativo de tarefas pendentes de exemplo para este tutorial, poderá removê-lo do cluster usando o portal do Azure. Se você clonou esse repositório localmente, poderá excluí-lo manualmente.

Próximas etapas

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

Para obter informações sobre recursos com suporte e um roteiro para o Bridge to Kubernetes, confira Roteiro de Bridge to Kubernetes.

Para saber como conectar seu computador de desenvolvimento a um cluster usando Visual Studio Code, confira este artigo: