Halaman ini menjelaskan cara mengaktifkan instance nonaktif untuk layanan Anda menggunakan metode 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
instance minimum yang berjalan, meskipun jika mereka tidak melayani permintaan. Aktif
instance di atas jumlah min-instances
mungkin menjadi tidak ada aktivitas, jika
tidak menerima permintaan.
Misalnya, jika min-instances
adalah 10
, dan jumlah instance yang aktif adalah
0
, maka jumlah instance nonaktifnya adalah 10
. Bila jumlah respons
instance meningkat menjadi 6
, lalu jumlah instance nonaktif berkurang menjadi 4
.
Menerapkan instance minimum di tingkat layanan versus tingkat revisi
Anda dapat mengonfigurasi instance minimum di service atau di tingkat revisi. Google merekomendasikan agar Anda menerapkan instance minimum pada tingkat layanan dan hindari penggabungan instance minimum tingkat layanan dan tingkat revisi.
Jika Anda menerapkan {i>instance<i} minimum pada tingkat revisi, pengaturan akan masuk ke berlaku setelah revisi diterapkan. Jika Anda menerapkan fitur ini di tingkat layanan, setelan ini akan berlaku tanpa perlu men-deploy revisi.
Revisi yang diberi tag dan instance minimum tingkat layanan
Revisi yang diberi tag adalah dimulai, tetapi hanya dihitung dalam instance minimum tingkat layanan jika sebagai bagian dari pemisahan traffic.
Penagihan
Instance yang terus berjalan menggunakan fitur instance minimum memang dikenai biaya penagihan. Karena tagihan ini sangat dapat diprediksi, Google menyarankan untuk membeli Diskon abonemen.
Instance minimum dan CPU yang selalu dialokasikan
Anda dapat mengonfigurasi CPU harus selalu dialokasikan jika Anda perlu 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 melayani traffic secara proporsional ke pemisahan traffic.
Jika instance minimum ditetapkan pada level revisi, instance minimum dimulai setiap kali revisi direferensikan dalam pemisahan traffic (bahkan pada 0%) atau memiliki tag traffic yang ditetapkan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
-
Developer Cloud Run (
roles/run.developer
) di layanan Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) pada identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika antarmuka layanan Cloud Run Anda dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Menetapkan dan mengupdate instance minimum tingkat layanan
Secara default, instance minimum tingkat layanan dinonaktifkan di instance container.
dengan setelan 0
. Anda dapat mengubah 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 Deploy container, lalu pilih Service untuk menampilkan formulir Create service. Jika Anda mengonfigurasi layanan yang ada, klik layanan untuk menampilkan detailnya panel, lalu klik ikon pena di samping Instance min di kanan atas panel detail.
Cari formulir Penskalaan otomatis layanan.
- Dalam kolom berlabel Minimum number of instances, tentukan jumlah instance container yang harus tetap aktif, siap untuk diterima permintaan.
Klik Create untuk layanan baru atau Deploy untuk layanan yang sudah ada.
gcloud
Perbarui 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.
- MIN-VALUE dengan jumlah instance container yang akan dipertahankan
warm, siap menerima permintaan. Tentukan
default
untuk menghapus nilai minimum setelan instance.
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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MIN-VALUE dengan jumlah container
tetap aktif, siap menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
run.googleapis.com/minScale
: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 hangat, siap untuk menerima permintaan.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Library klien
Untuk mengupdate instance minimum tingkat layanan untuk layanan Anda dari kode:
REST API
Guna mengupdate instance minimum tingkat layanan untuk layanan tertentu, kirim PATCH
Permintaan HTTP ke Cloud Run Admin API
Endpoint service
.
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 harus tetap aktif, siap menerima permintaan.
- SERVICE dengan nama layanan.
- REGION dengan region Google Cloud layanan.
- 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:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik layanan yang Anda minati untuk membuka Detail layanan .
Setelan saat ini ditampilkan di kanan atas detail layanan , di samping Instance min.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Cari nilai untuk Service-level Min Instances: di kolom yang ditampilkan konfigurasi Anda.
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 Anda membuat layanan baru atau
deploy revisi baru:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik Deploy container lalu pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang ada, klik service, lalu klik Edit and deploy new revision.
Jika Anda mengonfigurasi layanan baru, isi layanan awal halaman setelan, lalu klik Container, volume, networking, security untuk meluaskan konfigurasi layanan Google Cloud.
Klik tab Container.
- Dalam kolom berlabel Minimum number of instances, menentukan jumlah instance container yang harus tetap aktif, siap untuk menerima permintaan.
Klik Buat atau Deploy.
gcloud
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.
- MIN-VALUE dengan jumlah instance container yang akan dipertahankan
warm, siap menerima permintaan. Tentukan
default
untuk menghapus nilai minimum setelan instance.
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 akan dipertahankan
warm, siap menerima permintaan. Tentukan
default
untuk menghapus nilai minimum setelan instance.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
autoscaling.knative.dev/minScale:
: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 akan tetap hangat, siap untuk 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
Buat atau update layanan 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:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik layanan yang Anda minati untuk membuka Detail layanan kami.
Klik tab Revisi.
Pada panel detail di sebelah kanan, setelan instance minimum tingkat revisi tercantum di bawah tab Container.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Menemukan setelan instance minimum tingkat revisi di kolom konfigurasi Anda.
Menggunakan instance minimum atau maksimum tingkat layanan dan tingkat revisi
Tabel berikut menunjukkan perilaku jika Anda menggabungkan nilai minimum tingkat layanan serta 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 yang lebih besar dan instance minimum tingkat layanan yang lebih besar. |
Instance minimum tingkat layanan dan instance maksimum tingkat revisi telah ditetapkan. | Nilai efektif untuk revisi adalah yang lebih kecil antara 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 pemisahan traffic. Misalnya, jika nilai minimum tingkat layanan instance = 10, pemisahan traffic 50/50 mengalokasikan 5 instance minimum tingkat layanan pada 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. Hal ini melebihi instance minimum tingkat layanan dan memang seharusnya dilakukan. |
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. Tindakan ini menghasilkan 8 instance tingkat layanan, karena 2 hilang karena instance maksimum tingkat 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. |