Menggunakan Skaffold dengan Cloud Deploy

Artikel ini menjelaskan Skaffold, cara dan alasan Cloud Deploy menggunakannya, serta hal yang perlu Anda lakukan agar dapat menggunakannya dengan baik.

Cloud Deploy menggunakan Skaffold untuk operasi render dan deployment. Anda juga dapat menggunakannya untuk pengembangan lokal, build, pengujian, dan untuk fitur deployment lanjutan. Namun, Cloud Deploy hanya memerlukan konfigurasi Skaffold yang mengidentifikasi manifes untuk dirender dan diterapkan.

Apa itu Skaffold?

Skaffold adalah alat command line yang memungkinkan pengembangan berkelanjutan untuk aplikasi native Kubernetes. Anda dapat menggunakan Skaffold untuk mengonfigurasi ruang kerja pengembangan lokal yang akan digunakan dengan pipeline continuous delivery Cloud Deploy.

Skaffold mencakup fitur berikut:

  • Hal ini memberi Anda kontrol terpisah atas aktivitas pipeline CI/CD (build, render, deployment pengujian, dan sebagainya).

  • Alat ini berguna sebagai alat pengembangan lokal.

  • Profil Skaffold memungkinkan Anda membedakan berbagai lingkungan, dengan konfigurasi build, pengujian, dan deployment yang berbeda, semuanya dalam file konfigurasi yang sama.

Mengapa Cloud Deploy menggunakan Skaffold?

Google Cloud Deploy menggunakan Skaffold untuk memisahkan alat rendering dari pipeline pengiriman. Pipeline pengiriman Anda hanya menentukan progres dari target ke target, sedangkan konfigurasi Skaffold menentukan manifes mana yang dirender dan caranya. Hal ini membuat rendering manifes menjadi fleksibel tanpa memengaruhi cara Anda menentukan pipeline pengiriman.

Berikut adalah beberapa keuntungan yang diberikan Skaffold saat Anda menggunakannya dengan Cloud Deploy:

  • Orientasi yang mudah

    Mulai dengan loop pengembangan lokal. Anda dapat membagikan file skaffold.yaml kepada tim, yang dapat memungkinkan konsistensi dan membantu anggota tim baru memulai.

  • Kontrol yang konsisten atas rendering di berbagai target deployment

    Anda dapat menggunakan profil Skaffold, dengan rendering dan deployment yang berbeda untuk target yang berbeda.

  • Pilihan alat rendering tanpa mengorbankan cara pipeline pengiriman ditentukan

    Penggunaan Skaffold memungkinkan Cloud Deploy memisahkan definisi pipeline pengiriman dari detail render. Pemisahan ini memungkinkan Anda bereksperimen dengan manifes tanpa mengganggu pipeline pengiriman.

  • Proses rendering yang koheren

    Sumber rendering beserta penampung Anda digunakan untuk membuat manifes yang dirender.

  • Health check deployment

    Skaffold menjalankannya, dan Cloud Deploy menggunakannya.

Bagaimana cara Cloud Deploy menggunakan Skaffold?

  • Sumber rendering dan referensi ke image container diteruskan ke Cloud Deploy saat Anda membuat rilis.

    Sebagai bagian dari pembuatan rilis, Cloud Deploy memanggil Cloud Build, yang pada gilirannya memanggil skaffold diagnose dan skaffold render untuk merender manifes menggunakan sumber rendering dan image tersebut.

  • Anda dapat menggunakan profil Skaffold untuk membedakan manifes yang akan diterapkan ke target yang berbeda.

  • Cloud Deploy mendukung modul Skaffold statis.

  • Saat men-deploy, Cloud Deploy memanggil skaffold apply untuk menerapkan manifes atau manifes yang dirender ke cluster target.

  • Cloud Deploy tidak mendukung penggunaan deployer lain untuk men-deploy aplikasi Anda, kecuali jika Anda menggunakan target kustom. Namun, Anda dapat menggunakan alat seperti Helm atau Kustomize sebagai perender. Untuk mempelajari lebih lanjut cara deployment Cloud Deploy tanpa menggunakan deployer tertentu (seperti Helm), lihat Arsitektur layanan.

Membuat Skaffold bekerja untuk Anda

  1. Konfigurasikan Skaffold sesuai kebutuhan pipeline Anda.

    1. Tentukan kebutuhan pipeline pengiriman Anda.

      Berapa banyak target yang akan Anda miliki? Apakah rendering dan deployment sama untuk setiap model. Jika konfigurasi sama untuk setiap target dalam progres, Anda tidak perlu menggunakan profil Skaffold. Anda hanya memerlukan file skaffold.yaml yang menjelaskan manifes yang akan dirender.

    2. Jika berlaku, buat profil Skaffold untuk setiap target

      Tentukan hal ini dalam file skaffold.yaml dan ikat dalam urutan progres definisi pipeline pengiriman Anda.

      Lihat dokumentasi Skaffold untuk informasi selengkapnya tentang profil Skaffold. Selain itu, dokumen Mengelola manifes di Cloud Deploy menyertakan contoh konfigurasi profil.

    3. Menetapkan tingkat kedetailan logging Skaffold

      Secara default, level logging Skaffold ditetapkan ke warn. Anda dapat mengubahnya menjadi debug dalam konfigurasi untuk lingkungan eksekusi target dengan menetapkan verbose: true.

  2. Hubungkan Cloud Deploy ke sistem continuous integration Anda.

    Di akhir proses CI, teruskan skaffold.yaml, sumber rendering, dan image container yang akan diisi ke dalam manifes yang dirender.

  3. Opsional: siapkan loop pengembangan lokal Anda, menggunakan Skaffold.

    Menggunakan Skaffold untuk pengembangan bersifat opsional di Cloud Deploy. Satu-satunya hal yang diperlukan agar Cloud Deploy dapat beroperasi adalah file skaffold.yaml yang mengidentifikasi manifes untuk dirender.

Langkah selanjutnya

  • Buka situs Skaffold untuk mengetahui cara kerjanya dan manfaatnya bagi Anda.

  • Pelajari cara Cloud Deploy memilih versi Skaffold yang akan digunakan, kapan versi Skaffold berubah, dan cara menentukan versi yang saat ini digunakan.

  • Pelajari cara menggunakan profil Skaffold bersama dengan alat pengelolaan manifes lanjutan seperti Helm, Kustomize, dan kpt.

  • Coba panduan profil Skaffold.