Dokumen ini menjelaskan cara men-deploy aplikasi, termasuk layanan Cloud Run dan tugas Cloud Run.
Cloud Deploy memungkinkan Anda men-deploy workload berbasis container ke layanan Cloud Run atau tugas. Semua fitur Cloud Deploy didukung saat Anda men-deploy ke target Cloud Run untuk layanan Cloud Run, tetapi deployment canary tidak didukung untuk tugas Cloud Run.
Dokumen ini menjelaskan tiga konfigurasi utama yang perlu Anda selesaikan untuk men-deploy ke Cloud Run:
- Membuat konfigurasi target
- Membuat konfigurasi Skaffold
- Buat definisi layanan atau definisi tugas Cloud Run Anda
Batasan
Anda hanya dapat men-deploy satu layanan atau tugas Cloud Run per target.
Anda tidak dapat menjalankan deployment canary terhadap tugas Cloud Run.
Namun, layanan Cloud Run dapat menggunakan deployment canary.
Sebelum memulai
Pastikan Anda menggunakan gcloud CLI versi
401.0.0
atau yang lebih baru.
Membuat konfigurasi target
Target dapat dikonfigurasi di YAML pipeline pengiriman, atau dapat berada dalam file terpisah. Selain itu, Anda dapat mengonfigurasi lebih dari satu target dalam file yang sama.
Target harus ditentukan dalam project dan region yang sama dengan pipeline pengiriman. Namun, layanan atau tugas yang di-deploy target dapat berada di project dan wilayah yang berbeda, selama akun layanan memiliki akses ke project tersebut.
Dalam definisi target, buat stanza run
untuk mengidentifikasi lokasi tempat
layanan Cloud Run akan dibuat.
Sintaksis untuk menentukan layanan atau tugas Cloud Run dalam definisi target Anda adalah sebagai berikut:
run:
location: projects/[project_name]/locations/[region_name]
ID resource ini menggunakan elemen berikut:
[
project_name
] adalah nama project Google Cloud tempat layanan atau tugas Cloud Run Anda akan dibuat.Anda akan melakukannya untuk setiap target. Sebaiknya gunakan project yang berbeda untuk setiap layanan atau tugas Cloud Run. Jika menginginkan lebih dari satu layanan atau tugas dalam project yang sama, Anda harus menggunakan profil Skaffold dalam file konfigurasi
skaffold.yaml
.[
region_name
] adalah region tempat layanan atau tugas akan dibuat. Layanan atau tugas Anda dapat berada di region mana pun yang didukung Cloud Run.
Berikut adalah contoh konfigurasi target, yang menentukan layanan atau tugas Cloud Run yang akan dibuat:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development service
run:
location: projects/my-app/locations/us-central1
Anda dapat menentukan target ini di dalam definisi pipeline pengiriman Cloud Deploy, atau secara terpisah. Apa pun yang Anda pilih, Anda harus mendaftarkan target sebelum membuat rilis untuk men-deploy layanan atau tugas Cloud Run.
Membuat konfigurasi Skaffold
Berikut adalah contoh file skaffold.yaml
untuk deployment Cloud Run:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: cloud-run-application
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
Dalam file skaffold.yaml
ini...
manifests.rawYaml
memberikan nama definisi layanan Cloud Run.Dalam contoh ini,
service.yaml
adalah file yang menentukan layanan Cloud Run yang akan di-deploy oleh Skaffold. Nama file ini dapat berupa apa saja, tetapi menurut konvensi, nama file ini adalahservice.yaml
untuk layanan, danjob.yaml
untuk tugas.Stanza
deploy
menentukan cara Anda ingin manifes di-deploy, terutama, project dan lokasi.deploy
wajib diisi.Sebaiknya biarkan
{}
kosong. Cloud Deploy mengisinya selama rendering, berdasarkan project dan lokasi dari definisi target.Namun, untuk pengembangan lokal, Anda dapat memberikan nilai di sini. Namun, Cloud Deploy selalu menggunakan project dan lokasi dari definisi target, terlepas dari apakah nilai diberikan di sini.
Membuat definisi layanan Cloud Run
Untuk membuat definisi layanan Cloud Run, Anda dapat membuatnya secara manual, atau menyalinnya dari layanan yang ada. Keduanya dijelaskan di bagian ini.
Opsi 1: membuat service.yaml
Cloud Run baru
service.yaml menentukan layanan Cloud Run Anda. Saat Anda membuat rilis, Skaffold akan menggunakan definisi ini untuk men-deploy layanan Anda.
Berikut adalah contoh sederhana:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: [SERVICE_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Dengan keterangan:
[SERVICE_NAME]
adalah nama untuk layanan Cloud Run ini.[IMAGE_PATH]
mengarah ke image container yang Anda deploy dengan layanan ini.
Opsi 2: menyalin service.yaml
dari layanan yang ada menggunakan konsol Google Cloud
Anda dapat membuat layanan menggunakan konsol Google Cloud atau menggunakan layanan yang ada,
dan menyalin service.yaml
dari sana.
Untuk mendapatkan service.yaml
menggunakan Google Cloud CLI:
gcloud run services describe [service_name] --format=export
Untuk mendapatkan service.yaml
dari konsol Google Cloud:
Di konsol Google Cloud, buka halaman Layanan Cloud Run.
Pilih layanan yang ada yang definisinya ingin Anda gunakan.
Atau, Anda dapat membuat yang baru, lalu memilihnya. Saat Anda memilih layanan, halaman Detail Layanan akan ditampilkan:
Pilih tab YAML.
Klik Edit, lalu salin konten YAML ke file baru bernama
service.yaml
, di sistem file Anda, sehingga Skaffold dapat menggunakannya saat Anda membuat rilis.
Membuat definisi tugas Cloud Run
Untuk men-deploy definisi tugas Cloud Run, Anda dapat membuatnya secara manual, atau menyalinnya dari tugas yang ada. Keduanya dijelaskan di bagian ini.
Perhatikan bahwa tugas tidak harus dijalankan setelah di-deploy oleh Cloud Deploy. Hal ini berbeda dengan layanan, yang menjalankan aplikasi setelah di-deploy. Cara tugas dipanggil bergantung pada tugas itu sendiri.
Opsi 1: membuat job.yaml
Cloud Run baru
job.yaml menentukan tugas Cloud Run Anda. Saat Anda membuat rilis, Skaffold menggunakan definisi ini untuk men-deploy tugas.
Berikut adalah contoh sederhana:
apiVersion: run.googleapis.com/v1
kind: Job
metadata:
name: [JOB_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Dengan keterangan:
[JOB_NAME]
adalah nama untuk tugas Cloud Run ini.[IMAGE_PATH]
mengarah ke image container yang Anda deploy untuk tugas ini.
Opsi 2: menyalin job.yaml
dari tugas yang ada menggunakan konsol Google Cloud
Anda dapat membuat tugas menggunakan Konsol Google Cloud atau menggunakan tugas yang ada,
dan menyalin job.yaml
dari sana.
Untuk mendapatkan job.yaml
menggunakan Google Cloud CLI:
gcloud run jobs describe [job_name] --format=export
Untuk mendapatkan job.yaml
dari konsol Google Cloud:
Di konsol Google Cloud, buka halaman Tugas Cloud Run.
Pilih tugas yang ada yang definisinya ingin Anda gunakan.
Atau, Anda dapat membuat yang baru, lalu memilihnya. Saat Anda memilih tugas, halaman Detail Tugas akan ditampilkan:
Pilih tab YAML.
Klik Edit, lalu salin konten YAML ke file baru bernama
job.yaml
, di sistem file Anda, sehingga Skaffold dapat menggunakannya saat Anda membuat rilis.
Menggabungkan semuanya
Setelah memiliki layanan atau definisi tugas Cloud Run, konfigurasi skaffold.yaml
, dan definisi target Cloud Deploy, serta telah mendaftarkan target sebagai resource Cloud Deploy, kini Anda dapat memanggil pipeline pengiriman untuk membuat rilis dan melanjutkannya melalui progres target yang ditentukan dalam pipeline.
Panduan memulai Men-deploy aplikasi ke Cloud Run menggunakan Cloud Deploy menunjukkan semua hal ini dalam tindakan.
Perilaku layanan di seluruh revisi
Saat Anda men-deploy ulang layanan, revisi baru didasarkan pada service.yaml
yang baru saja di-deploy. Tidak ada yang dipertahankan dari revisi sebelumnya, kecuali jika sama dengan YAML yang baru di-deploy. Misalnya, jika
ada setelan atau label konfigurasi dalam revisi sebelumnya yang tidak
ada dalam YAML baru, setelan atau label tersebut tidak ada dalam revisi baru.
Memicu tugas Cloud Run
Setelah men-deploy tugas, Anda dapat memicunya seperti yang dijelaskan dalam dokumentasi Cloud Run.
Men-deploy layanan dan tugas Cloud Run di beberapa project
Jika Anda perlu men-deploy layanan atau tugas yang berada di project yang berbeda, akun layanan eksekusi Anda memerlukan izin untuk mengakses project tempat layanan atau tugas tersebut ditentukan.
Lihat Akun layanan eksekusi Cloud Deploy dan Peran dan izin Identity and Access Management untuk mengetahui informasi selengkapnya.
Langkah selanjutnya
Pelajari lebih lanjut cara mengonfigurasi target Cloud Deploy
Pelajari lingkungan eksekusi Cloud Deploy.
Pelajari lebih lanjut dukungan Skaffold untuk Cloud Run
Pelajari Cloud Run lebih lanjut