Grup instance terkelola (MIG) menawarkan kemampuan penskalaan otomatis yang memungkinkan Anda menambahkan atau menghapus instance virtual machine (VM) secara otomatis dari MIG berdasarkan peningkatan atau penurunan beban. Dengan penskalaan otomatis, aplikasi Anda dapat menangani peningkatan traffic dan mengurangi biaya saat kebutuhan resource menurun. Anda dapat menentukan kebijakan penskalaan otomatis dan autoscaler akan melakukan penskalaan otomatis berdasarkan beban yang diukur dan opsi yang Anda konfigurasikan.
Penskalaan otomatis berfungsi dengan menambahkan lebih banyak VM ke MIG Anda saat ada beban lebih banyak (penyebaran skala), dan menghapus VM saat kebutuhan terhadap VM menurun (penurunan skala).
Prasyarat
Autoscaler menggunakan Agen Layanan Compute Engine untuk menambahkan dan menghapus instance dalam grup. Google Cloud secara otomatis membuat akun layanan ini, beserta kebijakan IAM-nya yang mengikat ke peran Agen Layanan Compute Engine, saat Compute Engine API diaktifkan.
Jika project Anda tidak memiliki akun ini, misalnya jika Anda telah menghapusnya, Anda dapat menambahkannya secara manual:
Konsol
Di Konsol Google Cloud, buka halaman IAM.
Klik Grant Access.
Di kolom New principals, masukkan
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
.Pilih peran Agen Layanan Compute Engine.
Klik Save.
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
Dasar-dasar
Penskalaan otomatis menggunakan konsep dan layanan dasar berikut.
Grup instance terkelola
Penskalaan otomatis adalah fitur grup instance terkelola (MIG). Grup instance terkelola adalah kumpulan instance virtual machine (VM) yang dibuat dari template instance umum. Autoscaler menambahkan atau menghapus instance dari grup instance terkelola berdasarkan kebijakan penskalaan otomatis grup. Meskipun Compute Engine memiliki grup instance terkelola dan tidak terkelola, hanya grup instance terkelola yang dapat digunakan dengan autoscaler.
Untuk memahami perbedaan antara grup instance terkelola dan grup instance yang tidak terkelola, baca artikel Grup instance.
Untuk mempelajari cara membuat grup instance terkelola, lihat Membuat MIG.
Kebijakan penskalaan otomatis
Saat menentukan kebijakan penskalaan otomatis untuk grup, Anda menentukan satu atau beberapa sinyal yang digunakan autoscaler untuk menskalakan grup. Saat Anda menetapkan beberapa sinyal dalam kebijakan, autoscaler akan menghitung jumlah VM yang direkomendasikan untuk setiap sinyal dan menetapkan ukuran yang direkomendasikan grup Anda ke jumlah terbesar.
Kebijakan penskalaan otomatis harus selalu memiliki setidaknya satu sinyal penskalaan. Saat Anda mengaktifkan penskalaan otomatis di MIG, secara default penskalaan otomatis akan menambahkan sinyal penggunaan CPU. Anda dapat mengedit sinyal default ini, atau menghapus dan menambahkan sinyal lain dalam kebijakan.
Bagian berikut memberikan ringkasan sinyal berdasarkan sinyal dan metrik utilisasi target berdasarkan jadwal.
Metrik pemanfaatan target
Anda dapat melakukan penskalaan otomatis berdasarkan satu atau beberapa metrik berikut yang mencerminkan beban grup instance:
- Pemakaian CPU rata-rata
- Kapasitas penyajian load balancing HTTP
- Metrik Cloud Monitoring
Autoscaler terus mengumpulkan informasi penggunaan berdasarkan metrik pemanfaatan yang dipilih, membandingkan pemanfaatan sebenarnya dengan pemanfaatan target yang Anda inginkan, dan menggunakan informasi ini untuk menentukan apakah grup perlu menghapus instance (penurunan skala) atau menambahkan instance (penyebaran skala).
Level pemanfaatan target adalah level yang mana Anda ingin mempertahankan instance virtual machine (VM) Anda. Misalnya, jika melakukan penskalaan berdasarkan pemanfaatan CPU, Anda dapat menetapkan level pemanfaatan target pada 75% dan autoscaler akan mempertahankan penggunaan CPU untuk grup instance yang ditentukan pada atau mendekati 75%. Tingkat pemakaian untuk setiap metrik ditafsirkan secara berbeda berdasarkan kebijakan penskalaan otomatis.
Untuk mengetahui informasi selengkapnya tentang penskalaan berdasarkan metrik pemanfaatan target, lihat halaman berikut:
- Menskalakan berdasarkan pemanfaatan CPU
- Menskalakan berdasarkan kapasitas penyajian load balancing.
- Menskalakan berdasarkan metrik Cloud Monitoring
Jadwal
Anda dapat menggunakan penskalaan otomatis berbasis jadwal guna mengalokasikan kapasitas untuk beban yang diantisipasi. Anda dapat memiliki hingga 128 jadwal penskalaan per grup instance. Untuk setiap jadwal penskalaan, tentukan hal berikut:
- Kapasitas: instance VM minimum yang diperlukan
- Jadwal: waktu mulai, durasi, dan pengulangan (misalnya, sekali, harian, mingguan, atau bulanan)
Setiap jadwal penskalaan aktif sejak waktu mulainya dan selama durasi yang dikonfigurasi. Selama waktu ini, autoscaler akan menskalakan grup agar memiliki setidaknya instance sebanyak yang ditentukan oleh jadwal penskalaan.
Untuk informasi selengkapnya, lihat Menskalakan berdasarkan jadwal.
Periode inisialisasi
Periode inisialisasi, sebelumnya dikenal sebagai periode tunggu, adalah durasi yang diperlukan aplikasi untuk melakukan inisialisasi pada instance VM Anda. Ketika aplikasi diinisialisasi pada sebuah instance, data penggunaan instance tersebut mungkin tidak mencerminkan keadaan normal. Jadi, autoscaler menggunakan periode inisialisasi untuk keputusan penskalaan dengan cara berikut:
- Untuk membuat keputusan penurunan skala, autoscaler akan mempertimbangkan data penggunaan dari semua instance, bahkan instance yang masih dalam periode inisialisasi. Autoscaler merekomendasikan untuk menghapus instance jika pemakaian rata-rata dari semua instance kurang dari target pemanfaatan.
- Untuk keputusan penyebaran skala, autoscaler akan mengabaikan data penggunaan dari instance yang masih dalam periode inisialisasi.
- Jika Anda mengaktifkan mode prediktif, periode inisialisasi akan memberi tahu autoscaler prediktif untuk menyebarkan skala lebih lanjut sebelum ada beban yang diperkirakan, sehingga aplikasi akan diinisialisasi saat beban tiba. Misalnya, jika Anda menetapkan periode inisialisasi ke 300 detik, autoscaler prediktif akan membuat VM 5 menit lebih cepat dari perkiraan beban.
Secara default, periode inisialisasi adalah 60 detik. Waktu inisialisasi yang sebenarnya bervariasi karena banyak faktor. Sebaiknya
uji berapa lama aplikasi Anda melakukan inisialisasi. Untuk melakukannya, buat
instance dan atur waktu proses startup dari saat instance menjadi
RUNNING
sampai aplikasi siap.
Jika Anda menetapkan nilai periode inisialisasi yang secara signifikan lebih lama daripada waktu yang diperlukan instance untuk diinisialisasi, autoscaler mungkin akan mengabaikan data penggunaan yang sah, dan mungkin meremehkan ukuran grup yang diperlukan, yang menyebabkan penundaan dan penyebaran skala.
Periode stabilisasi
Sinyal penskalaan otomatis seperti pemakaian CPU tidak terlalu stabil dan dapat berubah dengan cepat. Saat beban naik dan turun, autoscaler perlu menstabilkan sinyal untuk menghindari penghapusan dan pembuatan VM secara berkelanjutan. Autoscaler menstabilkan sinyal dengan menjaga kapasitas VM yang memadai untuk menyajikan beban puncak yang diamati selama periode stabilisasi.
Periode stabilisasi sama dengan 10 menit atau dengan periode inisialisasi yang Anda tetapkan, mana saja yang lebih lama. Periode stabilisasi hanya digunakan untuk pengambilan keputusan penurunan skala saat autoscaler harus menghapus VM.
Saat beban turun, autoscaler tidak akan langsung menghapus VM. Autoscaler terus memantau kapasitas yang diperlukan selama durasi periode stabilisasi dan menghapus VM hanya jika ada kapasitas yang cukup untuk memenuhi beban puncak. Hal ini mungkin terlihat sebagai penundaan dalam penurunan skala, tetapi ini adalah fitur bawaan penskalaan otomatis.
Jika aplikasi Anda memerlukan waktu lebih dari 10 menit untuk diinisialisasi di VM baru, autoscaler akan menggunakan periode inisialisasi, bukan stabilisasi default 10 menit untuk menunggu hingga VM dapat dihapus. Tindakan ini memastikan bahwa keputusan autoscaler untuk menghapus VM memperhitungkan waktu yang diperlukan untuk mendapatkan kembali kapasitas penyajian.
Saat beban meningkat, autoscaler tidak akan menggunakan periode stabilisasi dan akan langsung membuat VM sebanyak yang diperlukan untuk memenuhi permintaan.
Mode penskalaan otomatis
Jika perlu menyelidiki atau mengonfigurasi grup tanpa gangguan dari operasi autoscaler, Anda dapat menonaktifkan atau membatasi aktivitas penskalaan otomatis untuk sementara. Konfigurasi autoscaler akan tetap ada saat dinonaktifkan atau dibatasi, dan semua aktivitas penskalaan otomatis akan dilanjutkan saat Anda mengaktifkannya lagi atau mencabut pembatasan.
Penskalaan otomatis prediktif
Jika Anda mengaktifkan penskalaan otomatis prediktif untuk mengoptimalkan MIG untuk ketersediaan, autoscaler memperkirakan beban mendatang berdasarkan data historis dan menyebarkan skala MIG sebelum ada beban yang diprediksi, sehingga instance baru siap disajikan saat beban muncul.
Penskalaan otomatis prediktif berfungsi optimal jika workload Anda memenuhi kriteria berikut:
- Aplikasi Anda memerlukan waktu lama untuk diinisialisasi—misalnya, jika Anda mengonfigurasi periode inisialisasi lebih dari 2 menit.
- Workload Anda bervariasi, dapat diprediksi tergantung siklus harian atau mingguan.
Untuk mengetahui informasi selengkapnya, lihat Penskalaan berdasarkan prediksi.
Kontrol penurunan skala
Jika workload Anda memerlukan waktu beberapa menit untuk diinisialisasi (misalnya, karena tugas penginstalan yang panjang), Anda dapat mengurangi risiko latensi respons yang disebabkan oleh peristiwa penurunan skala secara tiba-tiba dengan mengonfigurasi kontrol penurunan skala. Khususnya, jika Anda memperkirakan lonjakan beban akan segera muncul setelah penurunan, Anda dapat membatasi tingkat penurunan skala untuk mencegah penskalaan otomatis mengurangi ukuran MIG sebesar lebih banyak instance VM daripada yang dapat ditoleransi oleh workload Anda.
Anda tidak perlu mengonfigurasi kontrol penurunan skala jika aplikasi melakukan inisialisasi cukup cepat untuk menerima lonjakan beban saat penyebaran skala.
Untuk mengonfigurasi kontrol penurunan skala, tetapkan properti berikut dalam kebijakan penskalaan otomatis Anda.
Pengurangan maksimum yang diizinkan. Jumlah instance VM yang dapat hilang dari workload Anda (dari ukuran maksimumnya) dalam periode waktu tambahan yang ditentukan. Gunakan parameter ini untuk membatasi seberapa banyak skala grup yang dapat diturunkan agar Anda masih dapat menyajikan kemungkinan lonjakan beban hingga lebih banyak instance mulai disajikan. Makin kecil Anda menetapkan pengurangan maksimum yang diizinkan, makin lama waktu yang dibutuhkan untuk menurunkan skala grup Anda.
Periode waktu pelacakan. Histori saat autoscaler memantau ukuran puncak yang diperlukan oleh workload Anda. Ukuran autoscaler tidak akan berubah di bawah pengurangan maksimum yang diizinkan yang dikurangi dari ukuran puncak yang diamati dalam periode ini. Anda dapat menggunakan parameter ini untuk menentukan berapa lama autoscaler harus menunggu sebelum menghapus instance, seperti yang ditentukan oleh pengurangan maksimum yang diizinkan. Dengan periode waktu akhir yang lebih lama, autoscaler mempertimbangkan puncak historis yang lebih banyak, sehingga penurunan skala menjadi lebih konservatif dan stabil.
Untuk informasi selengkapnya, lihat Mengonfigurasi kontrol penurunan skala dan Memahami keputusan autoscaler.
Ukuran yang direkomendasikan
Ukuran grup yang direkomendasikan adalah jumlah VM yang direkomendasikan oleh autoscaler yang harus dipertahankan oleh grup instance terkelola, berdasarkan beban puncak yang diamati selama 10 menit terakhir. 10 menit terakhir ini disebut sebagai periode stabilisasi. Ukuran yang direkomendasikan dihitung ulang secara konstan. Jika Anda menetapkan kebijakan penskalaan otomatis dengan kontrol penurunan skala, ukuran yang direkomendasikan akan dibatasi oleh kontrol penurunan skala.
Batasan
Anda tidak dapat menggunakan penskalaan otomatis dengan grup instance berikut, yang tidak mengizinkan penskalaan otomatis membuat atau menghapus VM sesuai dengan permintaan:
- Grup instance yang tidak dikelola
- MIG dengan konfigurasi stateful
- MIG dengan perbaikan VM dinonaktifkan
- MIG regional dengan bentuk target distribusi
ANY
atauANY_SINGLE_ZONE
Anda tidak dapat membuat instance VM dengan nama tertentu saat penskalaan otomatis diaktifkan.
Jangan gunakan penskalaan otomatis Compute Engine dengan MIG yang dimiliki oleh Google Kubernetes Engine. Untuk grup Google Kubernetes Engine, gunakan penskalaan cluster sebagai gantinya. Jika Anda tidak yakin apakah MIG merupakan bagian dari cluster GKE, cari awalan
gke
dalam nama MIG. Contohnya,gke-test-1-3-default-pool-eadji9ah
.
Yang terjadi selama autohealing
Penskalaan otomatis berfungsi secara independen dari autohealing.
Jika Anda mengonfigurasi autohealing untuk grup Anda dan instance gagal dalam health
check, MIG akan mencoba membuat ulang instance. Ketika instance
sedang dibuat ulang oleh MIG, jumlah instance yang berjalan dalam
grup mungkin lebih rendah dari jumlah minimum instance yang ditentukan untuk
grup (autoscalingPolicy.minNumReplicas
).
Harga
Tidak ada biaya tambahan untuk mengonfigurasi kebijakan penskalaan otomatis. Autoscaler menambahkan atau menghapus instance VM secara dinamis, sehingga Anda hanya dikenai biaya untuk resource yang digunakan MIG Anda. Anda dapat mengontrol biaya resource dengan mengonfigurasi jumlah minimum dan maksimum instance dalam kebijakan penskalaan otomatis. Untuk mengetahui informasi harga Compute Engine, lihat Harga.
Langkah selanjutnya
- Pelajari cara kerja penskalaan otomatis di MIG regional.
- Jika Anda belum memiliki MIG yang ada, tinjau cara membuat grup instance terkelola.
Buat autoscaler yang melakukan penskalaan berdasarkan:
Kelola autoscaler, misalnya, untuk mendapatkan informasi tentang autoscaler, untuk mengonfigurasi kontrol penurunan skala, atau untuk membatasinya sementara.