Pelajari cara mengaktifkan instance tidak ada aktivitas untuk layanan Anda dengan mengonfigurasi setelan instance minimum.
Secara default, layanan Knative melakukan penskalaan hingga jumlah instance berdasarkan jumlah permintaan yang masuk. Namun, jika layanan Anda memerlukan latensi yang lebih rendah dan Anda ingin membatasi jumlah cold start, Anda dapat mengubah perilaku default ini dengan menentukan jumlah minimum instance container yang harus tetap berjalan dan siap untuk melayani permintaan.
Instance yang terus berjalan dengan cara ini memang dikenai biaya penagihan.
Revisi dan instance minimum
Instance minimum dimulai hanya jika revisi dapat ditangani. Revisi dapat ditangani jika salah satu hal berikut terpenuhi:
- Program ini menerima persentase traffic.
- Revisi tersebut diberi tag revisi.
Menetapkan dan mengupdate instance minimum
Setiap perubahan konfigurasi akan menghasilkan suatu 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 perilaku default ini menggunakan konsol Google Cloud , atau Google Cloud CLI saat men-deploy layanan baru atau memperbarui layanan yang ada dan men-deploy revisi:
Konsol
Buka Knative serving di konsol Google Cloud :
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit & Deploy Revisi Baru.
Di bagian Setelan lanjutan, klik Penampung.
Di kolom berlabel Jumlah minimum instance, tentukan jumlah instance container yang diinginkan agar tetap aktif dan siap menerima permintaan.
Klik Berikutnya untuk melanjutkan ke bagian berikutnya.
Di bagian Konfigurasi cara layanan ini dipicu, pilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.
Klik Create untuk men-deploy image ke layanan Knative dan tunggu hingga deployment selesai.
Command line
Untuk layanan yang ada, tetapkan jumlah minimum instance container dengan menjalankan perintah
gcloud run services update
dengan parameter--min-instances
:gcloud run services update SERVICE --min-instances MIN-VALUE
Ganti:
- SERVICE dengan nama layanan Anda.
- MIN-VALUE dengan jumlah instance container yang diinginkan yang akan tetap aktif, siap untuk menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
Untuk layanan baru, tetapkan jumlah minimum instance container dengan menjalankan perintah
gcloud run deploy
dengan parameter--min-instances
:gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE
Ganti:
- SERVICE dengan nama layanan Anda.
- IMAGE_URL dengan referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - MIN-VALUE dengan jumlah instance container yang diinginkan agar tetap aktif, siap menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan tanda
--format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan Knative serving Anda.
Di file lokal Anda, perbarui atribut
autoscaling.knative.dev/minScale:
:spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE'
Ganti:
- MIN-VALUEcode> dengan jumlah instance container yang diinginkan agar tetap aktif, siap menerima permintaan. Tentukan
default
untuk menghapus semua setelan instance minimum.
- MIN-VALUEcode> dengan jumlah instance container yang diinginkan agar tetap aktif, siap menerima permintaan. Tentukan
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml