Depure aplicações Kubernetes com o Cloud Code para IntelliJ

O Cloud Code for IntelliJ permite-lhe depurar facilmente as suas aplicações implementadas num cluster do Kubernetes. Pode depurar uma aplicação num cluster local (como o minikube ou o Docker Desktop), no Google Kubernetes Engine ou em qualquer outro fornecedor de nuvem.

Com o apoio técnico de depuração do Cloud Code, ignora 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 da forma correta. Só precisa de uma aplicação Kubernetes pronta para o Cloud Code que inclua um ficheiro de configuração skaffold.yaml.

O Cloud Code também lhe permite depurar uma aplicação enquanto faz alterações e itera no código-fonte.

IDEs suportados

A tabela seguinte apresenta os idiomas e os IDEs que o Cloud Code suporta para a depuração. A tabela também lista os plug-ins necessários, quando aplicável:

Idioma IDEs e edições suportadas Plugin necessário
Java IntelliJ IDEA Ultimate N/A
IntelliJ IDEA Community N/A
Go IntelliJ IDEA Ultimate Plugin Go
GoLand N/A
Node.js IntelliJ IDEA Ultimate Plug-in Node.js
WebStorm N/A
Python IntelliJ IDEA Ultimate Plugin Python
PyCharm Professional N/A

Para mais informações sobre o apoio técnico de IDEs, consulte o artigo IDEs JetBrains suportados.

Com o Cloud Code, pode definir pontos de interrupção e depurar aplicações remotas executadas em contentores para os seguintes idiomas:

Java

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

Node.js

Consoante a estrutura da sua aplicação e a configuração de compilação de imagens, pode ter de ajudar o depurador a mapear as suas origens locais para as origens remotas no contentor. Isto permite que o depurador do Node processe corretamente os seus pontos de interrupção.

Pode configurar esta opção de uma das seguintes formas:

  • Configuração manual

    Selecione a configuração de execução Develop on Kubernetes no menu pendente e, de seguida, clique em Editar configurações. No separador Depurar, configure o mapeamento de origem da origem da aplicação local para a localização de origem no contentor remoto.

    Escolher uma localização de origem na secção de mapeamento de origem do separador Depurar

    Opções de configuração:

    • Ficheiro/diretório: o ficheiro ou o diretório local da sua aplicação em execução no Kubernetes.
    • Caminho remoto: o caminho para o ficheiro ou o diretório em execução no contentor no Kubernetes.
  • Configuração automática

    Pode optar por diferir este mapeamento para o Cloud Code. Quando inicia a sessão de depuração, o Cloud Code tenta inferir este mapeamento automaticamente. O mapeamento inferido é apresentado num diálogo; um diálogo para cada artefacto que está a depurar.

    Caixa de diálogo de mapeamento de caminhos remotos para cada artefacto que especifica o caminho remoto que está a ser usado

    Opções de configuração:

    • Caminho local: o caminho local para a raiz do artefacto que está a depurar.
    • Caminho remoto: o caminho para o ficheiro ou o diretório em execução no contentor no Kubernetes. Pode optar por substituir este valor pelo seu. Se clicar em Cancelar, não é aplicado nenhum mapeamento.

Go

Para configurar a sua aplicação para depuração, a app tem de ser uma aplicação baseada em módulos Go e ser identificada como baseada em Go através da definição de uma das variáveis de ambiente de tempo de execução Go padrão no contentor, como GODEBUG, GOGC, GOMAXPROCS ou GOTRACEBACK. GOTRACEBACK=single é a predefinição para o Go e GOTRACEBACK=all é uma configuração geralmente útil.

Opcionalmente (mas recomendado), a sua app deve ser criada com as opções -gcflags='all=-N -l' para desativar as otimizações. Os perfis do Skaffold são uma opção útil para este fim e podem ser definidos com o campo Perfil de implementação no separador Compilar/Implementar da configuração de execução.

Python

Para configurar a sua aplicação para depuração, certifique-se de que cumpre os seguintes pré-requisitos:

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

    Para ver os IDEs, as edições e os plug-ins compatíveis, consulte o artigo IDEs suportados.

  • A versão do Skaffold é 1.25.0 ou superior

    Pode permitir que o Cloud Code faça a gestão das suas dependências, ou apontar para uma instalação local do Skaffold. Consulte Preferências > Ferramentas > Cloud Code > Dependências.

  • O intérprete Python está configurado

    Sem um intérprete Python configurado no seu projeto, a depuração não funciona, uma vez que não existe forma de executar o pydevd, o depurador Python subjacente.

    IDE Como configurar
    IntelliJ IDEA A depuração de Python com o Cloud Code requer a configuração de um SDK Python para o seu projeto.

    Aceda a Ficheiro > Estrutura do projeto e adicione um SDK Python no separador Projeto. Se não existir nenhum, adicione um no separador SDK.
    PyCharm Aceda a File > Settings > Project > Python Interpreter ou para Mac OS X, PyCharm > Preferences > Project > Python Interpreter e adicione um intérprete Python.

Para mais informações, consulte a documentação de depuração do Skaffold.

Depure uma aplicação

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

    Iniciar o ciclo de desenvolvimento do cluster 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, pode realizar as tarefas que faz normalmente quando depura código local, como definir pontos de interrupção e percorrer o código passo a passo, num cluster do Kubernetes em direto.

    Sessão do depurador do Kubernetes

  3. Para terminar a sessão de depuração, clique no ícone de paragem na configuração de execução Develop on Kubernetes.

O que se segue?

Obter apoio técnico

Para enviar feedback ou comunicar um problema no seu IDE IntelliJ, aceda a Tools > Cloud Code > Help / About > Submit feedback or report an issue para comunicar um problema no GitHub.