Menggunakan Skaffold dengan Cloud Deploy

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

Cloud Deploy menggunakan Skaffold untuk operasi render dan deployment. Anda juga dapat menggunakannya untuk pengembangan, build, pengujian lokal, 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 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, test deployment, dan sebagainya).

  • Hal 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, sementara konfigurasi Skaffold Anda menentukan manifes mana yang dirender dan bagaimana. Hal ini membuat rendering manifes menjadi fleksibel tanpa memengaruhi cara Anda menentukan pipeline penayangan.

Berikut 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 Anda, 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 memengaruhi cara pipeline pengiriman ditentukan

    Dengan Skaffold, Cloud Deploy dapat memisahkan definisi pipeline pengiriman dari detail rendering. Dengan pemisahan ini, Anda dapat 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 akan menjalankannya, dan Cloud Deploy akan 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 Cloud Deploy men-deploy tanpa menggunakan deployer tertentu (seperti Helm), lihat Arsitektur layanan.

Memanfaatkan Skaffold

  1. Konfigurasi Skaffold sesuai dengan kebutuhan pipeline Anda.

    1. Tentukan kebutuhan pipeline pengiriman Anda.

      Berapa banyak target yang akan Anda miliki? Apakah rendering dan deployment sama untuk setiap versi. Jika konfigurasi sama untuk setiap target dalam progres Anda, 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 ini dalam file skaffold.yaml dan ikat dalam urutan progres definisi alur pengiriman Anda.

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

    3. Menetapkan tingkat kejelasan logging Skaffold

      Secara default, tingkat logging Skaffold disetel ke warn. Anda dapat mengubahnya menjadi debug dalam konfigurasi untuk lingkungan eksekusi target dengan menyetel 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.

    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 berikutnya

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

  • Pelajari cara Cloud Deploy memilih versi alat yang akan digunakan dan cara menentukan versi yang sedang digunakan.

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

  • Coba panduan profil Skaffold.