Memperbaiki VM di zona alternatif

Dokumen ini menjelaskan cara mengizinkan grup instance terkelola (MIG) regional untuk memperbaiki instance virtual machine (VM) di zona alternatif saat MIG tidak dapat memperbaiki VM di zona aslinya. Untuk mempelajari perbaikan di MIG lebih lanjut, lihat Tentang memperbaiki VM untuk ketersediaan tinggi.

Saat membuat MIG regional, Anda memilih satu atau beberapa zona tempat MIG mendistribusikan VM-nya. Secara default, jika VM di MIG gagal, MIG akan mencoba memperbaiki VM tersebut di zona aslinya. Anda dapat secara opsional mengizinkan MIG untuk memperbaiki VM tersebut di salah satu zona lain yang dipilih, yang berguna jika MIG tidak dapat memperbaiki VM di zona aslinya. MIG memilih zona alternatif berdasarkan kapasitas dan kuota yang tersedia.

Batasan

Saat Anda mengonfigurasi MIG regional untuk memperbaiki VM di zona alternatif, batasan berikut berlaku:

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Google Cloud konsol untuk mengakses Google Cloud layanan dan API, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu .

  • Tetapkan region dan zona default.
  • Terraform

    Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Instal Google Cloud CLI.

    2. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu .

    3. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

      gcloud auth application-default login

      Anda tidak perlu melakukannya jika menggunakan Cloud Shell.

      Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    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.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu .

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

Mengizinkan perbaikan di zona alternatif

Untuk mengizinkan MIG memperbaiki VM di zona alternatif, pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Instance groups.

    Buka Instance groups

  2. Jika Anda sudah memiliki MIG, lakukan hal berikut:

    1. Klik nama MIG.
    2. Klik Edit.
  3. Jika Anda belum memiliki MIG, lakukan hal berikut:

    1. Klik Create instance group.
    2. Masukkan Nama.
    3. Pilih Instance template.
    4. Di bagian Location, pilih Multiple zones, lalu pilih region dan zona.
    5. Di menu drop-down Target distribution shape, pilih Balanced atau Any.

      • Jika Anda memilih Balanced, di dialog yang muncul, klik Disable instance redistribution.

      • Jika Anda ingin memilih Any, Anda harus menghapus konfigurasi penskalaan otomatis terlebih dahulu. Untuk menghapus penskalaan otomatis, di menu drop-down Autoscaling mode, klik Delete autoscaling configuration.

  4. Di bagian VM instance lifecycle, pastikan kolom berikut ditetapkan sebagai berikut:

    1. Daftar Default action on failure ditetapkan ke Repair instance.

    2. Updates during VM instance repair ditetapkan ke Update the instance configuration.

    3. Di bagian Change zone during VM instance repair, centang kotak Allow repair of VMs in an alternate zone.

  5. Untuk setelan lainnya, Anda dapat menggunakan nilai default atau mengubah kolom.

  6. Setelah selesai, klik Save untuk MIG yang sudah ada atau Create untuk MIG baru.

gcloud

Untuk mengonfigurasi MIG yang sudah ada agar memperbaiki VM di zona alternatif, gunakan perintah beta update:

gcloud beta compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

Untuk membuat MIG yang dapat memperbaiki VM di zona alternatif, gunakan perintah createbeta:

gcloud beta compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

Ganti kode berikut:

  • MIG_NAME: nama MIG.
  • INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:
    • Untuk template instance regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Untuk template instance global: INSTANCE_TEMPLATE_ID
  • SIZE: ukuran target MIG.
  • ZONES: daftar zona di region tempat Anda ingin membuat VM di MIG.
  • SHAPE: bentuk distribusi target. Nilai ini dapat berupa balanced atau any.
  • REGION: region tempat MIG berada.

Terraform

Jika Anda belum membuat template instance, yang menentukan jenis mesin, boot disk image, jaringan, dan properti VM lainnya yang Anda inginkan untuk setiap VM di MIG Anda, buat template instance.

Untuk membuat MIG yang dapat memperbaiki VM di zona alternatif, gunakan resource google_compute_region_instance_group_manager resource.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST

Untuk mengonfigurasi MIG yang sudah ada agar memperbaiki VM di zona alternatif, gunakan metode beta regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

Untuk membuat MIG yang dapat memperbaiki VM di zona alternatif, gunakan metode beta regionInstanceGroupManagers.insert:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: Project ID Anda .
  • REGION: region tempat MIG berada.
  • MIG_NAME: nama MIG.
  • INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:
    • Untuk template instance regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Untuk template instance global: INSTANCE_TEMPLATE_ID
  • SIZE: ukuran target MIG.
  • SHAPE: bentuk distribusi target. Nilai ini dapat berupa BALANCED atau ANY.

Tidak mengizinkan perbaikan di zona alternatif

Jika Anda mengonfigurasi MIG untuk memperbaiki VM di zona alternatif, Anda dapat memulihkan setelan default tempat MIG memperbaiki VM di zona aslinya.

Untuk tidak mengizinkan perbaikan di zona alternatif, pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Instance groups.

    Buka Instance groups

  2. Klik nama MIG.

  3. Klik Edit.

  4. Buka bagian VM instance lifecycle.

  5. Di bagian Change zone during VM instance repair, hapus centang kotak Allow repair of VMs in an alternate zone.

  6. Klik Save.

gcloud

Untuk tidak mengizinkan perbaikan di zona alternatif, gunakan beta update perintah:

gcloud beta compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

Ganti kode berikut:

  • MIG_NAME: nama MIG.
  • REGION: region tempat MIG berada.

REST

Untuk tidak mengizinkan perbaikan di zona alternatif, gunakan metode beta regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

Ganti kode berikut:

  • PROJECT_ID: Project ID Anda .
  • REGION: region tempat MIG berada.
  • MIG_NAME: nama MIG.

Langkah berikutnya