Halaman ini menjelaskan cara mengonfigurasi instance virtual machine (VM) dalam grup instance terkelola (MIG) dan metode yang dapat Anda gunakan untuk menerapkan konfigurasi ke VM dalam grup.
Tentukan konfigurasi yang diinginkan untuk VM di MIG menggunakan komponen konfigurasi VM berikut:
- Wajib: Template instance
- Opsional: Konfigurasi semua instance
- Opsional: Konfigurasi stateful
Setiap kali Anda mengupdate konfigurasi yang diinginkan menggunakan komponen tersebut, Compute Engine akan secara otomatis menerapkan konfigurasi yang telah Anda perbarui ke VM baru yang ditambahkan ke grup.
Untuk menerapkan konfigurasi terbaru ke VM yang ada, gunakan metode yang dijelaskan di halaman ini:
- Peluncuran otomatis dengan anggaran gangguan dan update canary opsional untuk template baru
- Update manual yang selektif hanya untuk VM tertentu, untuk meminimalkan gangguan
- Pembuatan ulang VM tertentu
Anda juga dapat mengonfigurasi MIG untuk menerapkan konfigurasi terbaru yang tersedia ke VM selama perbaikan VM. Untuk mengetahui informasi selengkapnya, lihat Menerapkan update konfigurasi selama perbaikan.
Jika Anda hanya perlu mengubah ukuran MIG, baca dokumentasi untuk mengetahui cara menambahkan atau menghapus VM di MIG. Jika Anda ingin mempelajari cara mengonfigurasi fitur MIG, lihat dokumen untuk autoscaling, autohealing, load balancing , dan workload stateful.
Sebelum memulai
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Komponen konfigurasi untuk VM di MIG
Anda mengonfigurasi VM di MIG melalui komponen berikut:
Komponen | Properti | Kasus penggunaan |
---|---|---|
Template instance | Jenis mesin, boot disk image, label, skrip startup, dan properti VM lainnya | Wajib: Gunakan template instance untuk menentukan properti instance wajib dan
opsional untuk semua VM dalam grup. Opsional: Jika ingin melakukan pengujian canary konfigurasi VM kedua, Anda dapat menambahkan template instance kedua ke grup dan menerapkannya ke subset VM di grup. |
Konfigurasi semua instance | Label dan metadata | Opsional: Gunakan konfigurasi semua instance untuk mengganti properti template instance dengan cepat untuk semua VM dalam grup. |
Konfigurasi stateful | Disk, alamat IP, dan metadata stateful | Opsional: Jika Anda perlu mendukung workload stateful, tambahkan konfigurasi stateful ke VM dalam grup. |
Jika memperbarui konfigurasi apa pun untuk grup melalui komponen tersebut, Anda harus menerapkan konfigurasi terbaru ke VM yang ada dalam grup agar konfigurasi yang diperbarui efektif.
Metode untuk menerapkan konfigurasi baru ke VM yang ada
Setelah mengupdate konfigurasi VM MIG, Anda dapat menerapkan konfigurasi baru ke VM yang ada di grup menggunakan metode berikut:
- Otomatis (proaktif): Gunakan metode ini jika Anda ingin MIG menerapkan konfigurasi baru secara otomatis ke semua atau subset VM yang ada dalam grup. Tingkat gangguan pada VM yang berjalan bergantung pada kebijakan update yang Anda konfigurasikan. Anda dapat menggunakan metode ini untuk melakukan update canary pada template instance baru. Untuk menggunakan metode ini, setel jenis update MIG ke "proactive".
- Selektif (oportunistik): Gunakan metode ini jika Anda ingin menerapkan update secara manual, atau jika ingin mengupdate semua VM yang ada di grup sekaligus. Anda akan menargetkan setiap atau semua VM untuk diupdate ke konfigurasi terbaru. Untuk menggunakan metode ini, tetapkan jenis update MIG ke "opportunistic".
- Pembuatan ulang VM: Menerapkan konfigurasi baru dengan membuat ulang VM tertentu.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan jenis update MIG, lihat Menyiapkan update proaktif atau oportunistik.
Otomatis (proaktif)
Jenis update otomatis juga dikenal sebagai jenis update proaktif. Saat Anda menetapkan jenis update MIG ke proaktif, MIG akan otomatis menerapkan konfigurasi terbaru ke VM sesuai kebutuhan.
Menetapkan jenis update MIG sebagai proaktif menawarkan dua keuntungan utama:
- Peluncuran update terjadi secara otomatis sesuai spesifikasi Anda, tanpa perlu input tambahan setelah permintaan awal. Anda dapat menentukan kecepatan deployment, tingkat gangguan pada layanan Anda, dan cakupan update.
- Anda dapat mengotomatiskan peluncuran parsial, yang memungkinkan pengujian canary.
Untuk mempelajari cara menetapkan jenis update MIG, lihat Menyiapkan update proaktif atau oportunistik.
Untuk mengetahui informasi selengkapnya tentang peluncuran otomatis, lihat Menerapkan update konfigurasi VM secara otomatis di MIG.
Selektif (oportunistik)
Jenis update selektif juga dikenal sebagai jenis update oportunistik. Jika Anda menetapkan jenis update MIG ke oportunistik, MIG akan menerapkan konfigurasi baru ke VM yang ada hanya saat Anda secara selektif menargetkan VM tertentu untuk diupdate.
Menetapkan jenis update MIG ke oportunistik menawarkan keuntungan berikut:
- Anda dapat memilih VM yang ingin diupdate.
- Anda dapat mengontrol pengaturan waktu dan urutan pembaruan.
- Anda dapat menggunakan gcloud CLI atau REST untuk langsung mengupdate semua instance.
Dalam skenario tertentu, jenis update selektif berguna karena Anda tidak ingin menyebabkan ketidakstabilan pada sistem jika dapat dihindari. Misalnya, pertimbangkan hal berikut:
Salah satu VM di MIG Anda tidak aktif dan perlu diperbaiki, tetapi Anda tidak ingin konfigurasinya berubah. Jika Anda menetapkan jenis update MIG ke oportunistik dan Anda tidak menerapkan update selama perbaikan secara paksa, Compute Engine akan memperbaiki VM menggunakan konfigurasi yang sama dengan yang digunakan sebelumnya untuk membuat VM tersebut, meskipun template instance aslinya sudah tidak ada lagi.
Anda memiliki MIG yang diskalakan otomatis dan ingin menerapkan update yang tidak begitu penting tanpa keadaan mendesak. Guna memastikan bahwa Compute Engine tidak merusak VM yang ada untuk menerapkan update, tetapkan jenis update MIG ke oportunistik. Saat melakukan penskalaan, autoscaler akan menghentikan VM dengan konfigurasi lama. Saat penyebaran skala, grup akan membuat VM dengan konfigurasi terbaru.
Untuk mempelajari cara menetapkan jenis update MIG, lihat Menyiapkan update proaktif atau oportunistik.
Untuk mengetahui informasi selengkapnya tentang mengupdate VM secara selektif, baca Menerapkan update konfigurasi VM secara selektif di MIG.
Pembuatan ulang VM
Anda dapat membuat ulang setiap VM di MIG. Jika Anda melakukannya, MIG akan menerapkan konfigurasi terbaru yang belum diterapkan ke VM tersebut. Untuk mengetahui informasi selengkapnya, lihat Membuat ulang VM di MIG.
Menyiapkan pembaruan proaktif atau oportunistik
Untuk menerapkan konfigurasi baru ke VM yang ada secara otomatis, tetapkan jenis update MIG ke "proactive". Untuk menerapkan konfigurasi baru ke VM yang ada hanya saat Anda memilih VM yang akan diupdate, tetapkan jenis update MIG ke "opportunistic".
Gunakan konsol Google Cloud, Google Cloud CLI, atau REST.
Konsol
Di konsol Google Cloud, buka halaman Instance groups.
Pilih MIG yang ingin diperbarui.
Di bagian atas halaman, klik Update VM.
Guna menetapkan template yang berbeda untuk grup, di bagian New template, pilih template instance yang ingin Anda gunakan.
Di bagian Update configuration, pilih update otomatis atau selektif.
gcloud
Gunakan perintah rolling-action start-update
dan setel flag --type
ke opportunistic
atau proactive
.
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --type=TYPE
Anda juga dapat menggunakan
perintah update
beta dan menyertakan flag --update-policy-type
.
gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \ --update-policy-type=TYPE
Ganti kode berikut:
INSTANCE_GROUP_NAME
: nama grupNEW_TEMPLATE
: nama template baru untuk grupTYPE
: jenis update,opportunistic
atauproactive
REST
Panggil metode patch
pada resource miG
tingkat zona atau
regional.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "TYPE" # Choose an opportunistic or proactive update }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
Ganti kode berikut:
PROJECT_ID
: project tempat MIG berada.REGION
: region tempat MIG Anda berada. Untuk MIG tingkat zona, gantiregions/REGION
denganzones/ZONE
.INSTANCE_GROUP_NAME
: nama grup.NEW_TEMPLATE
: nama template baru untuk grup.TYPE
: jenis update,OPPORTUNISTIC
atauPROACTIVE
.
Untuk mempelajari lebih lanjut tentang cara menetapkan template baru dan menerapkan template tersebut ke VM baru dan yang sudah ada di MIG, lihat halaman berikut:
- Menerapkan update konfigurasi VM secara otomatis di MIG
- Menerapkan update konfigurasi VM secara selektif di MIG
Periksa jenis kebijakan pembaruan grup Anda
Anda dapat melihat jenis kebijakan update MIG yang saat ini dikonfigurasi ("oportunistik" atau "proaktif") dan setelan kebijakan update lainnya menggunakan gcloud CLI atau REST.
gcloud
Gunakan perintah describe
dan sertakan flag --format
untuk hanya mencantumkan setelan updatePolicy
.
gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \ --format="(updatePolicy)"
REST
Buat permintaan GET
pada MIG tingkat zona atau regional, lalu centang kolom updatePolicy
.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
Untuk mengubah jenis kebijakan, lihat Menyiapkan update proaktif atau oportunistik.
Update untuk VM yang ditangguhkan dan dihentikan
Jika telah menangguhkan dan menghentikan pool VM dalam MIG, Anda dapat mengupdate secara selektif (oportunistik) terhadap VM yang ditangguhkan atau menghentikan VM seperti Anda mengupdate VM lain yang sedang berjalan. Jika Anda mengonfigurasi update otomatis (proaktif), MIG akan mengupdate VM dalam urutan berikut:
- Menjalankan, menangguhkan, dan menghentikan VM
- VM dengan status
SUSPENDING
atauSTOPPING
Untuk update otomatis, MIG menghitung lonjakan maksimum dan maksimum tidak tersedia berdasarkan jumlah target VM yang berjalan saja, dan tidak mempertimbangkan VM di kumpulan standby.
Jika update otomatis mengharuskan penggantian VM dalam grup, MIG akan melakukan hal berikut:
- Menghapus VM yang ditangguhkan dan dihentikan.
- Membuat VM baru dengan template instance baru.
- Melakukan proses inisialisasi.
- Menangguhkan atau menghentikan VM.
Jika update otomatis hanya memerlukan pemuatan ulang atau mulai ulang VM dalam grup, MIG akan melakukan hal berikut:
- Melanjutkan atau memulai VM.
- Melakukan update pada VM saat VM berjalan.
- Melakukan proses inisialisasi.
- Menangguhkan atau menghentikan VM.
Update canary
Jika Anda ingin memulai update canary pada MIG yang telah ditangguhkan atau menghentikan VM, hal berikut akan berlaku:
- Dalam mode kebijakan standby
manual
, MIG hanya mengupdate VM yang berjalan berdasarkan jumlah atau persentase VM yang ingin Anda terapkan update. VM yang ditangguhkan dan dihentikan akan tetap berada di versi sebelumnya. - Dalam mode kebijakan standby
scale-out-pool
, Anda tidak dapat memulai update canary di MIG.
Hubungan antara kolom versions
dan instanceTemplate
Jika Anda menggunakan REST, sebaiknya gunakan kolom instanceGroupManagers.versions
dan regionInstanceGroupManagers.versions
guna mengonfigurasi template instance untuk MIG zona dan regional.
Kolom instanceTemplate
lama memiliki fungsi yang tumpang-tindih dengan
kolom versions
karena kedua kolom tersebut memungkinkan Anda menentukan template instance
yang digunakan oleh MIG untuk membuat VM. Namun, hanya kolom versions
yang memungkinkan Anda
menentukan konfigurasi dua template (canary) lanjutan.
Untuk kompatibilitas mundur, MIG tetap mendukung
penetapan kolom instanceTemplate
level teratas, meskipun sebaiknya Anda
beralih ke hanya menggunakan kolom versions
. Menggunakan kolom instanceTemplate
level teratas dan kolom versions
secara bersamaan dapat menyebabkan ambiguitas dan kebingungan.
Jika Anda menentukan kolom instanceTemplate
dan kolom versions
saat memanggil metode update()
atau patch()
, ada tiga kemungkinan hasil:
Anda menetapkan kedua kolom ke nilai yang sama.
Ini adalah permintaan yang valid. Dalam kasus ini, hal ini tidak akan menimbulkan ambiguitas, dan template instance yang baru akan diterapkan ke MIG.
Misalnya, dalam permintaan berikut,
instanceTemplate
level teratas dan kolomversions
akan menentukan template instance yang sama yang berbeda dari template yang ada saat ini, sehingga MIG akan diperbarui ke template instance baru:{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Anda menetapkan kedua kolom ke nilai yang tidak cocok, tetapi hanya satu nilai yang berbeda dari template instance saat ini di MIG.
Ini adalah permintaan yang valid. Kolom yang berbeda dari setelan saat ini dianggap sebagai nilai yang diinginkan. Misalnya, Anda memanggil metode
update()
dan menyediakan kedua kolom, tetapi hanya satu kolom yang diperbarui:{ "instanceTemplate": "global/instanceTemplates/CURRENT_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Anda menetapkan kedua kolom ke nilai yang tidak cocok, dan kedua nilai berbeda dari template instance saat ini di MIG.
Setelan ini tidak valid dan akan menampilkan error karena tidak ada intent yang jelas.
{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/A_DIFFERENT_NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Kolom versions
, kolom instanceTemplate
, dan metode get()
Jika Anda hanya menentukan satu template instance, baik melalui kolom instanceTemplate
level teratas maupun melalui kolom versions
atau melalui keduanya, metode get()
akan menampilkan kedua kolom tersebut dalam responsnya. Hal ini membuat kolom versions
baru kompatibel dengan versi sebelumnya. Selama Anda menentukan satu template
instance di salah satu kolom ini, tidak akan ada perubahan pada apa yang ditampilkan metode
get()
di kolom instanceTemplate
.
Jika kolom versions
memiliki dua template instance yang ditentukan, metode get()
akan menampilkan kolom instanceTemplate
level teratas yang kosong. Tidak ada cara untuk
mengekspresikan secara jelas konfigurasi template dua instance canary di
kolom instanceTemplate
level teratas, sehingga kolom ini tidak digunakan selama update
canary.
Kolom versions
dan metode setInstanceTemplate()
Untuk kompatibilitas mundur, metode setInstanceTemplate()
berperilaku seperti
sebelumnya, sehingga Anda dapat mengubah template yang digunakan
MIG untuk membuat VM. Saat Anda memanggil metode ini, kolom
versions
akan diganti dengan template instance yang ditentukan oleh
metode setInstanceTemplate()
.
Metode setInstanceTemplate()
juga menetapkan updatePolicy
ke
OPPORTUNISTIC
. Hal ini mencegah MIG men-deploy template instance secara aktif yang tidak ditentukan secara eksplisit di kolom versions
.
Langkah selanjutnya
- Pelajari lebih lanjut tentang cara meluncurkan template instance baru secara otomatis ke MIG.
- Pelajari lebih lanjut tentang cara mengupdate VM secara selektif di MIG.
- Lihat informasi tentang MIG Anda dan VM-nya.