Utilizzare Skaffold con Cloud Deploy

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

Cloud Deploy utilizza Skaffold per le operazioni di rendering e deployment. Puoi utilizzarlo anche per lo sviluppo locale, la creazione e il test, nonché per funzionalità avanzate di deployment. Tuttavia, Cloud Deploy richiede solo una configurazione Skaffold che identifichi i manifest da visualizzare e applicare.

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à:

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

  • È utile come strumento di sviluppo locale.

  • I profili Skaffold consentono di differenziare tra diversi ambienti, con diverse configurazioni di build, test e deployment, 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 alla destinazione, mentre la configurazione di Skaffold definisce quali manifest vengono sottoposti a rendering e come. Ciò rende il rendering del manifest flessibile 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 file skaffold.yaml con il tuo team, in modo da garantire la coerenza per i nuovi membri.

  • Controllo coerente sul rendering in diversi obiettivi di deployment

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

  • Scelta di 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 di rendering. Questa separazione consente di sperimentare i manifest senza interrompere la pipeline di distribuzione.

  • Processo di rendering coerente

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

  • Controlli di integrità del deployment

    Skaffold le esegue e Cloud Deploy le utilizza.

In che modo Cloud Deploy utilizza Skaffold?

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

    Durante la creazione della release, Cloud Deploy chiama Cloud Build, che, a sua volta, richiama skaffold diagnose e skaffold render per eseguire il rendering del manifest o dei manifest utilizzando l'origine di rendering e le relative immagini.

  • Puoi utilizzare i profili Skaffold per distinguere 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 sottoposti a rendering al cluster di destinazione.

  • Cloud Deploy non supporta l'utilizzo di altri deployment per eseguire il deployment della tua applicazione, a meno che non utilizzi target personalizzate. Tuttavia, puoi utilizzare strumenti come Helm o Kustomize come renderer. Per scoprire di più su come Cloud Deploy esegue il deployment senza utilizzare deployment specifici (come Helm), consulta Architettura del servizio.

Metti Skaffold al tuo servizio

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

    1. Determina le esigenze della tua pipeline di distribuzione.

      Quanti target avrai? Rendering e deployment sono lo stesso per ciascuno. Se la configurazione è la stessa per tutti i target nel tuo 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 nella 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.

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

    Alla fine del processo CI, passa skaffold.yaml, l'origine di rendering e le immagini container da completare al manifest visualizzato.

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

    L'utilizzo di Skaffold per lo sviluppo è facoltativo in Cloud Deploy. L'unica cosa necessaria per il funzionamento di Cloud Deploy è un file skaffold.yaml che identifica i manifest da visualizzare.

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 quale 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.