Eseguire e sviluppare un'applicazione in Cloud Code per IntelliJ

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Ora che la configurazione è completata, puoi scegliere un'esecuzione regolare dell'applicazione o avviare un ciclo di iterazione dello sviluppo sul tuo IDE per promuovere le modifiche apportate all'origine e le dipendenze dell'applicazione attiva. Questa pagina utilizza l'app di esempio guestbook per illustrare l'esecuzione e lo sviluppo dell'esperienza Kubernetes.

Scelta di un'azione di esecuzione

Prima dell'esecuzione

Prima di eseguire l'applicazione, assicurati di essere pronto per il deployment dell'app nel contesto che preferisci per Kubernetes. Puoi specificarlo nella configurazione, nella scheda Esegui e nella sezione Preferenze di deployment.

Se vuoi cambiare il contesto attuale, puoi farlo con Kubernetes Explorer, accessibile dal riquadro della barra laterale a destra o utilizzando Strumenti > Cloud Code > Kubernetes > View Cluster Explorer.

Per ottimizzare il loop di sviluppo selezionando rapidamente modifiche di file di un certo tipo senza dover eseguire una ricreazione dell'immagine, puoi abilitare la sincronizzazione dei file e il ricaricamento rapido.

Sviluppo continuo su Kubernetes

Il target di esecuzione Sviluppo su Kubernetes avvia il ciclo di sviluppo del cluster Kubernetes. Dopo aver iniziato il ciclo di sviluppo, Cloud Code, utilizzando Skaffold, crea un'immagine per il progetto e poi la tagga, la invia al repository configurato e utilizza kubectl per eseguire il deployment dei manifest di Kubernetes Kubernetes.

  1. Fai clic su Icona di azione di esecuzione Sviluppo su Kubernetes, quindi su Modifica configurazioni per aprire la finestra di dialogo Esegui configurazioni/debug.
  2. Personalizza il tuo deployment utilizzando le opzioni di configurazione disponibili.
  3. Se vuoi che Cloud Code esegua nuovamente il deployment dell'applicazione automaticamente dopo il salvataggio delle modifiche, in Modalità orologio - Ricostruzione e rideployment, seleziona Al salvataggio del file. Le nuove applicazioni Kubernetes hanno l'opzione On demand selezionata per impostazione predefinita. Per ulteriori informazioni sulle modalità di visualizzazione, consulta la pagina Modalità di orologio.
  4. Se la tua applicazione è configurata per utilizzare i moduli Skaffold, puoi selezionare per creare o eseguire il deployment di moduli specifici.
  5. Una volta completata la configurazione, fai clic su OK, quindi su Icona di azione di esecuzione Esegui.

Avvio del ciclo di sviluppo del cluster Kubernetes

Selezione dei moduli Skaffold

Questa sezione illustra come suddividere il progetto Skaffold in moduli per sviluppare ed eseguire il debug delle parti dell'applicazione in modo indipendente.

Per selezionare i moduli Skaffold in IntelliJ, esegui questi passaggi:

  1. Installa le ultime build degli addetti ai lavori.
  2. Vai a Esegui > Modifica configurazioni e apri la scheda Crea/Esegui il deployment.
  3. Seleziona skaffold.yaml.
  4. Scegliere una delle opzioni seguenti:
    • Crea e sottoponi a deployment con tutte le dipendenze oppure
    • Crea ed esegui il deployment con (se i moduli sono disponibili) e seleziona eventuali moduli.
Scheda Build / Deploy che mostra l'elenco dei moduli.

La tua selezione persiste per i deployment successivi. Se selezioni un sottoinsieme di moduli, Cloud Code visualizza un avviso relativo al deployment di un sottoinsieme di moduli e non dell'intero sistema.

Anteprima dell'applicazione di cui è stato eseguito il deployment

  1. Fai clic sul pulsante Esegui sull'azione di esecuzione preferita. Puoi quindi visualizzare i log delle applicazioni in entrata nella finestra di output della scheda Log.

    All'avvio del deployment, vedrai l'elenco delle porte inoltrate per la tua applicazione di cui è stato eseguito il deployment.

  2. Una volta eseguito correttamente il deployment, riceverai una notifica della disponibilità di nuovi URL di servizio. Fai clic sulla scheda URL dei servizi per visualizzare gli URL, quindi fai clic sul link URL per aprire il browser con l'applicazione in esecuzione.

    Visualizzazione dei servizi con port forwarding nella scheda URL del servizio

    In alternativa, puoi aprire il log eventi e fare clic sul link per aprire il browser con l'applicazione in esecuzione.

    Il riquadro Risorse di cui è stato eseguito il deployment mostra gli elementi di cui hai eseguito il deployment durante la sessione di sviluppo.

Visualizzazione dei log

Oltre a visualizzare i log dall'esecuzione di pod come live streaming nell'output del terminale mentre sviluppi ed esegui la tua applicazione, puoi visualizzare i log da un pod specifico andando su Kubernetes Explorer.

Per visualizzare i log da un pod specifico:

  1. Accedi a Kubernetes Explorer. È possibile accedervi dal riquadro laterale a destra o utilizzando Strumenti > Cloud Code > Kubernetes > Visualizza Cluster Explorer.

    Riquadro Esplora Kubernetes aperto utilizzando la scheda sulla barra delle applicazioni sul lato destro

  2. Seleziona il pod da cui vuoi visualizzare i log.

  3. Fai clic con il pulsante destro del mouse sul pod, quindi fai clic su Avvia flusso di log. In alternativa, puoi trasmettere in streaming i log per singoli container in esecuzione nei pod.

    La Console di esplorazione di Kubernetes mostra i log.

    Flusso di log da un pod utilizzando il menu di scelta rapida per inviare i log alla console di Kubernetes Explorer

Aggiunta di nuove funzionalità durante lo sviluppo su Kubernetes

Se hai iniziato un ciclo di iterazione dello sviluppo con Sviluppo su Kubernetes e hai aggiunto altre funzionalità al progetto, potrai vedere come viene eseguito il deployment di queste modifiche nel cluster Kubernetes senza interrompere e rimuovere il deployment, creare e codificare manualmente l'immagine o aggiornare il cluster.

Se stai seguendo l'app guestbook:

  1. Apri il file 'FrontendController.java' da src/main/java/cloudcode/guestbook/frontend e aggiungi questo nuovo endpoint alla classe FrontendController:

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. Aggiungi le importazioni necessarie per le nuove annotazioni RequestMapping e ResponseBody.

  3. Salva le modifiche (Ctrl/Cmd+S) o crea il progetto (usa il menu Build > Build Project).

    Puoi visualizzare l'avanzamento e i log di deployment nella finestra della console. Una volta propagate le modifiche, conferma gli aggiornamenti visitando il nuovo URL endpoint: localhost:8080/greeting.

    Visualizzazione dell'endpoint appena creato in un browser

  4. Per terminare la sessione di sviluppo continuo, fai clic sul pulsante Interrompi.

    Il plug-in elimina tutte le risorse Kubernetes utilizzate per la sessione di sviluppo.

Archiviare i secret

Se il tuo codice include dati potenzialmente sensibili come chiavi API, password e certificati, ti consigliamo di archiviarli come secret. Con Cloud Code, puoi archiviare in modo sicuro questi secret in Secret Manager e recuperarli in modo programmatico quando ne hai bisogno. Per un'analisi dettagliata di come creare e gestire i secret con Cloud Code, consulta la guida di Secret Manager.

Visualizzazione dei dettagli della risorsa

Per tenere traccia dello stato delle tue risorse Kubernetes, puoi utilizzare Kubernetes Explorer, accessibile dal riquadro laterale a destra. In alternativa, puoi accedere a Kubernetes Explorer utilizzando Strumenti > Cloud Code > Kubernetes > Visualizza Cluster Explorer.

Riquadro Esplora Kubernetes aperto utilizzando la scheda sulla barra delle applicazioni sul lato destro

Con Kubernetes Explorer puoi accedere alle informazioni su cluster, nodi, carichi di lavoro e altro ancora, impostare un contesto attivo, stream e visualizzare log e cercare le descrizioni delle risorse.

Puoi visualizzare i dettagli delle risorse di cui hai eseguito il deployment facendo clic con il pulsante destro del mouse su un'etichetta della risorsa in Kubernetes Explorer e quindi facendo clic su Descrivi.

Opzione Descrivi disponibile quando fai clic con il pulsante destro del mouse su una risorsa appropriata nel riquadro Explorer Kubernetes e scegli Descrivi

Configurazione

Se utilizzi la configurazione eseguita su Sviluppo in Kubernetes, puoi personalizzare il deployment configurando le impostazioni disponibili. Per accedere alle opzioni di configurazione, seleziona la configurazione dal menu a discesa e poi Modifica configurazioni.

Opzioni Skaffold

  • Skaffold configuration: seleziona un file di configurazione skaffold.yaml. Verrà rilevato automaticamente se nel progetto è presente un skaffold.yaml.
  • Profilo di deployment: seleziona un profilo tra le opzioni disponibili configurate nel file skaffold.yaml.
  • Variabili di ambiente: consente di configurare ulteriori variabili di ambiente da trasmettere al processo di deployment di Skaffold. I flag Skaffold possono essere configurati anche come variabili di ambiente da utilizzare in questo campo. Consulta la documentazione di riferimento dell'interfaccia a riga di comando di Skaffold per un elenco completo delle variabili di ambiente Skaffold disponibili.
  • Livello di dettaglio: consente di impostare il livello di dettaglio delle ricerche su trace, debug, info, warn, error o fatal. Il livello di dettaglio predefinito è warn.

Opzioni di Kubernetes

  • Context di deployment: rappresenta il contesto di Kubernetes con cui viene eseguito il deployment dell'applicazione. Il comportamento predefinito, se non è specificato un contesto di deployment, viene eseguito nel contesto del sistema corrente, se esistente.

    Se preferisci non eseguire il deployment nel contesto attuale, nella sezione Deployment delle impostazioni Esegui/Debug puoi scegliere di:

    • Esegui il deployment in locale in un cluster minikube: avvia un cluster minikube gestito da Cloud Code per eseguire la tua app e arresta il cluster dopo l'arresto del deployment. Se è già in esecuzione un cluster minikube, Cloud Code utilizza il cluster minikube esistente per il deployment.
    • Cambia contesto ed esegui il deployment: modifica il contesto corrente del tuo sistema impostandolo sul contesto specificato al momento del deployment.

      Selezione del contesto del deployment Kubernetes in una configurazione di Cloud Code Kubernetes

  • Elimina i deployment al termine: elimina i deployment Kubernetes al termine del processo. Questo è il comportamento predefinito. In alternativa, puoi attivare questa impostazione per impedire l'eliminazione dei deployment

Opzioni di archiviazione delle immagini container

Per informazioni dettagliate, consulta la guida all'archiviazione dell'immagine container.

Impostazioni build

Cloud Code supporta i tipi di elementi Docker, Jib e Buildpacks. Consulta la guida alla configurazione delle preferenze per la creazione di immagini container per scoprire come configurare il tuo builder preferito e le relative impostazioni pertinenti.

Richiedere assistenza

Per inviare feedback o segnalare un problema nel tuo IDE IntelliJ, vai a Strumenti > Cloud Code > Guida / Informazioni > Invia un feedback o segnala un problema per segnalare un problema su GitHub o fai una domanda su Stack Overflow.

Puoi anche partecipare al canale #cloud-code, che fa parte della community Google Slack.