Depurar aplicativos do Kubernetes com o Cloud Code para IntelliJ

Usando o Cloud Code para IntelliJ, você depura facilmente seus aplicativos implantados em um cluster do Kubernetes. É possível depurar um aplicativo em um cluster local (como minikube ou Docker Desktop), no Google Kubernetes Engine ou em qualquer outro provedor de nuvem.

Com o suporte à depuração do Cloud Code, você pula corretamente a configuração manual, como a configuração do encaminhamento de portas, a instalação de um back-end de depuração ou a injeção de argumentos de depuração específicos da linguagem. Tudo o que você precisa é de um aplicativo do Kubernetes pronto para o Cloud Code que inclua um arquivo de configuração skaffold.yaml.

O Cloud Code também permite depurar um aplicativo enquanto faz alterações e itera no código-fonte.

IDEs compatíveis

A tabela a seguir lista as linguagens e os ambientes de desenvolvimento integrado compatíveis com o Cloud Code para depuração. A tabela também lista os plug-ins necessários, quando aplicável:

Idioma Ambientes de desenvolvimento integrado e edições compatíveis Plug-in necessário
Java IntelliJ IDEA Ultimate N/A
Comunidade do IntelliJ IDEA N/A
Go IntelliJ IDEA Ultimate Plug-in do Go
GoLand N/A
Node.js IntelliJ IDEA Ultimate Plug-in do Node.js
WebStorm N/A
Python IntelliJ IDEA Ultimate Plug-in do Python
Profissional de PyCharm N/A

Para mais informações sobre suporte a ambientes de desenvolvimento integrado, consulte Ambientes de desenvolvimento integrado do JetBrains compatíveis.

Com o Cloud Code, é possível definir pontos de interrupção e depurar aplicativos remotos em execução nos contêineres das seguintes linguagens:

Java

O Cloud Code adiciona automaticamente uma variável de ambiente, JAVA_TOOL_OPTIONS, com a configuração de JDWP apropriada para ativar a depuração. Se JAVA_TOOL_OPTIONS já estiver presente, o Cloud Code usará as configurações especificadas em JAVA_TOOL_OPTIONS.

Node.js

Dependendo da estrutura do aplicativo e da configuração de criação da imagem, talvez seja necessário ajudar o depurador a mapear as fontes locais para as fontes remotas no contêiner. Isso permite que o depurador de nós processe corretamente seus pontos de interrupção.

É possível configurar isso de uma das seguintes maneiras:

  • Configuração manual

    Na lista suspensa, selecione Develop on Kubernetes Run Configuration e clique em Edit Configurations. Na guia Depurar, configure o mapeamento de origem da origem do aplicativo local para o local de origem no contêiner remoto.

    Escolher um local de origem na seção de mapeamento de origem da guia "Depuração"

    Opções de configuração:

    • File/directory: o arquivo ou diretório local do aplicativo em execução no Kubernetes.
    • Caminho remoto: o caminho para o arquivo ou diretório em execução no contêiner no Kubernetes.
  • Configuração automática

    É possível adiar o mapeamento para o Cloud Code. Quando você inicia a sessão de depuração, o Cloud Code tenta inferir esse mapeamento automaticamente. O mapeamento inferido é apresentado em uma caixa de diálogo; Uma caixa de diálogo para cada artefato que você está depurando.

    Caixa de diálogo de mapeamento de caminho remoto para cada artefato, especificando o caminho remoto que está sendo usado

    Opções de configuração:

    • Caminho local: o caminho local para a raiz do artefato que você está depurando.
    • Caminho remoto: o caminho para o arquivo ou diretório em execução no contêiner no Kubernetes. É possível modificá-lo por seu próprio valor. Se você clicar em Cancelar, nenhum mapeamento será aplicado.

Go

Para configurar seu aplicativo para depuração, seu app precisa ser um aplicativo baseado em módulo Go e ser identificado como baseado em Go definindo um dos padrãos Variáveis de ambiente de execução do Go no contêiner, como GODEBUG, GOGC, GOMAXPROCS ou GOTRACEBACK. GOTRACEBACK=single é a configuração padrão para Go e GOTRACEBACK=all é uma configuração geralmente útil.

Como opção, mas recomendado, seu app precisa ser criado com as opções -gcflags='all=-N -l' para desativar as otimizações. Os perfis do Skaffold são uma opção útil para isso. Eles podem ser definidos com o campo Perfil de implantação na sua configuração do Run no Guia Build/Deploy.

Python

Para configurar seu aplicativo para depuração, verifique se você atende aos seguintes pré-requisitos:

  • IDE, edição e plug-in são compatíveis

    Para ver ambientes de desenvolvimento integrado, edições e plug-ins compatíveis, consulte Ambientes de desenvolvimento integrado compatíveis.

  • A versão do Skyffold é 1.25.0 ou mais recente.

    É possível permitir que o Cloud Code gerencie suas dependências ou aponte para uma instalação local do Skaffold. Consulte Preferências > Ferramentas > Cloud Code > Dependências.

  • O interpretador do Python está configurado

    Sem um interpretador do Python configurado no projeto, a depuração não funcionará, porque não há como executar a pydevd, o depurador do Python subjacente.

    IDE Como configurar
    IntelliJ IDEA A depuração do Python com o Cloud Code requer que um SDK do Python seja configurado para o projeto.

    Acesse File > Project Structure e adicione um SDK Python na guia Project. Se não existir, adicione uma na guia SDK.
    PyCharm Acesse File > Settings > Project > Python Interpreter ou para Mac OS X, PyCharm > Preferences > Project > Python Interpreter e adicione um interpretador do Python. de dados.

Para mais informações, consulte a documentação de depuração do Skaffold (em inglês).

Depurar um aplicativo

  1. Para iniciar o ciclo de desenvolvimento no modo de depuração no cluster do Kubernetes, clique na ação de depuração do Ícone do botão de execução Desenvolver no Kubernetes.

    Como iniciar o ciclo de desenvolvimento do cluster do Kubernetes no modo de depuração

    O ciclo de desenvolvimento contínuo é iniciado no modo de depuração.

    O Cloud Code anexa uma sessão de depuração:

    Depurador do Kubernetes anexado

  2. Agora é possível realizar as tarefas que você normalmente faz ao depurar código local, como definir pontos de interrupção e avançar o código, em um cluster ativo do Kubernetes.

    Sessão do depurador do Kubernetes

  3. Para encerrar a sessão de depuração, clique no ícone de parada na configuração de execução Desenvolver no Kubernetes.

A seguir

Receba ajuda

Para enviar um feedback ou informar um problema no ambiente de desenvolvimento integrado do IntelliJ, acesse Tools > Cloud Code > Help / About > Envie feedback ou informe um problema para informar um problema no GitHub ou faça uma pergunta no Stack Overflow.