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
danskaffold 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
Konfigurasikan Skaffold sesuai kebutuhan pipeline Anda.
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.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.
Menetapkan tingkat kedetailan logging Skaffold
Secara default, level logging Skaffold ditetapkan ke
warn
. Anda dapat mengubahnya menjadidebug
dalam konfigurasi untuk lingkungan eksekusi target dengan menetapkanverbose: true
.
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.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.