Halaman ini menjelaskan cara mengonfigurasi Cloud Deploy untuk merender konfigurasi bagi setiap target dalam pipeline pengiriman.
Cloud Deploy menggunakan Skaffold untuk merender manifes Kubernetes Anda. Layanan ini mendukung rendering manifes mentah dan alat pengelolaan manifes yang lebih canggih, seperti Helm, Kustomize, dan kpt.
Proses rendering memiliki dua tahap:
Alat pengelolaan manifes menghasilkan manifes.
Skaffold menggantikan referensi gambar dalam manifes dengan gambar yang ingin Anda deploy dalam rilis.
Halaman ini menyertakan contoh konfigurasi yang menggunakan Helm dan Kustomize.
Menggunakan Skaffold untuk membuat konfigurasi
Jika belum memiliki file konfigurasi Skaffold (skaffold.yaml
), Anda
dapat menggunakan Skaffold untuk membuatnya secara otomatis, berdasarkan apa yang ada di repositori Anda.
Instal Skaffold menggunakan Google Cloud CLI:
gcloud components install skaffold
Jalankan
skaffold init
di repositori yang berisi manifes Anda:skaffold init --skip-build
Perintah ini akan membuat file skaffold.yaml
di repositori Anda. File tersebut
mereferensikan manifes dalam repositori tersebut. Isinya akan terlihat seperti ini:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: sample-app
manifests:
rawYaml:
- k8s-manifests/deployment.yaml
- k8s-manifests/rbac.yaml
- k8s-manifests/redis.yaml
- k8s-manifests/service.yaml
Merender manifes mentah
Manifes mentah adalah manifes yang tidak dikelola oleh alat seperti Helm atau Kustomize, sehingga tidak memerlukan pemrosesan awal sebelum dihidrasi dan di-deploy ke cluster.
Secara default, Cloud Deploy menggunakan skaffold render
untuk merender manifes Kubernetes Anda, yang menggantikan nama gambar tanpa tag dengan nama gambar yang diberi tag dari image container yang Anda deploy. Kemudian, saat Anda mempromosikan rilis tersebut, Cloud Deploy menggunakan skaffold apply
untuk menerapkan manifes dan men-deploy image ke cluster Google Kubernetes Engine Anda.
Stanza manifests
dari konfigurasi dasar terlihat seperti ini:
manifests:
rawYaml:
- PATH_TO_MANIFEST
Lihat dokumentasi Skaffold untuk mengetahui informasi selengkapnya tentang nilai yang dapat diteruskan di sini.
Merender menggunakan Helm
Anda dapat menggunakan Cloud Deploy untuk merender diagram Helm. Untuk melakukannya, sertakan detail diagram Helm dalam stanza deploy
dalam
profil Skaffold.
Setiap definisi tersebut akan terlihat seperti ini:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
helm:
releases:
- name: RELEASE_NAME
chartPath: PATH_TO_HELM_CHART
Dengan keterangan:
RELEASE_NAME adalah nama instance chart Helm untuk rilis ini.
PATH_TO_HELM_CHART adalah jalur lokal ke diagram Helm yang dipaketkan atau direktori diagram Helm yang belum dibuka.
Anda dapat menggunakan opsi konfigurasi Helm tambahan, seperti yang dijelaskan dalam dokumentasi Skaffold
Melakukan rendering menggunakan Kustomize
Anda dapat menggunakan Kustomize dengan Cloud Deploy. Untuk
melakukannya, arahkan kursor ke file Kustomisasi dari dalam stanza deploy
di
konfigurasi profil skaffold.yaml
.
Anda menyertakan konfigurasi Kustomize terpisah untuk setiap target yang
Anda gunakan Kustomize, di bawah setiap profile
yang sesuai dalam skaffold.yaml
.
Setiap definisi tersebut akan terlihat seperti ini:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
kustomize:
paths:
- PATH_TO_KUSTOMIZE
Dengan keterangan:
PATH_TO_KUSTOMIZE mengarah ke file Kustomisasi Anda. Defaultnya adalah
["."]
Anda dapat menggunakan opsi konfigurasi Kustomize tambahan, seperti yang dijelaskan dalam dokumentasi Skaffold
Mengonfigurasi manifes berbeda per target
Sering kali setiap target memerlukan konfigurasi yang sedikit berbeda. Misalnya, Anda mungkin memiliki lebih banyak replika di deployment produksi daripada di deployment staging.
Anda dapat merender kumpulan manifes yang berbeda untuk setiap target dengan memberikan setiap variasi sebagai profil Skaffold yang berbeda.
Profil dengan Manifes mentah
Saat menangani manifes mentah, Anda dapat mengarahkan Cloud Deploy ke file yang berbeda, tergantung targetnya. Anda dapat mengonfigurasinya sebagai berikut:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
rawYaml:
- prod.yaml
- name: staging
manifests:
rawYaml:
- staging.yaml
Profil dengan Kustomize
Berikut ini contoh skaffold.yaml
yang memiliki profil berbeda untuk staging dan produksi menggunakan Kustomize, dengan setiap profil mengarah ke Kustomization yang berbeda:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
kustomize:
paths:
- environments/prod
- name: staging
manifests:
kustomize:
paths:
- environments/staging
Profil yang dirujuk dalam pipeline pengiriman
Profil ini, yang ditentukan dalam skaffold.yaml
, direferensikan dalam konfigurasi
pipeline penayangan, per target:
serialPipeline:
stages:
- targetId: staging-target
profiles:
- staging
- targetId: prod-target
profiles:
- prod
Langkah selanjutnya
- Pelajari lebih lanjut konfigurasi pipeline pengiriman Cloud Deploy.
- Coba Panduan profil Skaffold Cloud Deploy
- Pelajari lebih lanjut Kustomize.
- Pelajari Helm lebih lanjut.
- Pelajari Kpt lebih lanjut
- Pertimbangkan untuk menggunakan Artifact Registry untuk menyimpan artefak, seperti diagram Helm atau Kustomization.