Inizia a utilizzare Cloud Code for VS Code per Kubernetes

Cloud Code consente di creare un'applicazione Kubernetes sulla base di un esempio o di un progetto esistente.

Crea un'applicazione da un modello

Cloud Code include una raccolta di modelli di esempio di codice per aiutarti a iniziare rapidamente. Per creare un'applicazione Kubernetes utilizzando un esempio esistente, segui questi passaggi:

  1. Avvia la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P o fai clic su Visualizza > Tavolozza comandi), quindi esegui Cloud Code: New Application.
  2. Seleziona Applicazione Kubernetes come tipo di esempio.
  3. Seleziona un esempio in base al linguaggio che vuoi utilizzare tra le opzioni disponibili: NodeJS, Go, Python, Java.
  4. Scegli il percorso dell'applicazione preferito sulla tua macchina locale, quindi fai clic su Crea nuova applicazione per salvare.

    Cloud Code clona l'esempio che hai scelto e apre il nuovo progetto per l'utilizzo.

Esempio di struttura dell'applicazione

Tutte le applicazioni di esempio del linguaggio hanno quasi la stessa struttura. Questa non è l'unica struttura supportata, ma è consigliata all'inizio.

Ad esempio, la struttura dell'applicazione Guestbook Node.js ha il seguente aspetto:

.
|---- .vscode
|      └---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     └---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     └---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           └---- package.json
└---- skaffold.yaml

Osservando più da vicino questa app Node.js del guestbook Kubernetes, ecco alcuni file chiave e i loro utilizzi:

  • .vscode
    • extensions.json: richiesta di download delle estensioni correlate all'apertura di questo progetto
    • launch.json: avvia la configurazione (di tipo cloudcode.kubernetes) per eseguire l'applicazione Kubernetes o eseguirne il debug
    • tasks.json: informazioni di configurazione per le attività di codice di Visual Studio
  • Kubernetes-manifests
    • guestbook-backend.deployment.yaml: specifica dei pod per i nodi di backend
    • guestbook-frontend.deployment.yaml: specifica dei pod per i nodi di frontend
    • mongo.deployment.yaml: specifica del pod per il database
  • src
    • (backend|frontend)/app.js: codice Node.js con la logica del server web
    • (backend|frontend)/Dockerfile: utilizzato per creare l'immagine container per il nostro programma
  • skaffold.yaml: file di configurazione per Skaffold, utilizzato da Cloud Code per creare le applicazioni Kubernetes ed eseguirne il deployment e il debug

Usa la tua applicazione

Per la procedura per utilizzare un progetto esistente, vedi Utilizzare Cloud Code con un'applicazione Kubernetes esistente.

Imposta il tuo contesto Kubernetes

Prima di eseguire l'applicazione, assicurati di aver eseguito la configurazione per eseguire il deployment dell'app nel tuo contesto Kubernetes preferito. Puoi specificare questa opzione nella tua configurazione.

Configurazione

Quando utilizzi la configurazione dell'esecuzione Cloud Code: Develop on Kubernetes, puoi personalizzare il deployment configurando le impostazioni disponibili.

Per aggiungere o modificare le configurazioni, vai ad Esegui > Apri configurazioni e poi modifica o aggiungi configurazioni.

Impostazioni build

Cloud Code supporta i tipi di artefatti Docker, Jib e Buildpacks. Consulta la guida alle preferenze per la creazione di immagini container per scoprire come impostare il tuo builder preferito e le relative impostazioni pertinenti.

Personalizza la configurazione del lancio

Per configurare l'esecuzione dell'applicazione, puoi personalizzare il tuo file skaffold.yaml.

Puoi anche configurare il lancio modificando la configurazione cloudcode.kubernetes nel file .vscode/launch.json.

Per ulteriori informazioni sulla personalizzazione della configurazione di lancio, consulta Kubernetes in Cloud Code.

Esegui l'applicazione

Dopo aver configurato un'applicazione, puoi eseguirla su un cluster Kubernetes e visualizzarla in tempo reale utilizzando skaffold dev. Puoi eseguire la tua applicazione su un cluster locale (come minikube o Docker Desktop), Google Kubernetes Engine o qualsiasi altro cloud provider.

  1. Apri la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P), quindi esegui il comando Cloud Code: Run on Kubernetes.
  2. Conferma se utilizzare il contesto Kubernetes attuale in cui eseguire l'app (o passa a uno che preferisci). Per ulteriori informazioni sulla configurazione di un contesto Kubernetes, consulta Configurazione della configurazione.
  3. Se hai scelto un cluster remoto come contesto, quando richiesto, scegli un registro di immagini a cui eseguire il push delle immagini. Se utilizzi Container Registry, puoi passare a un registro esistente o specificare il nome di un registro da creare. Se nel progetto è stata abilitata l'API Artifact Registry e almeno un repository Artifact Registry, puoi sfogliare e selezionare un repository Artifact Registry esistente.

    I seguenti esempi mostrano come specificare dove vengono archiviate le immagini container per alcuni registri comuni:

    Artifact Registry {region}-docker.pkg.dev/{project_id}/{repo-name}
    Container Registry gcr.io/{project_id}
    Docker Hub docker.io/{account}
    Assicurati di eseguire l'autenticazione corretta se utilizzi un repository Docker Hub privato.
    Repository container di AWS (ECR) {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{my-app}
    Registro Azure Container (ACR) {my_acr_name}.azurecr.io/{my-app}

    Cloud Code concatena questo registro di immagini con il nome dell'immagine specificato nei manifest di Kubernetes per generare il nome del repository di immagini finale.

    Per ulteriori informazioni, consulta la guida alla gestione del registro di immagini.

    Questa scelta è memorizzata nella configurazione di avvio di cloudcode.kubernetes (disponibile in .vscode/launch.json).

    Cloud Code crea i tuoi container, ne esegue il push al registro, applica le configurazioni di Kubernetes al cluster e attende il lancio.

Visualizza i log

Oltre a visualizzare i log dei pod in esecuzione come live streaming nell'output del terminale mentre sviluppi ed esegui la tua applicazione, puoi visualizzare i log di un pod specifico accedendo alla sezione Kubernetes.

Per visualizzare i log di un pod specifico:

  1. Nella sezione Kubernetes, espandi Deployment
  2. Fai clic con il pulsante destro del mouse sul pod da cui vuoi visualizzare i log, quindi fai clic su Visualizza log.

    Si apre il visualizzatore dei log.

Apporta modifiche, ricrea e pulisci

Se hai impostato la modalità di visualizzazione su false nella configurazione di avvio e vuoi apportare modifiche all'applicazione, quindi ricreare l'applicazione ed eseguirne nuovamente il deployment:

  1. Apporta e salva le modifiche.

  2. Nella barra degli strumenti di debug, fai clic su Metti in pausa (F6) e poi su Riavvia (Ctrl/Cmd + Shift + F5) per ricreare ed eseguire nuovamente il deployment dell'applicazione.

  3. Per interrompere l'esecuzione dell'applicazione, fai clic su Interrompi nella barra degli strumenti di debug.

Dopo aver arrestato l'applicazione, tutte le risorse Kubernetes di cui è stato eseguito il deployment vengono eliminate dal cluster. Puoi modificare questo comportamento utilizzando il flag cleanUp nella configurazione del lancio.

Archivia 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 informazioni dettagliate su come creare e gestire i secret con Cloud Code, consulta la guida di Secret Manager.

Visualizza dettagli risorsa

La sezione Kubernetes mostra cluster, spazi dei nomi, nodi, carichi di lavoro (ad esempio deployment, set di repliche, pod e container), servizi e Ingress, configurazioni (come secret e mappe di configurazione) e spazio di archiviazione (ad esempio i volumi). Utilizzando la sezione Kubernetes, puoi eseguire azioni univoche su alcune di queste risorse.

Vedi la panoramica di Kubernetes per ulteriori informazioni sulla visualizzazione dei dettagli delle risorse.

Passaggi successivi

Richiedi assistenza

Per inviare feedback, segnala problemi su GitHub o fai una domanda su Stack Overflow.