Eseguire il debug delle applicazioni Kubernetes con Cloud Code for IntelliJ

Cloud Code for IntelliJ ti consente di eseguire facilmente il debug delle applicazioni di cui è stato eseguito il deployment in un cluster Kubernetes. Puoi eseguire il debug di un'applicazione su un cluster locale (come minikube o Docker Desktop), Google Kubernetes Engine o qualsiasi altro provider di servizi cloud.

Con il supporto per il debug di Cloud Code, non devi eseguire la configurazione manuale, ad esempio la configurazione del port forwarding, l'installazione di un backend di debug o l'inserimento corretto degli argomenti di debug specifici del linguaggio. Tutto ciò di cui hai bisogno è un'applicazione Kubernetes compatibile con Cloud Code che includa un file di configurazione skaffold.yaml.

Cloud Code ti consente anche di eseguire il debug di un'applicazione mentre apporti modifiche al codice sorgente e lo iteri.

IDE supportati

La tabella seguente elenca i linguaggi e gli IDE supportati da Cloud Code per il debug. La tabella elenca anche i plug-in richiesti, ove applicabile:

Lingua IDE e versioni supportati Plug-in richiesto
Java IntelliJ IDEA Ultimate N/D
IntelliJ IDEA Community N/D
Vai IntelliJ IDEA Ultimate Plug-in Go
GoLand N/D
Node.js IntelliJ IDEA Ultimate Plug-in Node.js
WebStorm N/D
Python IntelliJ IDEA Ultimate Plug-in Python
PyCharm Professional N/D

Per ulteriori informazioni sul supporto IDE, vedi IDE JetBrains supportati.

Con Cloud Code, puoi impostare punti di interruzione ed eseguire il debug delle applicazioni remote in esecuzione nei container per i seguenti linguaggi:

Java

Cloud Code aggiunge automaticamente una variabile di ambiente, JAVA_TOOL_OPTIONS, con la configurazione JDWP appropriata per abilitare il debug. Se JAVA_TOOL_OPTIONS è già presente, Cloud Code utilizza le impostazioni esistenti specificate in JAVA_TOOL_OPTIONS.

Node.js

A seconda della struttura dell'applicazione e della configurazione di creazione dell'immagine, potresti dover aiutare il debugger a mappare le origini locali alle origini remote nel container. In questo modo, il debugger di Node può elaborare correttamente i punti di interruzione.

Puoi configurare questa opzione in uno dei seguenti modi:

  • Configurazione manuale

    Seleziona la configurazione di esecuzione Sviluppa su Kubernetes dal menu a discesa, quindi fai clic su Modifica configurazioni. Nella scheda Debug, configura la mappatura dell'origine dall'origine dell'applicazione locale alla posizione dell'origine nel container remoto.

    Scelta di una posizione di origine nella sezione di mappatura dell'origine della scheda Debug

    Opzioni di configurazione:

    • File/directory : il file o la directory locale dell'applicazione in esecuzione su Kubernetes.
    • Percorso remoto : il percorso del file o della directory in esecuzione nel container su Kubernetes.
  • Configurazione automatica

    Puoi scegliere di rimandare questa mappatura a Cloud Code. Quando avvii la sessione di debug, Cloud Code tenta di dedurre automaticamente questa mappatura. La mappatura dedotta viene presentata in una finestra di dialogo; una finestra di dialogo per ogni artefatto di cui stai eseguendo il debug.

    Finestra di dialogo di mappatura del percorso remoto per ogni artefatto che specifica il percorso remoto utilizzato

    Opzioni di configurazione:

    • Percorso locale : il percorso locale della radice dell'artefatto di cui stai eseguendo il debug.
    • Percorso remoto : il percorso del file o della directory in esecuzione nel container su Kubernetes. Puoi scegliere di sostituire questo valore con il tuo. Se fai clic su Annulla, non viene applicata alcuna mappatura.

Vai

Per configurare l'applicazione per il debug, l'app deve essere basata su moduli Goe deve essere identificata come basata su Go impostando una delle variabili di ambiente di runtime Go standard nel container, ad esempio GODEBUG, GOGC, GOMAXPROCS, o GOTRACEBACK. GOTRACEBACK=single è l'impostazione predefinita per Go e GOTRACEBACK=all è una configurazione generalmente utile.

Facoltativamente (ma consigliato), l'app deve essere creata con le -gcflags='all=-N -l' opzioni per disattivare le ottimizzazioni. I profili Skaffold sono un'opzione utile a questo scopo e possono essere impostati con il campo Profilo di deployment nella configurazione di esecuzione nella scheda Crea/esegui il deployment.

Python

Per configurare l'applicazione per il debug, assicurati di soddisfare i seguenti prerequisiti:

  • IDE, versione e plug-in sono compatibili

    Per gli IDE, le versioni e i plug-in compatibili, vedi IDE supportati.

  • La versione di Skaffold è 1.25.0 o successiva

    Puoi consentire a Cloud Code di gestire le dipendenze, o indirizzare a un'installazione locale di Skaffold. Vedi Preferenze > Strumenti > Cloud Code > Dipendenze.

  • L'interprete Python è configurato

    Se non è configurato un interprete Python nel progetto, il debug non funzionerà, poiché non è possibile eseguire pydevd, il debugger Python sottostante.

    IDE Modalità di configurazione
    IntelliJ IDEA Il debug di Python con Cloud Code richiede la configurazione di un SDK Python per il progetto.

    Vai a File > Struttura progetto e aggiungi un SDK Python nella scheda Progetto. Se non ne esiste uno, aggiungilo nella scheda SDK.
    PyCharm Vai a File > Impostazioni > Progetto > Interprete Python o per Mac OS X, PyCharm > Preferenze > Progetto > Interprete Python e aggiungi un interprete Python.

Per ulteriori informazioni, consulta la documentazione di debug di Skaffold.

Eseguire il debug di un'applicazione

  1. Per avviare il ciclo di sviluppo in modalità di debug sul cluster Kubernetes, fai clic sull'azione di debug per icona dell'azione di corsa Sviluppa su Kubernetes.

    Avvio del ciclo di sviluppo del cluster Kubernetes in modalità di debug

    Il ciclo di sviluppo continuo viene avviato in modalità di debug.

    Cloud Code collega una sessione di debug:

    Debugger Kubernetes collegato

  2. Ora puoi eseguire le attività che normalmente esegui durante il debug del codice locale, ad esempio impostare punti di interruzione ed eseguire il codice passo passo, su un cluster Kubernetes live.

    Sessione del debugger Kubernetes

  3. Per terminare la sessione di debug, fai clic sull'icona di arresto nella configurazione di esecuzione Sviluppa su Kubernetes.

Passaggi successivi

Assistenza

Per inviare feedback o segnalare un problema nell'IDE IntelliJ, vai a Strumenti > Cloud Code > Guida / Informazioni > Invia feedback o segnala un problema per segnalare un problema su GitHub.