Halaman ini menjelaskan cara mengaktifkan instance nonaktif untuk layanan Anda menggunakan setelan instance minimum.
Untuk layanan Cloud Run, Cloud Run secara default melakukan penskalaan ke jumlah instance berdasarkan jumlah permintaan yang masuk. Namun, jika layanan Anda memerlukan penurunan latensi,terutama saat melakukan penskalaan dari nol instance aktif, Anda dapat mengubah perilaku default ini dengan menentukan jumlah minimum instance container yang harus tetap aktif dan siap untuk melayani permintaan. Lihat Tips pengembangan umum untuk detail selengkapnya tentang pengoptimalan ini.
Cloud Run menghapus instance yang tidak melayani permintaan (tidak ada aktivitas). Dengan menetapkan
instance minimum, Cloud Run mempertahankan setidaknya jumlah instance minimum yang berjalan, meskipun instance tersebut tidak melayani permintaan. Instance aktif di atas min-instances
mungkin menjadi tidak ada aktivitas, jika intance tersebut tidak menerima permintaan.
Misalnya, jika min-instances
adalah 10
, dan jumlah instance aktif adalah 0
, jumlah instance yang tidak ada aktivitas adalah 10
.
Jika jumlah instance aktif meningkat menjadi 6
, jumlah instance tidak aktif akan menurun menjadi 4
.
Menerapkan instance minimum pada tingkat layanan versus tingkat revisi
Anda dapat mengonfigurasi instance minimum pada tingkat layanan atau di tingkat revisi. Google merekomendasikan agar Anda menerapkan instance minimum pada tingkat layanan dan menghindari penggabungan instance minimum tingkat layanan dan tingkat revisi.
Jika Anda menerapkan instance minimum pada tingkat revisi, setelan akan diterapkan setelah deployment revisi. Jika Anda menerapkan fitur ini pada tingkat layanan, setelan akan berlaku tanpa perlu men-deploy revisi baru.
Instance minimum tingkat layanan dan revisi yang diberi tag
Revisi yang diberi tag akan dimulai, tetapi tidak diperhitungkan dalam instance minimum tingkat layanan jika bukan merupakan bagian dari pemisahan traffic.
Penagihan
Instance yang terus berjalan menggunakan fitur instance minimum memang dikenai biaya penagihan. Karena biaya ini sangat dapat diprediksi, Google merekomendasikan untuk membeli Diskon abonemen.
Instance minimum dan CPU yang selalu dialokasikan
Anda dapat mengonfigurasi CPU agar selalu dialokasikan jika memerlukan CPU di luar permintaan.
Penyalaan ulang instance minimum
Instance minimum dapat dimulai ulang kapan saja.
Revisi dan instance minimum
Jika instance minimum ditetapkan pada tingkat layanan, instance tersebut akan didistribusikan ke semua revisi yang menyalurkan traffic secara proporsional dengan pemisahan traffic.
Jika instance minimum ditetapkan pada tingkat revisi, instance minimum akan dimulai setiap kali revisi direferensikan dalam pemisahan traffic (bahkan dengan persentase 0%) atau memiliki tag traffic yang ditetapkan.
Menetapkan dan mengupdate instance minimum tingkat layanan
Secara default, instance container menonaktifkan instance minimum tingkat layanan, dengan setelan 0
. Anda dapat mengubah nilai default ini menggunakan Konsol Google Cloud, Google Cloud CLI, atau file YAML:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Create Service . Jika Anda mengonfigurasi layanan yang ada, klik layanan untuk menampilkan panel detailnya, lalu klik ikon pena di samping Min instances di kanan atas panel detail.
Temukan formulir Penskalaan otomatis layanan:
Di kolom berlabel Minimum number of instances, tentukan jumlah instance container yang akan tetap aktif, yang siap menerima permintaan.
Klik Create untuk layanan baru atau Deploy untuk layanan yang sudah ada.
Command line
Update service-min-instances
untuk layanan tertentu menggunakan perintah berikut:
gcloud beta run services update SERVICE --service-min-instances MIN-VALUE
Ganti
- SERVICE dengan nama layanan Anda dan
- MIN-VALUE dengan jumlah instance container yang akan tetap aktif, siap untuk menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
Atau, Anda dapat menetapkan service-min-instances
selama deployment menggunakan perintah:
gcloud beta run deploy --image IMAGE_URL --service-min-instances MIN-VALUE
Ganti
- IMAGE_URL dengan referensi ke image container
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MIN-VALUE dengan jumlah instance container yang akan tetap aktif, siap untuk menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
YAML
Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan
perintah gcloud run services describe --format export
, yang memberikan hasil
yang telah diolah dalam format YAML.
Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan
mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace
.
Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.
Untuk melihat dan mendownload konfigurasi:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui
run.googleapis.com/minScale
atribut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/minScale: 'MIN_INSTANCE'
Ganti
- SERVICE dengan nama layanan Cloud Run Anda
- MIN-INSTANCE dengan jumlah instance yang akan tetap aktif, siap untuk menerima permintaan.
Ganti layanan dengan konfigurasi baru menggunakan perintah berikut:
gcloud beta run services replace service.yaml
Library klien
Untuk mengupdate instance minimum tingkat layanan untuk layanan Anda dari kode:
REST API
Untuk memperbarui instance minimum tingkat layanan untuk layanan tertentu, kirim permintaan HTTP PATCH
ke endpoint service
Cloud Run Admin API.
Misalnya, menggunakan curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{ "scaling": { "minInstanceCount": MIN-VALUE }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.minInstanceCount
Ganti:
- ACCESS_TOKEN dengan token akses yang valid untuk akun yang memiliki izin IAM untuk mengupdate layanan.
Misalnya, jika login ke
gcloud
, Anda dapat mengambil token akses menggunakangcloud auth print-access-token
. Dari dalam instance container Cloud Run, Anda dapat mengambil token akses menggunakan server metadata instance container. - MIN-VALUE dengan jumlah instance container yang akan tetap aktif, siap menerima permintaan.
- SERVICE dengan nama layanan.
- REGION dengan region layanan Google Cloud.
- PROJECT-ID dengan ID project Google Cloud.
Melihat instance minimum tingkat layanan
Untuk melihat setelan instance minimum tingkat layanan saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik layanan yang Anda minati untuk membuka panel Detail layanan.
Setelan saat ini ditampilkan di kanan atas panel detail layanan, di samping Instance Min.
Command line
Gunakan perintah berikut:
gcloud run services describe SERVICE
Cari nilai untuk Service-level Min Instances: di konfigurasi yang ditampilkan.
Menetapkan dan mengupdate instance minimum tingkat revisi
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi berikutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Secara default, instance container telah min-instances
menonaktifkan, dengan setelan
di 0
. Anda dapat mengubah setelan default ini menggunakan Konsol Google Cloud, Google Cloud CLI, atau file YAML saat membuat layanan baru atau men-deploy revisi baru:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit and deploy new revision.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.
Klik tab Container.
- Di kolom berlabel Jumlah minimum instance, tentukan jumlah instance container yang diinginkan agar tetap aktif dan siap menerima permintaan.
Klik Buat atau Deploy.
Command line
Anda dapat mengupdate min-instance
dari layanan tertentu menggunakan perintah berikut:
gcloud run services update SERVICE --min-instances MIN-VALUE
Ganti
- SERVICE dengan nama layanan Anda dan
- MIN-VALUE dengan jumlah instance container yang diinginkan
yang akan tetap aktif, siap untuk menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
Anda juga dapat menetapkan min-instance
selama
deployment menggunakan perintah:
gcloud run deploy --image IMAGE_URL --min-instances MIN-VALUE
Ganti
- IMAGE_URL dengan referensi ke image container
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MIN-VALUE dengan jumlah instance container yang diinginkan yang akan tetap aktif, siap untuk menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
YAML
Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan
perintah gcloud run services describe --format export
, yang memberikan hasil
yang telah diolah dalam format YAML.
Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan
mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace
.
Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.
Untuk melihat dan mendownload konfigurasi:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui
autoscaling.knative.dev/minScale:
atribut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE' name: REVISION
Ganti
- SERVICE dengan nama layanan Cloud Run Anda
- MIN-INSTANCE dengan jumlah instance yang diinginkan yang akan tetap aktif, siap menerima permintaan.
- REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
- Dimulai dengan
SERVICE-
- Hanya berisi huruf kecil, angka, dan
-
- Tidak diakhiri dengan
-
- Tidak melebihi 63 karakter
- Dimulai dengan
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Resource google_cloud_run_v2_service
berikut menentukan jumlah minimum
instance 1
pada template.scaling
.
Ganti 1
dengan jumlah minimum instance Anda sendiri.
Melihat setelan instance minimum tingkat revisi
Untuk melihat setelan instance minimum tingkat revisi saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik layanan yang Anda minati untuk membuka halaman Detail layanan.
Klik tab Revisi.
Di panel detail di sebelah kanan, setelan instance minimum tingkat revisi dicantumkan di tab Container.
Command line
Gunakan perintah berikut:
gcloud run services describe SERVICE
Temukan setelan instance minimum tingkat revisi di konfigurasi yang ditampilkan.
Menggunakan instance minimum atau maksimum tingkat layanan dan revisi
Tabel berikut menunjukkan perilaku jika Anda menggabungkan instance minimum atau maksimum tingkat layanan dan instance minimum atau maksimum tingkat revisi:
Setelan konfigurasi | Perilaku |
---|---|
Instance minimum tingkat layanan dan instance minimum tingkat revisi telah ditetapkan. | Nilai efektif untuk revisi adalah instance minimum tingkat revisi dan instance minimum tingkat layanan yang lebih besar. |
Instance minimum tingkat layanan dan instance maksimum tingkat revisi telah ditetapkan. | Nilai efektif untuk revisi adalah lebih kecil dari instance maksimum tingkat revisi dan instance minimum tingkat layanan. Hal ini berlaku meskipun instance maksimum tingkat revisi mencegah layanan mencapai jumlah instance yang dikonfigurasi untuk instance minimum tingkat layanan. |
Menggunakan instance minimum tingkat layanan dengan pemisahan traffic
Jika Anda menggunakan pemisahan traffic, instance minimum tingkat layanan dibagi di seluruh revisi berdasarkan proporsi pembagian traffic. Misalnya, jika instance minimum tingkat layanan = 10, pemisahan traffic 50/50 akan mengalokasikan 5 instance minimum tingkat layanan untuk setiap revisi.
Tabel berikut menunjukkan contoh skenario konfigurasi:
Contoh kasus penggunaan | Contoh konfigurasi | Perilaku yang dihasilkan |
---|---|---|
Tidak ada setelan tingkat revisi | Instance minimum tingkat layanan: 10
|
Revisi A menerima 6 instance dari instance minimum tingkat layanan yang sebanding dengan pemisahan traffic. Revisi B menerima 4 instance dari instance minimum tingkat layanan yang sebanding dengan pemisahan traffic. |
Menerima lebih dari instance minimum tingkat layanan karena instance minimum tingkat revisi | Instance minimum tingkat layanan: 10
|
Revisi A menerima 6 instance dari instance minimum tingkat revisi. Revisi B menerima 5 instance dari instance minimum tingkat layanan yang sebanding dengan pemisahan traffic. Jumlah ini melampaui instance minimum tingkat layanan dan memang sengaja dibuat. |
Menerima kurang dari instance minimum tingkat layanan karena instance maksimum tingkat revisi. | Instance minimum tingkat layanan: 10
|
Revisi A menerima 3 instance dari instance minimum tingkat layanan yang didorong oleh pemisahan traffic, tetapi terbatas pada instance maksimum tingkat revisinya. Revisi B menerima 5 instance dari instance minimum tingkat layanan yang sebanding dengan pemisahan traffic. Proses ini menghasilkan 8 instance tingkat layanan, karena 2 instance hilang karena instance maksimum level revisi dari revisi A. |
Instance minimum tingkat layanan lebih besar dari jumlah revisi dalam pemisahan traffic, dan terdapat jumlah pecahan instance yang sebanding dengan pemisahan traffic | Instance minimum tingkat layanan: 3
|
Revisi A mendapatkan 1 instance minimum dan revisi B mendapatkan 2 instance minimum. Jumlah instance untuk layanan adalah 3. |