Skaffold è uno strumento a riga di comando che facilita lo sviluppo continuo per le applicazioni native di Kubernetes. Skaffold gestisce il workflow per la creazione, il push e il deployment dell'applicazione e fornisce blocchi predefiniti per la creazione di pipeline CI/CD. Skaffold è il motore che alimenta Cloud Code.
I progetti Skaffold di solito iniziano a utilizzare una singola skaffold.yaml
configurazione per descrivere come creare ed eseguire il deployment dell'applicazione. Man mano che un
progetto cresce, può essere utile suddividere la pipeline dell'applicazione in
parti separate.
Skaffold supporta la definizione di più
dipendenze di configurazione,
inserite insieme nello stesso file skaffold.yaml e separate utilizzando i separatori di documenti YAML (---) o 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 assegnandogli un nome utilizzando il
.metadata.name campo.
L'utilizzo dei moduli consente di sviluppare ed eseguire il debug di parti dell'applicazione in modo indipendente. Le dipendenze possono essere definite tra i file di configurazione e per moduli specifici.
Eseguire il debug delle applicazioni con i moduli Skaffold
Puoi sviluppare ed 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 l'applicazione, consulta Sviluppo indipendente di 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 utilizzando i moduli Skaffold, consulta l'esempio di Bank of Anthos.
Casi d'uso comuni
Questa sezione descrive alcuni esempi di casi d'uso comuni che illustrano diversi scenari di quando e come puoi utilizzare i moduli nel tuo IDE.
Sviluppo di microservizi
Sei uno sviluppatore frontend che lavora principalmente sul modulo frontend. Come microservizio, frontend non ha una dipendenza esplicita di codice o libreria dal repository backend, ma richiede che backend sia di cui sia stato eseguito il deployment e sia in esecuzione 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 delle volte non lavori con il codice backend, non esegui il debug del codice o non aggiorni le configurazioni di Kubernetes. Skaffold crea ed esegue 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 tra limiti
Quando è necessario eseguire il debug di più microservizi contemporaneamente, puoi:
- Aprire la directory principale in cui si trovano tutte le sottodirectory con il codice sorgente dei moduli l'una rispetto all'altra
- Selezionare il file
skaffold.yamlprincipale per il deployment (configurazioni) - Configurare la configurazione di deployment di Cloud Code in modo da eseguire l'iterazione solo sui moduli
frontendebackenddisponibili localmente (e sul rispettivo modulo di configurazione di Kubernetes in caso di modifiche).
Potresti anche avere un file skaffold.yaml principale separato per lo sviluppo locale che include un server di dati statici.
Modifica intelligente di YAML dei moduli
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 Skaffold manualmente (ad esempio dipendenze cicliche o nomi di moduli non univoci). Utilizzi gli IDE Cloud Code per modificare i file di configurazione YAML di Skaffold.