Halaman ini menjelaskan cara menetapkan jumlah maksimum instance yang dapat digunakan untuk layanan Cloud Run Anda menggunakan perilaku penskalaan otomatis Cloud Run default. Untuk menskalakan layanan secara manual, lihat Penskalaan manual.
Menentukan instance maksimum di Cloud Run memungkinkan Anda membatasi penskalaan layanan sebagai respons terhadap permintaan masuk, meskipun setelan maksimum ini dapat terlampaui untuk jangka waktu yang singkat karena keadaan seperti lonjakan traffic.
Anda dapat menggunakan setelan ini sebagai salah satu cara untuk mengontrol biaya Anda atau untuk membatasi jumlah koneksi ke layanan pendukung, seperti ke database.
Untuk informasi tentang batas maksimum instance yang mungkin diterapkan pada layanan Anda, baca Batas instance maksimum.
Untuk informasi selengkapnya tentang cara Cloud Run melakukan penskalaan otomatis pada instance container, baca Penskalaan otomatis instance.
Menerapkan instance maksimum di tingkat layanan versus tingkat revisi
Anda dapat mengonfigurasi instance maksimum di tingkat layanan atau di tingkat revisi. Google merekomendasikan agar Anda menggunakan instance maksimum tingkat layanan untuk membatasi jumlah instance layanan, kecuali jika Anda memiliki kebutuhan khusus untuk membatasi instance di tingkat revisi. Secara default, Cloud Run menetapkan 100 instance untuk setiap revisi. Untuk memungkinkan layanan Anda berkembang ke lebih banyak instance, ubah nilai ini.
Saat menerapkan instance maksimum, setelan akan berlaku sebagai berikut:
- Tingkat layanan: segera
- Tingkat revisi: saat deployment revisi
Revisi yang diberi tag dan jumlah maksimum instance tingkat layanan
Revisi yang ditandai dijalankan, tetapi hanya dihitung terhadap jumlah maksimum instance tingkat layanan jika merupakan bagian dari pembagian lalu lintas.
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 - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) pada identitas layanan
Jika Anda men-deploy layanan atau fungsi dari kode sumber, Anda juga harus memiliki peran tambahan yang diberikan kepada Anda di project dan akun layanan Cloud Build.
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi 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.
Pertimbangan biaya
Setelan instance maksimum memungkinkan Anda menetapkan batas keamanan biaya untuk mengelola biaya. Menetapkan angka maksimum yang lebih tinggi memprioritaskan ketersediaan, tetapi hal itu menimbulkan potensi risiko penagihan akibat lonjakan lalu lintas yang tidak terduga atau kesalahan konfigurasi. Sebagai langkah pengamanan biaya, konfigurasikan pengaturan ini pada tingkat layanan saat Anda pertama kali menerapkan layanan Anda. Sebaiknya mulai dengan nilai instance maksimum 3 untuk melindungi anggaran Anda dari lonjakan yang tidak terduga.
Tinjau harga Cloud Run atau perkirakan biaya dengan kalkulator harga untuk mengetahui informasi selengkapnya. Untuk alat pengendalian biaya tambahan, lihat kuota alokasi sumber daya atau anggaran dan peringatan penagihan.
Mengonfigurasi instance maksimum tingkat layanan
Anda dapat mengubah setelan instance maksimum menggunakan Google Cloud konsol, Google Cloud CLI, YAML, atau Terraform saat Anda membuat layanan baru atau men-deploy revisi baru.
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Jika Anda mengkonfigurasi layanan baru, klik Sebarkan kontainer untuk menampilkan formulir Buat layanan. Temukan formulir Penskalasian layanan.
Jika Anda sedang mengkonfigurasi layanan yang sudah ada, klik layanan tersebut untuk menampilkan panel detailnya, lalu tab Scaling.
Di bagian Penskalaan layanan, temukan kolom berlabel Jumlah maksimum instance dan tentukan jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum yang mungkin untuk layanan Anda. Untuk menghapus batasan tingkat layanan, hapus nilai yang telah Anda tetapkan. Tindakan ini akan mengembalikan setelan ke default-nya.Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
gcloud
Anda dapat memperbarui jumlah maksimum instance untuk layanan tertentu menggunakan perintah berikut:
gcloud run services update SERVICE --max MAX-VALUE
Ganti kode berikut:
- SERVICE: nama layanan Anda.
- MAX-VALUE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum yang memungkinkan untuk layanan Anda. Untuk menghapus batas tingkat layanan, hapus nilai yang Anda tetapkan. Tindakan ini akan mengembalikan setelan ke default-nya.
Anda juga dapat mengatur jumlah maksimum instance selama deployment menggunakan perintah berikut:
gcloud run deploy --image IMAGE_URL --max MAX-VALUE
Ganti kode berikut:
IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- MAX-VALUE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum.
YAML
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
run.googleapis.com/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/maxScale: 'MAX-INSTANCE'
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda
- MAX-INSTANCE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum yang memungkinkan untuk layanan Anda. Untuk menghapus batas tingkat layanan, hapus nilai yang Anda tetapkan. Tindakan ini akan mengembalikan setelan ke default-nya.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Perintah
gcloud run services replacesecara default akan menggunakan fileservice.yamljika ada.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
scaling {
max_instance_count = MAX_INSTANCE
}
template {
containers {
image = "IMAGE_URL"
}
}
}
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- REGION: region Google Cloud —misalnya,
europe-west1. - MAX_INSTANCE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum. IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Melihat instance maksimum tingkat layanan
Untuk melihat setelan instance maksimum tingkat layanan saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Klik layanan tersebut untuk membuka panel Service details.
Klik tab Penskalaan untuk melihat setelan saat ini.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Temukan nilai untuk Scaling: Auto (Min: MIN_VALUE, Max: MAX_VALUE) dalam konfigurasi yang ditampilkan.
Mengonfigurasi instance maksimum tingkat revisi
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Secara default, revisi Cloud Run dikonfigurasi untuk melakukan peningkatan skala hingga maksimum 100 instance.
Penskalaan tingkat revisi hanya tersedia untuk layanan yang sebelumnya telah mengonfigurasi fitur ini.
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik tab Scaling.
Pada bagian Penskalasian revisi, tentukan jumlah maksimum instance kontainer pada kolom Jumlah maksimum instance.
Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
gcloud
Anda dapat memperbarui jumlah maksimum instance untuk layanan tertentu menggunakan perintah berikut:
gcloud run services update SERVICE --max-instances MAX-VALUE
Ganti kode berikut:
- SERVICE: nama layanan Anda.
- MAX-VALUE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
autoscaling.knative.dev/maxScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda
- MAX-INSTANCE: jumlah maksimum instance container yang diperlukan, menggunakan nilai bilangan bulat apa pun dari
1hingga batas maksimum. REVISION: 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
Perintah
gcloud run services replacesecara default akan menggunakan fileservice.yamljika ada.
Melihat setelan instance maksimum tingkat revisi
Penskalaan tingkat revisi hanya tersedia untuk layanan yang sebelumnya telah mengonfigurasi fitur ini.
Untuk melihat pengaturan jumlah maksimum instance pada tingkat revisi saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Klik layanan tersebut untuk membuka panel Service details.
Klik tab Penskalaan.
Di bagian Revision scaling, lihat Maximum number of instances.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Temukan nilai untuk Jumlah instans maksimum: dalam konfigurasi yang dikembalikan.
Menggunakan instance minimum atau maksimum tingkat layanan dan tingkat revisi
Tabel berikut menunjukkan perilaku jika Anda menggabungkan instance maksimum tingkat layanan dengan instance minimum atau maksimum tingkat revisi:
| Setelan tingkat layanan | Setelan tingkat revisi | Perilaku |
|---|---|---|
| Instance maksimum tingkat layanan ditetapkan | Pengaturan jumlah maksimum instance tingkat revisi | Batas instance maksimum efektif adalah nilai yang lebih kecil antara instance maksimum tingkat revisi dan instance maksimum tingkat layanan. |
| Instance maksimum tingkat layanan ditetapkan | Set instance minimum tingkat revisi | Jika instance maksimum tingkat layanan ditetapkan ke nilai yang lebih rendah daripada instance minimum tingkat revisi, revisi akan memulai instance hingga instance maksimum tingkat layanan, dan tidak akan mencapai instance minimum tingkat revisi yang dikonfigurasi. |
Gunakan jumlah instance maksimum tingkat layanan dengan pembagian lalu lintas.
Jika Anda menggunakan pemisahan traffic, instance maksimum tingkat layanan didistribusikan di seluruh revisi berdasarkan proporsi pemisahan traffic. Misalnya, jika instance maksimum tingkat layanan = 100, pembagian traffic 50/50 akan mengalokasikan 50 instance maksimum tingkat layanan ke setiap revisi. Tabel berikut menunjukkan contoh skenario konfigurasi:
| Contoh konfigurasi | Perilaku yang dihasilkan |
|---|---|
Jumlah maksimum instance tingkat layanan yang ditetapkan (skenario di mana tidak ada pengaturan tingkat revisi): 100
|
Sebagian instance maksimum tingkat layanan dialokasikan ke setiap revisi. Jumlah instance maksimum efektif untuk setiap revisi ditetapkan berdasarkan pembagian traffic. Instance maksimum untuk Revisi A adalah 10, Revisi B adalah 10, dan Revisi C adalah 80. |