Menerapkan update konfigurasi VM secara selektif di MIG


Dokumen ini menjelaskan cara menerapkan update konfigurasi secara selektif ke instance virtual machine (VM) dalam grup instance terkelola (MIG).

Compute Engine mengelola VM dalam MIG berdasarkan komponen konfigurasi yang Anda gunakan: template instance, konfigurasi semua instance opsional, dan konfigurasi stateful opsional.

Setiap kali Anda mengupdate konfigurasi VM MIG dengan mengubah komponen tersebut, Compute Engine akan otomatis menerapkan konfigurasi yang diupdate ke VM baru yang ditambahkan ke grup.

Untuk menerapkan konfigurasi terupdate ke VM yang ada, Anda dapat menyiapkan update selektif, yang juga dikenal sebagai jenis update "oportunistik". Jenis update ini menawarkan keunggulan 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 VM.

Atau, jika Anda ingin mengotomatiskan peluncuran konfigurasi baru ke semua atau ke subset acak VM dalam MIG, lihat Menerapkan update konfigurasi VM secara otomatis di MIG. Untuk membantu Anda membuat keputusan, baca Metode untuk menerapkan konfigurasi baru ke VM yang ada.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Menerapkan konfigurasi yang diupdate ke VM yang dipilih

Pastikan jenis kebijakan update grup Anda disetel ke "oportunistik" untuk mencegah MIG menerapkan konfigurasi VM baru secara otomatis ke VM yang sudah ada. Untuk mengetahui informasi selengkapnya, lihat Memeriksa jenis kebijakan update grup.

Kemudian, gunakan gcloud CLI atau REST untuk memperbarui konfigurasi MIG Anda dan menerapkan konfigurasi terbaru ke VM tertentu dalam grup atau ke semua VM dalam grup.

gcloud

Untuk menyiapkan template instance baru untuk grup, Anda dapat menggunakan perintah set-instance-template.

gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \
    --template=INSTANCE_TEMPLATE

Menerapkan konfigurasi ke VM tertentu

Untuk menerapkan konfigurasi yang diupdate ke VM tertentu, gunakan perintah update-instances dengan flag --instances.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAMES \
    --most-disruptive-allowed-action DISRUPTION_LEVEL \
    --minimal-action DISRUPTION_LEVEL

Menerapkan konfigurasi ke semua VM

Untuk menerapkan konfigurasi yang diupdate ke semua VM, gunakan perintah update-instances dengan flag --all-instances.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --all-instances \
    --most-disruptive-allowed-action DISRUPTION_LEVEL \
    --minimal-action DISRUPTION_LEVEL

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama MIG
  • INSTANCE_TEMPLATE: template instance baru
  • INSTANCE_NAMES: daftar VM tempat template akan diterapkan
  • DISRUPTION_LEVEL: level gangguan minimal atau maksimal: none, refresh, restart, atau replace
    • Tindakan minimal default adalah none
    • Tindakan default paling mengganggu yang diizinkan adalah replace

REST

Untuk menyiapkan template instance baru untuk grup Anda, panggil metode patch pada MIG zonal atau regional lalu perbarui kolom versions.instanceTemplate. Agar template baru tidak diluncurkan secara otomatis ke semua VM dalam grup, tetapkan kolom updatePolicy.type ke OPPORTUNISTIC.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "updatePolicy": {
    "type": "OPPORTUNISTIC"
  },
  "versions": [{
    "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
  }]
}

Menerapkan konfigurasi ke VM tertentu

Untuk menerapkan konfigurasi yang diupdate ke VM tertentu, panggil metode applyUpdatesToInstances untuk MIG zonal atau regional Anda dan tentukan daftar VM dalam permintaan.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
  "instances": [
    "zones/ZONE/instances/INSTANCE_NAME_1",
    "zones/ZONE/instances/INSTANCE_NAME_2"
  ],
  "minimalAction": DISRUPTION_LEVEL,
  "mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}

Menerapkan konfigurasi ke semua VM

Untuk menerapkan konfigurasi yang diupdate ke semua VM yang ada, tetapkan kolom allInstances ke true:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
  "allInstances": true,
  "minimalAction": DISRUPTION_LEVEL,
  "mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama grup
  • NEW_TEMPLATE: nama template baru
  • ZONE: zona instance yang akan diupdate
  • INSTANCE_NAME_1 dan INSTANCE_NAME_2: nama VM yang akan diupdate
  • DISRUPTION_LEVEL: level gangguan minimal atau maksimal: NONE, REFRESH, RESTART, atau REPLACE
    • Default minimalAction adalah NONE.
    • Default mostDisruptiveAllowedAction adalah REPLACE.

Serupa dengan metode grup instance terkelola lainnya, applyUpdatesToInstances berbasis intent, yang berarti menampilkan respons operasi. Operasi ini dapat memerlukan waktu beberapa saat sampai selesai.

Setelah membuat permintaan, Anda dapat memeriksa status untuk memverifikasi bahwa update selesai.

Mengontrol tingkat gangguan selama update selektif

Bergantung pada sifat update, update dapat mengganggu status instance. Misalnya, penggantian boot disk instance memerlukan penggantian instance. Anda dapat mengontrol tingkat gangguan selama update selektif dengan menetapkan opsi berikut:

  • Tindakan minimal: Gunakan opsi ini untuk meminimalkan gangguan sebanyak mungkin atau untuk menerapkan tindakan yang lebih mengganggu daripada yang diperlukan.

    • Untuk membatasi gangguan sebanyak mungkin, setel tindakan minimal ke NONE. Jika update Anda memerlukan tindakan yang lebih mengganggu, Compute Engine akan melakukan tindakan yang diperlukan untuk menjalankan update tersebut.
    • Untuk menerapkan tindakan yang lebih mengganggu daripada yang seharusnya, setel tindakan minimal ke RESTART atau REPLACE. Misalnya, Compute Engine tidak perlu memulai ulang VM untuk mengubah metadatanya. Namun, jika aplikasi Anda hanya membaca metadata instance saat VM dimulai ulang, Anda dapat menyetel tindakan minimal ke RESTART untuk mengambil perubahan metadata.
  • Tindakan paling mengganggu yang diizinkan: Gunakan opsi ini untuk mencegah update jika memerlukan gangguan lebih besar dari yang Anda mampu. Jika update memerlukan tindakan yang lebih mengganggu daripada yang Anda setel dengan flag ini, permintaan update akan gagal. Misalnya, jika Anda menetapkan tindakan paling mengganggu yang diizinkan ke RESTART, upaya untuk mengupdate boot disk image akan gagal karena update tersebut memerlukan pembuatan ulang instance, yang merupakan tindakan yang lebih mengganggu daripada mulai ulang.

Saat memperbarui VM yang dipilih, kedua opsi ini menerima nilai berikut:

NilaiDeskripsiProperti instance mana yang dapat diupdate?
NONEJangan mengganggu instance sama sekali.Tidak ada
REFRESHJangan hentikan instance.Disk tambahan, metadata instance, label, tag
RESTARTHentikan instance dan mulai lagi.Disk tambahan, metadata instance, label, tag, jenis mesin
REPLACEHapus dan buat kembali instance tersebut.Semua properti instance yang disimpan dalam template instance atau konfigurasi per instance

Tindakan paling mengganggu yang diizinkan tidak boleh lebih mengganggu daripada tindakan minimal.

Saat Anda mengupdate VM secara selektif, setelan default berikut akan berlaku:

  • Tindakan minimal default adalah NONE, yang membatasi gangguan sebanyak mungkin.
  • Tindakan default paling mengganggu yang diizinkan adalah REPLACE. Jika Anda tidak dapat menoleransi gangguan tersebut, setel tindakan paling mengganggu yang diizinkan agar tidak terlalu mengganggu.

Langkah berikutnya