Menggunakan Skaffold dengan Cloud Deploy

Artikel ini menjelaskan Skaffold, cara dan alasan Cloud Deploy menggunakannya, serta tindakan yang perlu Anda lakukan untuk membuatnya berfungsi.

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

Apa itu Skaffold?

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

Skaffold mencakup fitur berikut:

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

  • Alat ini berguna sebagai alat pengembangan lokal.

  • Profil Skaffold memungkinkan Anda membedakan lingkungan yang berbeda, dengan konfigurasi build, pengujian, dan deploy 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 akan menentukan manifes yang dirender dan bagaimana caranya. Hal ini membuat rendering manifes 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 dengan tim, yang dapat memungkinkan konsistensi untuk membantu anggota tim baru.

  • Kontrol yang konsisten terhadap 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 dan container 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 kemudian memanggil skaffold diagnose dan skaffold render untuk merender manifes atau manifes menggunakan sumber rendering tersebut dan image tersebut.

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

  • Cloud Deploy mendukung modul Skaffold statis.

  • Saat melakukan deployment, 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 Cloud Deploy men-deploy tanpa menggunakan deployer tertentu (seperti Helm), lihat Arsitektur layanan.

Manfaatkan Skaffold

  1. Konfigurasikan Skaffold sesuai dengan kebutuhan pipeline Anda.

    1. Tentukan kebutuhan pipeline pengiriman Anda.

      Berapa banyak target yang akan Anda miliki? Melakukan rendering dan deployment yang sama untuk masing-masing. Jika konfigurasinya 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 memungkinkan, buat profil Skaffold untuk setiap target

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

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

  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 manifes yang dirender.

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

    Penggunaan 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 yang akan dirender.

Langkah selanjutnya

  • Kunjungi situs Skaffold untuk mengetahui cara kerjanya dan apa yang dapat dilakukannya untuk 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.