Membuat dan menerapkan kebijakan penempatan spread ke VM


Dokumen ini menjelaskan cara meningkatkan keandalan instance virtual machine (VM) Anda dengan membuat dan menerapkan kebijakan penempatan spread pada instance tersebut. Untuk mengetahui kebijakan penempatan lebih lanjut, termasuk batasan dan harganya, lihat Ringkasan kebijakan penempatan.

Kebijakan penempatan spread menentukan bahwa VM Anda harus didistribusikan di seluruh domain ketersediaan yang berbeda. Distribusi ini membantu mengurangi gangguan khusus lokasi, seperti error hardware, dan berguna saat menjalankan workload berskala besar, terdistribusi, dan direplikasi seperti Hadoop Distributed File System (HDFS), Cassandra, atau Kafka.

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:

    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.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat dan menerapkan kebijakan penempatan spread ke VM, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat dan menerapkan kebijakan penempatan spread ke VM. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat dan menerapkan kebijakan penempatan spread ke VM:

  • Untuk membuat kebijakan penempatan: compute.resourcePolicies.create pada project
  • Untuk menerapkan kebijakan penempatan ke VM yang ada: compute.instances.addResourcePolicies pada project
  • Untuk membuat VM:
    • compute.instances.create pada project
    • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
    • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly pada snapshot
    • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly di template instance
    • Untuk menetapkan jaringan lama ke VM: compute.networks.use di project
    • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada project
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
    • Untuk menentukan subnet bagi VM: compute.subnetworks.use di project atau di subnet yang dipilih
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
    • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata pada project
    • Untuk menetapkan tag untuk VM: compute.instances.setTags di VM
    • Untuk menetapkan label untuk VM: compute.instances.setLabels di VM
    • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
    • Untuk membuat disk baru bagi VM: compute.disks.create pada project
    • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
    • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk
  • Untuk membuat template instance: compute.instanceTemplates.create pada project
  • Untuk membuat grup instance terkelola (MIG): compute.instanceGroupManagers.create pada project

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Membuat kebijakan penempatan spread

Kecuali jika Anda ingin menguji penerapan kebijakan penempatan spread ke VM, Google Cloud merekomendasikan untuk membuat kebijakan penempatan spread dengan dua atau beberapa domain ketersediaan. Hal ini mengurangi risiko semua VM terpengaruh oleh satu error hardware. Untuk informasi selengkapnya, lihat Tentang kebijakan penempatan spread.

Untuk membuat kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk membuat kebijakan penempatan spread, gunakan perintah gcloud compute resource-policies create group-placement dengan flag --availability-domain-count.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count=DOMAIN_COUNT \
    --region=REGION

Ganti kode berikut:

  • POLICY_NAME: nama kebijakan penempatan spread.

  • DOMAIN_COUNT: jumlah domain ketersediaan yang berbeda untuk menempatkan VM Anda. Nilainya harus di antara 1 dan 8.

  • REGION: region tempat membuat kebijakan penempatan.

REST

Untuk membuat kebijakan penempatan spread, buat permintaan POST ke metode resourcePolicies.insert. Dalam isi permintaan, sertakan kolom availabilityDomainCount.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat membuat kebijakan penempatan.

  • REGION: region tempat membuat kebijakan penempatan.

  • POLICY_NAME: nama kebijakan penempatan spread.

  • DOMAIN_COUNT: jumlah domain ketersediaan yang berbeda untuk menempatkan VM Anda. Nilainya harus di antara 1 dan 8.

Menerapkan kebijakan penempatan spread

Anda dapat menerapkan kebijakan penempatan spread ke VM atau MIG yang ada, atau saat membuat VM, template instance, atau MIG.

Untuk menerapkan kebijakan penempatan spread ke resource Compute Engine, pilih salah satu metode berikut:

Setelah menerapkan kebijakan penempatan spread ke VM, Anda dapat memverifikasi domain ketersediaan tempat VM berada dengan melihat detail VM dan memeriksa nilai kolom availabilityDomain.

Menerapkan kebijakan ke VM yang ada

Sebelum menerapkan kebijakan penempatan spread ke VM yang ada, pertimbangkan hal berikut:

  • Jika kebijakan penempatan spread menentukan beberapa domain ketersediaan, Anda dapat menerapkan kebijakan tersebut ke VM tanpa menghentikan VM. Namun, VM mungkin perlu dipindahkan ke domain ketersediaan yang berbeda. Selama proses ini, Compute Engine akan menghentikan atau memigrasikan langsung VM berdasarkan kebijakan pemeliharaan host-nya.

  • VM dan kebijakan penempatan spread harus berada di region yang sama. Misalnya, jika kebijakan penempatan berada di region us-central1, VM harus berada di zona di us-central1. Jika Anda perlu memigrasikan VM ke region lain, lihat Memindahkan VM antar-zona atau region.

Jika Anda ingin menentukan domain ketersediaan tempat VM akan ditempatkan, terapkan kebijakan penempatan ke VM dengan memperbarui propertinya. Saat memperbarui properti VM, pastikan untuk menyertakan kolom resourcePolicies dan scheduling.availabilityDomain.

Untuk menerapkan kebijakan penempatan spread ke VM yang ada, pilih salah satu opsi berikut:

gcloud

Untuk menerapkan kebijakan penempatan spread ke VM yang ada, gunakan perintah gcloud compute instances add-resource-policies.

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti kode berikut:

  • VM_NAME: nama VM yang ada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

  • ZONE: zona tempat VM berada.

REST

Untuk menerapkan kebijakan penempatan spread ke VM yang ada, buat permintaan POST ke metode instances.addResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan spread dan VM berada.

  • ZONE: zona tempat VM berada.

  • VM_NAME: nama VM yang ada.

  • REGION: region tempat kebijakan penempatan spread berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Menerapkan kebijakan saat membuat VM

Anda hanya dapat membuat VM yang menentukan kebijakan penempatan spread di region yang sama dengan kebijakan penempatan.

Untuk membuat VM yang menentukan kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk membuat VM yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instances create dengan flag --resource-policies.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti kode berikut:

  • VM_NAME: nama VM yang akan dibuat.

  • MACHINE_TYPE: jenis mesin untuk VM.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

  • ZONE: zona tempat untuk membuat VM.

Secara opsional, untuk menentukan domain ketersediaan tempat VM akan dibuat, sertakan flag --availability-domain.

gcloud compute instances create VM_NAME \
    --availability-domain=DOMAIN_NUMBER \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan tempat VM Anda akan ditempatkan. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan spread. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

REST

Untuk membuat VM yang menentukan kebijakan penempatan spread, buat permintaan POST ke metode instances.insert. Dalam isi permintaan, sertakan kolom resourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan spread berada.

  • ZONE: zona tempat membuat VM dan tempat jenis mesin berada. Anda hanya dapat menentukan zona dalam region kebijakan penempatan spread.

  • VM_NAME: nama VM yang akan dibuat.

  • MACHINE_TYPE: jenis mesin untuk VM.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.

  • REGION: region tempat kebijakan penempatan spread berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Atau, untuk menentukan domain ketersediaan tempat VM akan dibuat, sertakan kolom availabilityDomain dalam isi permintaan.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "availabilityDomain": DOMAIN_NUMBER
  }
}

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan tempat VM Anda akan ditempatkan. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan spread. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat VM, lihat Membuat dan memulai instance VM.

Menerapkan kebijakan saat membuat VM secara massal

Sebelum membuat VM secara massal yang menentukan kebijakan penempatan spread, pastikan hal berikut:

  • Anda hanya dapat membuat VM secara massal yang menentukan kebijakan penempatan spread di region yang sama dengan kebijakan penempatan.

  • Saat membuat VM secara massal dengan kebijakan penempatan spread, Anda dapat secara opsional menentukan domain ketersediaan tempat VM akan dibuat. Hindari membuat semua VM Anda di satu domain. Jika tidak, Anda tidak mengurangi risiko satu error hardware yang memengaruhi semua VM Anda.

Untuk membuat VM secara massal yang menentukan kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk membuat VM secara massal yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instances bulk create dengan flag --resource-policies.

Misalnya, untuk membuat VM secara massal di satu zona dan menentukan pola nama untuk VM, jalankan perintah berikut:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat.

  • MACHINE_TYPE: jenis mesin untuk VM.

  • NAME_PATTERN: pola nama untuk VM. Untuk mengganti urutan angka dalam nama VM, gunakan urutan karakter hash (#). Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan VM dengan nama yang dimulai dengan vm-1, vm-2, dan berlanjut hingga jumlah VM yang ditentukan oleh COUNT.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

  • ZONE: zona tempat membuat VM secara massal.

Secara opsional, untuk menentukan domain ketersediaan tempat VM akan dibuat secara massal, sertakan flag --availability-domain.

gcloud compute instances bulk create \
    --availability-domain=DOMAIN_NUMBER \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan tempat VM Anda akan ditempatkan. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan spread. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

REST

Untuk membuat VM secara massal yang menentukan kebijakan penempatan spread, buat POST ke metode instances.bulkInsert. Dalam isi permintaan, sertakan kolom resourcePolicies.

Misalnya, untuk membuat VM secara massal di satu zona dan menentukan pola nama untuk VM, buat permintaan POST sebagai berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan spread berada.

  • ZONE: zona tempat membuat VM secara massal.

  • COUNT: jumlah VM yang akan dibuat.

  • NAME_PATTERN: pola nama untuk VM. Untuk mengganti urutan angka dalam nama VM, gunakan urutan karakter hash (#). Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan VM dengan nama yang dimulai dengan vm-1, vm-2, dan berlanjut hingga jumlah VM yang ditentukan oleh COUNT.

  • MACHINE_TYPE: jenis mesin untuk VM.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Secara opsional, untuk menentukan domain ketersediaan tempat VM akan dibuat secara massal, sertakan kolom availabilityDomain dalam isi permintaan.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan tempat VM Anda akan ditempatkan. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan spread. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat VM secara massal, lihat Membuat VM secara massal.

Menerapkan kebijakan saat membuat template instance

Sebelum membuat template instance yang menentukan kebijakan penempatan spread, pastikan hal-hal berikut:

  • Jika Anda ingin membuat template instance regional, buat template di region yang sama dengan kebijakan penempatan spread. Jika tidak, pembuatan template instance akan gagal.

  • Saat membuat template instance, Anda dapat menentukan domain ketersediaan tempat VM akan dibuat secara opsional. Hindari membuat semua VM di satu domain. Jika tidak, Anda tidak mengurangi risiko satu error hardware yang memengaruhi semua VM Anda.

Setelah membuat template instance yang menentukan kebijakan penempatan spread, Anda dapat menggunakan template tersebut untuk melakukan hal berikut:

Untuk membuat template instance yang menentukan kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk membuat template instance yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instance-templates create dengan flag --resource-policies.

Misalnya, untuk membuat template instance global yang menentukan kebijakan penempatan spread, jalankan perintah berikut:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • MACHINE_TYPE: jenis mesin untuk VM yang dibuat menggunakan template instance.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Secara opsional, untuk menentukan domain ketersediaan tempat VM akan dibuat, sertakan flag --availability-domain.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --availability-domain=DOMAIN_NUMBER  \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan untuk membuat VM. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

REST

Untuk membuat template instance yang menentukan kebijakan penempatan spread, buat permintaan POST ke salah satu metode berikut:

Dalam isi permintaan, tentukan kolom resourcePolicies.

Misalnya, untuk membuat template instance global yang menentukan kebijakan penempatan spread, buat permintaan POST sebagai berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan spread berada.

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • IMAGE_PROJECT: project image yang berisi image—misalnya, debian-cloud. Untuk informasi selengkapnya tentang project image yang didukung, lihat Image publik.

  • IMAGE: tentukan salah satu dari hal berikut:

    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240617.

    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, versi terbaru dalam kelompok image Debian 12 akan digunakan. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.

  • MACHINE_TYPE: jenis mesin untuk VM yang dibuat menggunakan template instance.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Secara opsional, untuk menentukan domain ketersediaan tempat VM akan dibuat, sertakan kolom availabilityDomain dalam isi permintaan.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Ganti DOMAIN_NUMBER dengan nomor domain ketersediaan untuk membuat VM. Nilainya harus antara 1 dan jumlah domain yang ditentukan dalam kebijakan penempatan. Untuk memverifikasi jumlah domain dalam kebijakan penempatan sebaran, lihat detail kebijakan penempatan.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat template instance, lihat Membuat template instance.

Menerapkan kebijakan ke VM di MIG

Setelah membuat template instance yang menentukan kebijakan penempatan spread, Anda dapat menggunakan template tersebut untuk melakukan hal berikut:

Menerapkan kebijakan saat membuat MIG

Anda hanya dapat membuat VM yang menentukan kebijakan penempatan spread jika VM tersebut berada di region yang sama dengan kebijakan penempatan.

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instance-groups managed create.

Misalnya, untuk membuat MIG zona menggunakan template instance global yang menentukan kebijakan penempatan spread, jalankan perintah berikut:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama MIG yang akan dibuat.

  • SIZE: ukuran MIG.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan spread.

  • ZONE: zona tempat membuat MIG, yang harus berada dalam region tempat kebijakan penempatan spread berada.

REST

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan spread, buat permintaan POST ke salah satu metode berikut:

Misalnya, untuk membuat MIG zona menggunakan template instance global yang menentukan kebijakan penempatan spread, buat permintaan POST sebagai berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan spread dan template instance yang menentukan kebijakan penempatan berada.

  • ZONE: zona tempat membuat MIG, yang harus berada dalam region tempat kebijakan penempatan spread berada.

  • INSTANCE_GROUP_NAME: nama MIG yang akan dibuat.

  • SIZE: ukuran MIG.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan spread.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk membuat MIG, lihat Skenario dasar untuk membuat MIG.

Menerapkan kebijakan ke MIG yang ada

Anda hanya dapat menerapkan kebijakan penempatan yang ringkas ke MIG yang ada jika MIG tersebut berada di region yang sama dengan kebijakan penempatan atau, untuk MIG zona, di zona dalam region yang sama dengan kebijakan penempatan.

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan spread, pilih salah satu opsi berikut:

gcloud

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instance-groups managed rolling-action start-update.

Misalnya, untuk memperbarui MIG zona agar menggunakan template instance yang menentukan kebijakan penempatan spread, dan mengganti VM yang ada dari MIG dengan VM baru yang menentukan properti template, jalankan perintah berikut:

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama MIG yang ada.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan spread.

  • ZONE: zona tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan spread ke MIG yang berada dalam region yang sama dengan kebijakan penempatan.

REST

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan spread, dan otomatis menerapkan properti template serta kebijakan penempatan ke VM yang ada di MIG, buat permintaan PATCH ke salah satu metode berikut:

Misalnya, untuk memperbarui MIG zona agar menggunakan template instance global yang menentukan kebijakan penempatan spread, dan mengganti VM yang ada dari MIG dengan VM baru yang menentukan properti template, buat permintaan PATCH berikut:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Ganti kode berikut:

  • PROJECT_ID: ID project yang Anda gunakan untuk membuat MIG yang sudah ada, kebijakan penempatan spread, dan template instance yang menentukan kebijakan penempatan spread.

  • ZONE: zona tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan spread ke MIG yang berada dalam region yang sama dengan kebijakan penempatan.

  • INSTANCE_GROUP_NAME: nama MIG yang ada.

  • INSTANCE_TEMPLATE_NAME: nama template instance global yang ada dan menentukan kebijakan penempatan spread.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi untuk mengupdate VM di MIG, baca Memperbarui dan menerapkan konfigurasi baru ke VM di MIG.

Apa langkah selanjutnya?