Utilizzare Skaffold con Cloud Deploy

Questo articolo descrive Skaffold, come e perché Cloud Deploy lo utilizza e cosa devi fare perché funzioni per te.

Cloud Deploy utilizza Skaffold per le operazioni di rendering e deployment. Puoi utilizzarlo anche per sviluppo locale, build, test e funzionalità di deployment avanzate. Tuttavia, Cloud Deploy richiede solo una configurazione Skaffold che identifichi i manifest di cui eseguire il rendering e applicare.

Che cos'è Skaffold?

Skaffold è uno strumento a riga di comando che consente lo sviluppo continuo per le applicazioni native di Kubernetes. Puoi utilizzare Skaffold per configurare un'area di lavoro di sviluppo locale da utilizzare con le pipeline di distribuzione continua di Cloud Deploy.

Skaffold include le seguenti funzionalità:

  • Offre un controllo discreto delle attività della pipeline CI/CD (creazione, rendering, deployment di test e così via).

  • È utile come strumento di sviluppo locale.

  • I profili Skaffold consentono di differenziare i diversi ambienti con configurazioni di build, test e deployment diverse, il tutto nello stesso file di configurazione.

Perché Cloud Deploy utilizza Skaffold?

Google Cloud Deploy utilizza Skaffold per separare gli strumenti di rendering dalla pipeline di distribuzione. La pipeline di distribuzione definisce semplicemente l'avanzamento dal target al target, mentre la configurazione di Skaffold definisce quali manifest vengono visualizzati e in che modo. Ciò rende flessibile il rendering del manifest senza influire sulla definizione della pipeline di distribuzione.

Ecco alcuni dei vantaggi offerti da Skaffold quando lo utilizzi con Cloud Deploy:

  • Onboarding facile

    Inizia con un loop di sviluppo locale. Puoi condividere il tuo file skaffold.yaml con il tuo team, in modo da garantire la coerenza e aiutare i nuovi membri del team.

  • Controllo coerente sul rendering su diversi target di deployment

    Puoi utilizzare i profili Skaffold, con rendering e deployment diversi per destinazioni diverse.

  • Scelta degli strumenti di rendering senza compromettere il modo in cui vengono definite le pipeline di distribuzione

    L'uso di Skaffold consente a Cloud Deploy di separare la definizione della pipeline di distribuzione dai dettagli del rendering. Questa separazione ti consente di sperimentare i tuoi manifest senza interrompere la pipeline di distribuzione.

  • Processo di rendering coerente

    L'origine del rendering e i container vengono utilizzati per generare i manifest sottoposti a rendering.

  • Controlli di integrità del deployment

    Skaffold le esegue e Cloud Deploy le usa.

In che modo Cloud Deploy utilizza Skaffold?

  • L'origine di rendering e i riferimenti alle immagini container vengono trasmessi a Cloud Deploy quando crei una release.

    Nell'ambito della creazione della release, Cloud Deploy chiama Cloud Build, che a sua volta richiama skaffold diagnose e skaffold render per eseguire il rendering del manifest utilizzando l'origine di rendering e queste immagini.

  • Puoi utilizzare i profili Skaffold per differenziare i manifest che verranno applicati a target diversi.

  • Cloud Deploy supporta moduli Skaffold statici.

  • Durante il deployment, Cloud Deploy chiama skaffold apply per applicare il manifest o i manifest visualizzati al cluster di destinazione.

  • Cloud Deploy non supporta l'utilizzo di altri deployment per eseguire il deployment dell'applicazione, a meno che non utilizzi destinazioni personalizzate. Tuttavia, puoi utilizzare strumenti come Helm o Kustomize come renderer. Per saperne di più sul modo in cui Cloud Deploy esegue il deployment senza l'utilizzo di deployment specifici (come Helm), consulta Architettura del servizio.

Lascia che Skaffold lavori per te

  1. Configura Skaffold in base alle esigenze della tua pipeline.

    1. Determina le esigenze della tua pipeline di distribuzione.

      Quanti target avrai? Il rendering e il deployment siano uguali per ognuno. Se la configurazione è la stessa per ogni destinazione in avanzamento, non dovrai utilizzare i profili Skaffold. È sufficiente un file skaffold.yaml che descriva i manifest di cui eseguire il rendering.

    2. Se applicabile, crea un profilo Skaffold per ogni target

      Definisci questo valore nel file skaffold.yaml e associalo alla sequenza di avanzamento della definizione della pipeline di distribuzione.

      Per ulteriori informazioni sui profili Skaffold, consulta la documentazione di Skaffold. Inoltre, il documento Gestione dei manifest in Cloud Deploy include configurazioni di profili di esempio.

    3. Imposta il livello di dettaglio del logging di Skaffold

      Per impostazione predefinita, il livello di logging Skaffold è impostato su warn. Puoi modificarlo in debug nella configurazione dell'ambiente di esecuzione di un target impostando verbose: true.

  2. Connetti Cloud Deploy al tuo sistema di integrazione continua.

    Al termine del processo di CI, trasmetti il skaffold.yaml, l'origine di rendering e le immagini container da compilare nel manifest sottoposto a rendering.

  3. (Facoltativo) Configura il loop di sviluppo locale utilizzando Skaffold.

    L'utilizzo di Skaffold per lo sviluppo è facoltativo in Cloud Deploy. L'unica cosa necessaria per far funzionare Cloud Deploy è un file skaffold.yaml che identifica i manifest di cui eseguire il rendering.

Passaggi successivi

  • Visita il sito di Skaffold per scoprire come funziona e cosa può fare per te.

  • Scopri come Cloud Deploy seleziona la versione di Skaffold da utilizzare, quando cambia la versione di Skaffold e come determinare la versione attualmente in uso.

  • Scopri come utilizzare i profili Skaffold insieme a strumenti avanzati di gestione dei manifest come Helm, Kustomize e kpt.

  • Prova la procedura dettagliata per i profili Skaffold.