Skaffold è uno strumento a riga di comando che facilita lo sviluppo continuo per le applicazioni native di Kubernetes. Skaffold gestisce il flusso di lavoro per la creazione, il push e il deployment dell'applicazione e fornisce i componenti di base per la creazione di pipeline CI/CD. Skaffold è il motore che alimenta Cloud Code.
I progetti Skaffold in genere iniziano utilizzando una singola configurazione skaffold.yaml
per descrivere come creare ed eseguire il deployment dell'applicazione. Man mano che un progetto cresce, può essere utile suddividere la pipeline di applicazione in parti distinte.
Skaffold supporta la definizione di più dipendenze di configurazione, messe insieme nello stesso file skaffold.yaml
e separate utilizzando i separatori di documenti YAML (---
) oppure inserite in file skaffold.yaml
separati a cui viene fatto riferimento da un file skaffold.yaml
di livello superiore. Una configurazione può essere trasformata in un modulo assegnandole un nome utilizzando il campo .metadata.name
.
L'utilizzo dei moduli consente di sviluppare e eseguire il debug di parti dell'applicazione in modo indipendente. È possibile definire dipendenze tra file di configurazione e moduli specifici.
Eseguire il debug delle applicazioni con i moduli Skaffold
Puoi sviluppare e eseguire il debug in modo iterativo dell'intera applicazione o di un insieme di moduli definiti. Skaffold gestisce le dipendenze dei moduli e il relativo ordine di deployment.
Iniziare a utilizzare un esempio di moduli Skaffold
Per selezionare i moduli per la tua applicazione, consulta Sviluppare in modo indipendente parti di un'applicazione.
Se non hai utilizzato i moduli Skaffold e vuoi testare la funzionalità con un esempio, consulta l'esempio di guestbook, che è modularizzato in frontend
e backend
.
Per un esempio di applicazione aziendale di grandi dimensioni, sviluppata utilizzando varie tecnologie e linguaggi e i moduli Skaffold, consulta l'esempio Bank of Anthos.
.Casi d'uso comuni
Questa sezione illustra alcuni esempi di casi d'uso comuni che mostrano diversi scenari su quando e come utilizzare i moduli nell'IDE.
Sviluppo di microservizi
Sei uno sviluppatore frontend che lavora principalmente al modulo frontend
. In qualità di microservizio, frontend
non ha una dipendenza esplicita da codice o librerie
nel repository backend
, ma richiede che backend
venga disegnato e eseguito
nel cluster.
Utilizzi il progetto basato su Skaffold che contiene una definizione del modulo frontend
per eseguire il deployment e il debug da un IDE Cloud Code a un cluster di sviluppo condiviso in cui il team di backend esegue anche il deployment del proprio servizio. Il team DevOps gestisce questo cluster condiviso.
La maggior parte del tempo non lavori con il codice backend
, non esegui il debug o non aggiorni le configurazioni di Kubernetes. Skaffold esegue la compilazione e il deployment di altre configurazioni richieste da frontend
. Configura la configurazione di deployment di Cloud Code in modo da eseguire l'iterazione solo sul modulo frontend
.
Puoi anche eseguire il deployment di frontend
e backend
in un cluster locale per un'esperienza iterativa più rapida.
Sviluppo e debug di microservizi transfrontalieri
Quando è necessario eseguire il debug di più microservizi contemporaneamente, puoi:
- Apri la directory principale in cui si trovano tutte le sottodirectory con il codice sorgente dei moduli rispetto alle altre
- Seleziona il file
skaffold.yaml
principale per il deployment (configs) - Configura la configurazione di deployment di Cloud Code in modo da eseguire l'iterazione solo sui moduli
frontend
ebackend
disponibili localmente (e sul rispettivo modulo di configurazione di Kubernetes se sono presenti modifiche).
Puoi anche avere un file skaffold.yaml
principale separato per lo sviluppo locale che includa un server di dati statico.
Modifica del file YAML del modulo intelligente
Sei un ingegnere DevOps che crea un repository di modelli per il team di sviluppatori di microservizi che utilizza i moduli Skaffold. Vuoi assicurarti che non ci siano errori nelle definizioni dei moduli senza eseguire manualmente Skaffold (ad esempio dipendenze cicliche o nomi di moduli non univoci). Utilizzi gli IDE Cloud Code per modificare i file di configurazione YAML di Skaffold.