Membuat dan menerapkan kebijakan penempatan tersebar ke VM


Dokumen ini menjelaskan cara membuat kebijakan penempatan spread dan menerapkannya ke satu atau beberapa instance virtual machine (VM) untuk meningkatkan keandalan.

Kebijakan penempatan spread menetapkan bahwa VM Anda harus ditempatkan berjauhan satu sama lain secara fisik dengan menempatkannya di domain ketersediaan yang berbeda. Gunakan kebijakan penempatan spread untuk memastikan bahwa VM Anda ditempatkan di hardware yang berbeda, sehingga mengurangi dampak kegagalan hardware yang mendasarinya atau mengoptimalkan migrasi langsung.

Anda dapat menerapkan kebijakan penempatan tersebar saat Anda melakukan hal berikut:

  • Membuat atau mengupdate VM.
  • Membuat VM secara massal.
  • Membuat template instance. Selanjutnya, template instance akan menerapkan kebijakan penempatan tersebar saat Anda menggunakannya untuk melakukan hal berikut:
    • Buat VM.
    • Membuat atau mengupdate grup instance terkelola (MIG).

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:

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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

Peran yang diperlukan

Agar 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 VM atau project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Peran bawaan ini berisi izin yang diperlukan untuk membuat dan menerapkan kebijakan penempatan spread ke VM. Untuk melihat izin yang benar-benar diperlukan, perluas 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 di project
  • Untuk menerapkan kebijakan penempatan ke VM yang ada: compute.instances.addResourcePolicies di project

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

Pembatasan

Selain pembatasan umum untuk kebijakan penempatan, kebijakan penempatan tersebar memiliki batasan berikut:

  • Anda hanya dapat menerapkan kebijakan penempatan spread untuk maksimum 8 VM.

  • Anda tidak dapat menerapkan kebijakan penempatan spread ke pemesanan VM.

  • Anda tidak dapat memverifikasi lokasi fisik VM.

Membuat kebijakan penempatan spread

Anda dapat membuat kebijakan penempatan tersebar menggunakan gcloud CLI dan REST.

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 yang akan dibuat.

  • DOMAIN_COUNT: jumlah domain ketersediaan yang berbeda untuk menempatkan VM Anda. Setiap domain memiliki sumber daya, pendingin, dan jaringan independen. Nilainya harus antara 2 dan 8, yang merupakan jumlah maksimum VM tempat Anda dapat menerapkan kebijakan penempatan spread.

  • REGION: region tempat membuat kebijakan.

REST

Untuk membuat kebijakan penempatan tersebar, 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 Anda ingin membuat kebijakan.

  • REGION: region tempat Anda ingin membuat kebijakan.

  • POLICY_NAME: nama kebijakan penempatan spread yang akan dibuat.

  • DOMAIN_COUNT: jumlah domain ketersediaan yang berbeda untuk menempatkan VM Anda. Setiap domain memiliki sumber daya, pendingin, dan jaringan independen. Nilainya harus antara 2 dan 8, yang merupakan jumlah maksimum VM tempat Anda dapat menerapkan kebijakan penempatan spread.

Menerapkan kebijakan penempatan spread

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

Untuk membuat resource Compute Engine yang menentukan kebijakan penempatan spread, atau menerapkan kebijakan penempatan spread ke VM yang ada, pilih salah satu metode berikut:

Menerapkan kebijakan penempatan spread ke VM yang ada

Anda dapat menerapkan kebijakan penempatan tersebar ke VM yang ada menggunakan gcloud CLI dan REST.

gcloud

Untuk menerapkan kebijakan penempatan spread ke VM yang ada, gunakan perintah gcloud compute instances add-resource-policies dengan flag --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, yang harus berada di region tempat kebijakan penempatan spread berada.

REST

Untuk menerapkan kebijakan penempatan tersebar ke VM yang ada, buat permintaan POST ke metode instances.addResourcePolicies. Dalam isi permintaan, sertakan kolom resourcePolicies.

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 sebar dan VM berada.

  • ZONE: zona tempat VM berada, yang harus berada di region tempat kebijakan penempatan spread berada.

  • VM_NAME: nama VM yang ada.

  • REGION: region tempat kebijakan penempatan spread berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Membuat VM yang menentukan kebijakan penempatan spread

Anda dapat membuat VM yang menentukan kebijakan penempatan penyebaran yang sudah ada menggunakan gcloud CLI dan REST.

gcloud

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

Misalnya, untuk membuat VM yang memiliki properti default dan menentukan kebijakan penempatan spread, jalankan perintah berikut:

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

Ganti kode berikut:

  • VM_NAME: nama VM yang akan dibuat.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

  • ZONE: zona tempat untuk membuat VM. Anda hanya dapat membuat VM di zona yang berada dalam region tempat kebijakan penempatan spread yang Anda tentukan berada.

REST

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

Misalnya, untuk membuat VM yang memiliki properti default dan menentukan kebijakan penempatan spread, buat permintaan POST berikut:

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

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

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan tersebar.

  • ZONE: zona tempat untuk membuat VM. Anda hanya dapat membuat VM di zona yang berada dalam region tempat kebijakan penempatan spread yang Anda tentukan berada.

  • VM_NAME: nama VM yang akan dibuat.

  • REGION: region tempat kebijakan penempatan spread berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi dan peran IAM dalam membuat VM, baca Membuat dan memulai instance VM.

Membuat VM secara massal yang menentukan kebijakan penempatan spread

Anda dapat membuat VM secara massal yang menentukan kebijakan penempatan penyebaran yang sudah ada menggunakan gcloud CLI dan REST.

gcloud

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

Misalnya, untuk membuat VM secara massal yang semuanya memiliki properti default dan menentukan kebijakan penempatan spread yang sama, jalankan perintah berikut:

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

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat.

  • NAME_PATTERN: pola nama untuk VM yang akan dibuat. Gunakan karakter hash (#) untuk menggantinya dengan urutan angka. Misalnya, menentukan vm-# akan membuat VM dengan nama vm-1, vm-2, dan sebagainya, hingga jumlah VM yang ditentukan dalam COUNT.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

  • ZONE: zona tempat untuk membuat VM secara massal. Anda hanya dapat membuat VM di zona yang berada dalam region kebijakan penempatan spread yang Anda tentukan.

REST

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

Misalnya, untuk membuat VM secara massal yang semuanya memiliki properti default dan menentukan kebijakan penempatan spread yang sama, buat permintaan POST berikut:

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

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ]
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat kebijakan penempatan tersebar.

  • ZONE: zona tempat untuk membuat VM secara massal. Anda hanya dapat membuat VM di zona yang berada dalam region kebijakan penempatan spread yang Anda tentukan.

  • COUNT: jumlah VM yang akan dibuat.

  • NAME_PATTERN: pola nama untuk VM yang akan dibuat. Gunakan karakter hash (#) untuk menggantinya dengan urutan angka. Misalnya, menentukan vm-# untuk membuat VM dengan nama vm-1, vm-2, dan seterusnya, hingga jumlah VM yang ditentukan dalam COUNT.

  • REGION: region tempat kebijakan penempatan spread berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

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

Membuat template instance yang menentukan kebijakan penempatan spread

Anda dapat membuat template instance yang menentukan kebijakan penempatan penyebaran yang sudah ada menggunakan gcloud CLI dan REST.

Setelah membuat template instance, Anda dapat menggunakannya untuk melakukan hal 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 memiliki properti VM default dan menyertakan kebijakan penempatan tersebar, jalankan perintah berikut:

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

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • PROJECT_ID: ID project tempat kebijakan penempatan sebar yang ingin Anda terapkan ke template instance berada.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

REST

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

Misalnya, untuk membuat template instance global yang memiliki properti VM default dan menentukan kebijakan penempatan tersebar, buat permintaan POST berikut:

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "resourcePolicies": {
      "POLICY_NAME"
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat template instance tempat Anda ingin menerapkan kebijakan penempatan tersebar.

  • INSTANCE_TEMPLATE_NAME: nama template instance.

  • POLICY_NAME: nama kebijakan penempatan spread yang ada.

Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi dalam membuat template instance, baca Membuat template instance.

Menerapkan kebijakan penempatan spread ke VM di MIG

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

Jika Anda ingin menerapkan kebijakan penempatan spread ke MIG, sebaiknya buat atau terapkan kebijakan tersebut ke MIG regional dengan bentuk distribusi zona tunggal mana pun. Dengan demikian, setiap kali MIG regional perlu melakukan penyebaran skala dengan membuat VM, MIG akan memilih zona untuk membuat VM berdasarkan kuota dan persyaratan hardware Anda.

Membuat MIG yang menentukan kebijakan penempatan spread

Anda dapat membuat MIG menggunakan template instance yang menentukan kebijakan penempatan tersebar menggunakan gcloud CLI dan REST.

gcloud

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan spread, gunakan perintah gcloud compute instance-groups managed create dengan flag --template yang ditetapkan ke nama template yang sudah ada.

Misalnya, untuk membuat MIG regional dengan properti VM default dan bentuk distribusi any-single-zone, jalankan perintah berikut:

gcloud compute instance-groups managed create MIG_NAME \
    --region=REGION \
    --size=SIZE \
    --target-distribution-shape=any-single-zone \
    --template=INSTANCE_TEMPLATE_NAME

Ganti kode berikut:

  • MIG_NAME: nama MIG yang akan dibuat.

  • REGION: region tempat membuat MIG, yang harus sesuai dengan region tempat kebijakan penempatan spread berada.

  • SIZE: ukuran MIG.

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

REST

Untuk membuat MIG menggunakan template instance yang menentukan kebijakan penempatan tersebar, buat permintaan POST ke metode instanceGroupManagers.insert atau regionInstanceGroupManagers.insert. Dalam isi permintaan, sertakan kolom instanceTemplate dan tetapkan ke nama template yang ada.

Misalnya, untuk membuat MIG regional dengan properti VM default dan bentuk distribusi any-zona, buat permintaan POST berikut:

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

{
  "name": "MIG_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "ANY_SINGLE_ZONE"
  }
}

Ganti kode berikut:

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

  • REGION: region tempat membuat MIG, yang harus sesuai dengan region tempat kebijakan penempatan spread berada.

  • MIG_NAME: nama MIG yang akan dibuat.

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

  • SIZE: ukuran MIG.

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

Menerapkan kebijakan penempatan spread ke MIG yang ada

Anda dapat menerapkan kebijakan penempatan tersebar ke MIG yang ada menggunakan template instance yang menentukan kebijakan penempatan yang sama menggunakan gcloud CLI dan REST.

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 regional 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 MIG_NAME \
    --region=REGION \
    --type=proactive \
    --version=template=INSTANCE_TEMPLATE_NAME

Ganti kode berikut:

  • MIG_NAME: nama MIG yang ada.

  • REGION: region tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan penyebaran ke MIG yang berada di region yang sama.

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

REST

Untuk memperbarui MIG agar menggunakan template instance yang menentukan kebijakan penempatan tersebar, dan menerapkan properti template serta kebijakan penempatan secara otomatis ke VM yang ada di MIG, buat permintaan PATCH ke metode instanceGroupManagers.insert atau regionInstanceGroupManagers.insert.

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

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

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "updatePolicy": {
    "type": "PROACTIVE"
  }
}

Ganti kode berikut:

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

  • REGION: region tempat MIG berada. Anda hanya dapat menerapkan kebijakan penempatan penyebaran ke MIG yang berada di region yang sama.

  • MIG_NAME: nama MIG yang ada.

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

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

Apa langkah selanjutnya?