Menetapkan bentuk distribusi target untuk VM di MIG regional


Jika menggunakan grup instance terkelola (MIG) regional, Anda dapat menetapkan bentuk distribusi target MIG tersebut ke salah satu opsi berikut:

  • MERATA (default): grup membuat dan menghapus VM untuk mencapai dan mempertahankan jumlah VM yang sama di seluruh zona yang dipilih. Dalam distribusi EVEN, selisih jumlah VM di antara dua zona tidak lebih dari 1. Direkomendasikan untuk workload penyaluran yang sangat tersedia.
  • BALANCED: grup memprioritaskan pembuatan VM di zona tempat resource tersedia, sambil mendistribusikan VM semerata mungkin ke seluruh zona yang dipilih untuk meminimalkan dampak kegagalan tingkat zona. Direkomendasikan untuk workload penyaluran atau batch yang sangat tersedia.
  • APA SAJA: grup memilih zona untuk membuat instance VM guna memenuhi jumlah VM yang diminta dalam batasan resource yang ada dan untuk memaksimalkan pemanfaatan pemesanan zona yang tidak digunakan. Direkomendasikan untuk workload batch yang tidak memerlukan ketersediaan tinggi.
  • ANY SINGLE ZONE: grup membuat semua instance VM dalam satu zona. Zona ini dipilih berdasarkan dukungan hardware, ketersediaan resource dan kuota saat ini, serta pemesanan yang cocok. Direkomendasikan bersama dengan kebijakan penempatan instance yang rapat untuk workload yang memerlukan komunikasi ekstensif antar-VM.

Untuk menggunakan VM yang dipesan dalam grup instance terkelola regional, buat pemesanan yang identik dengan nama yang sama di setiap zona yang berlaku. Kemudian, targetkan pemesanan tersebut berdasarkan nama di template instance grup.

Untuk membantu Anda memilih bentuk, lihat tabel perbandingan, kasus penggunaan, dan cara kerja bentuk distribusi.

Tetapkan bentuk distribusi target saat membuat MIG regional atau memperbarui bentuk target MIG regional yang sudah ada.

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

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

      gcloud init
    2. Menetapkan region dan zona default.

    Terraform

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

    1. Menginstal Google Cloud CLI.
    2. Untuk initialize gcloud CLI, jalankan perintah berikut:

      gcloud init
    3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login

    Untuk informasi selengkapnya, lihat Siapkan 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, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Batasan

  • Anda hanya dapat memilih zona untuk MIG saat membuat MIG.
  • Jika Anda menentukan resource di template instance MIG atau konfigurasi stateful yang tidak tersedia di semua zona yang dipilih, batasan berikut akan berlaku:

    • Anda harus menetapkan bentuk distribusi target ke BALANCED, ANY, atau ANY_SINGLE_ZONE.
    • Anda harus memastikan bahwa setiap resource yang diperlukan oleh MIG–misalnya, disk, jenis mesin, atau GPU yang sudah ada–tersedia setidaknya di salah satu zona yang dipilih.
    • Jika ingin memperbarui konfigurasi MIG (misalnya, template instance) ke konfigurasi yang tidak dapat dibuat instance-nya di semua zona yang dipilih, Anda harus menghapus instance terkelola dari semua zona yang tidak didukung sebelum menetapkan konfigurasi baru.
  • Untuk menetapkan bentuk distribusi target ke BALANCED atau ANY_SINGLE_ZONE, Anda harus menonaktifkan redistribusi instance proaktif.

  • Jika ingin menskalakan MIG regional secara otomatis, Anda harus menetapkan bentuk distribusi target grup ke BALANCED (Pratinjau) atau EVEN.
  • Jika Anda menetapkan bentuk distribusi target ke BALANCED, ANY, atau ANY_SINGLE_ZONE, batasan berikut akan berlaku:

    • Update Canary dengan dua versions tidak didukung.
    • Jika resource yang diminta memiliki ketersediaan terbatas di seluruh region, grup mungkin menjadwalkan pembuatan instance VM di zona tempat resource tersebut sudah tidak tersedia. Anda dapat mencoba mengurangi dan meningkatkan ukuran grup untuk mendapatkan resource yang diminta di zona lain.
    • Update berkelanjutan yang menggunakan metode penggantian SUBSTITUTE akan mencoba membuat instance baru yang diperbarui di zona yang sama dengan mesin yang sudah tidak berlaku, meskipun zona tersebut tidak memiliki resource untuk mengakomodasi persyaratan versi baru. Untuk memediasi perilaku ini, Anda dapat menghapus VM yang sudah tidak berlaku dari zona terbatas, lalu meningkatkan ukuran grup dengan jumlah VM yang dihapus. Grup akan membuat instance dari template terbaru di zona tempat kapasitas tersedia.
    • Jika Anda ingin memperbarui template instance grup menjadi template yang menentukan resource yang tidak tersedia di semua zona yang dipilih, Anda harus menghapus instance terkelola dari zona yang tidak didukung sebelum menetapkan template baru.
  • Jika Anda menetapkan bentuk distribusi target ke ANY_SINGLE_ZONE dan grup sudah memiliki VM dalam satu zona, Anda dapat membuat VM tambahan hanya di zona tersebut. Jika ingin menggunakan zona lain, Anda harus terlebih dahulu menskalakan grup hingga nol VM.

  • Jika perlu menyediakan grup sole-tenant VM, Anda harus menetapkan bentuk distribusi target MIG ke EVEN. Buat grup node Anda di zona yang sama dengan zona MIG dan tetapkan afinitas node MIG di template instance MIG.

Membuat grup dengan bentuk distribusi target

Untuk membuat grup Anda, pilih zonanya, dan tetapkan bentuk distribusi targetnya, gunakan Google Cloud Console, gcloud CLI, Terraform, atau REST.

Konsol

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

    Buka halaman Grup instance

  2. Klik Buat grup instance untuk membuat grup instance baru.
  3. Pilih salah satu Opsi grup instance terkelola baru: stateless (default) atau stateful.
  4. Tetapkan nama dan jika perlu, deskripsi untuk grup instance Anda.
  5. Pilih template instance untuk grup instance atau buat yang baru.
  6. Tentukan jumlah VM untuk grup ini. Untuk workload yang sangat tersedia, ingatlah untuk menyediakan VM yang cukup untuk mendukung aplikasi Anda jika terjadi kegagalan zona.
  7. Di bagian Lokasi, pilih Beberapa zona.
  8. Pilih region, lalu pilih zona yang ingin Anda gunakan.

    • Jika Anda ingin MIG dapat menggunakan semua zona di region, pilih semua zona yang tersedia.
    • Perlu diperhatikan bahwa Anda tidak dapat memperbarui MIG regional untuk menggunakan zona berbeda setelah dibuat.
  9. Pilih bentuk distribusi target.

    1. Jika Anda ingin memilih Apa saja atau Zona tunggal apa pun, di bagian Penskalaan otomatis, klik Mode penskalaan otomatis dan pilih Hapus konfigurasi penskalaan otomatis.
    2. Jika Anda ingin memilih Any single zone atau Balanced, di bagian Instance redistribution, jangan pilih Allow instance redistribution.
  10. Lanjutkan dengan proses pembuatan MIG lainnya.

gcloud

Gunakan perintah gcloud compute instance-groups managed create dan sertakan flag --target-distribution-shape.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape SHAPE

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama grup instance.
  • TEMPLATE: nama template instance yang akan digunakan untuk grup.
  • SIZE: ukuran target grup instance.
  • REGION: region tempat Anda menginginkan grup.
  • ZONES (opsional): daftar zona di region tempat Anda ingin men-deploy instance VM. Secara default, Compute Engine memilih tiga zona untuk Anda.

    • Jika Anda ingin MIG dapat menggunakan semua zona di region, tentukan semua zona yang tersedia. Anda bisa mendapatkan daftar zona di region dengan perintah berikut:

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • Perhatikan bahwa Anda tidak dapat mengupdate MIG regional untuk menggunakan zona yang berbeda setelah dibuat.

  • SHAPE: bentuk distribusi target. Ini dapat berupa salah satu dari nilai berikut ini:

    • even (default): grup membuat dan menghapus VM untuk mencapai dan mempertahankan jumlah VM yang sama di seluruh zona yang dipilih. Dalam distribusi EVEN, jumlah VM di antara dua zona tidak berbeda lebih dari 1. Direkomendasikan untuk workload penyajian yang sangat tersedia.
    • balanced: grup memprioritaskan pembuatan VM di zona tempat resource tersedia, sambil mendistribusikan VM semerata mungkin di seluruh zona yang dipilih untuk meminimalkan dampak kegagalan zona. Direkomendasikan untuk workload penyajian atau batch yang sangat tersedia.
    • any: grup memilih zona untuk membuat instance VM guna memenuhi jumlah VM yang diminta dalam batasan resource yang ada dan untuk memaksimalkan pemanfaatan pemesanan zona yang tidak digunakan. Direkomendasikan untuk workload batch yang tidak memerlukan ketersediaan tinggi.
    • any-single-zone: grup membuat semua instance VM dalam satu zona. Zona ini dipilih berdasarkan dukungan hardware, ketersediaan resource dan kuota saat ini, serta pemesanan yang cocok. Direkomendasikan bersama dengan kebijakan penempatan instance rapat untuk workload yang memerlukan komunikasi ekstensif antar-VM.

Misalnya, untuk membuat MIG regional dengan bentuk distribusi target yang seimbang, tetapkan tanda --target-distribution-shape ke balanced.

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c \
    --target-distribution-shape balanced \
    --instance-redistribution-type none

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 regional, gunakan resource google_compute_region_instance_group_manager.

Contoh berikut akan membuat MIG regional dengan bentuk distribusi target BALANCED.

resource "google_compute_region_instance_group_manager" "default" {
  name                             = "example-rmig"
  region                           = "us-east1"
  distribution_policy_zones        = ["us-east1-b", "us-east1-c"]
  distribution_policy_target_shape = "BALANCED"
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  target_size        = 30
  base_instance_name = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

Panggil metode regionInstanceGroupManagers.insert. Dalam isi permintaan, sertakan properti distributionPolicy, dan tetapkan kolom targetShape-nya.

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

{
    "name": INSTANCE_GROUP_NAME,
    "instanceTemplate": "global/instanceTemplates/TEMPLATE",
    "targetSize": SIZE,
    "distributionPolicy": {
        "zones": [
            {"zone": "zones/ZONE1"},
            {"zone": "zones/ZONE2"},
            {"zone": "zones/ZONE3"},
        ],
        "targetShape": "SHAPE"
    }
}

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini.
  • REGION: region untuk grup instance.
  • INSTANCE_GROUP_NAME: nama grup instance.
  • TEMPLATE: nama template instance yang akan digunakan untuk grup instance.
  • SIZE: ukuran target grup instance.
  • ZONE: nama zona di region tempat Anda ingin men-deploy instance VM.
    • Jika Anda ingin MIG dapat menggunakan semua zona di region, tentukan semua zona yang tersedia. Anda bisa mendapatkan daftar zona di region dengan memanggil metode regions.get.
    • Perhatikan bahwa Anda tidak dapat mengupdate MIG regional untuk menggunakan zona yang berbeda setelah dibuat.
  • SHAPE: bentuk distribusi target. Ini bisa berupa salah satu dari nilai berikut:
    • EVEN (default): grup membuat dan menghapus VM untuk mencapai dan mempertahankan jumlah VM yang sama di seluruh zona yang dipilih. Dalam distribusi EVEN, jumlah VM di antara dua zona tidak berbeda lebih dari 1. Direkomendasikan untuk workload penyajian yang sangat tersedia.
    • BALANCED: grup memprioritaskan pembuatan VM di zona tempat resource tersedia, sambil mendistribusikan VM semerata mungkin di seluruh zona yang dipilih untuk meminimalkan dampak kegagalan zona. Direkomendasikan untuk workload penyajian atau batch yang sangat tersedia.
    • ANY: grup memilih zona untuk membuat instance VM guna memenuhi jumlah VM yang diminta dalam batasan resource yang ada dan untuk memaksimalkan pemanfaatan pemesanan zona yang tidak digunakan. Direkomendasikan untuk workload batch yang tidak memerlukan ketersediaan tinggi.
    • ANY_SINGLE_ZONE: grup membuat semua instance VM dalam satu zona. Zona ini dipilih berdasarkan dukungan hardware, ketersediaan resource dan kuota saat ini, serta pemesanan yang cocok. Direkomendasikan bersama dengan kebijakan penempatan instance yang rapat untuk workload yang memerlukan komunikasi ekstensif antar-VM.

Mengubah bentuk distribusi target dari grup yang sudah ada

Anda dapat mengubah bentuk distribusi target di MIG regional yang sudah ada, tetapi dengan batasan berikut:

  • Jika ingin mengubah bentuk distribusi target menjadi BALANCED, Anda harus terlebih dahulu menonaktifkan redistribusi proaktif.
  • Jika Anda ingin mengubah bentuk distribusi target menjadi EVEN dan jika distribusi instance saat ini tidak merata, Anda harus menonaktifkan redistribusi proaktif terlebih dahulu.
  • Jika Anda mengubah bentuk menjadi EVEN dan ingin mengaktifkan kembali redistribusi proaktif, Anda harus terlebih dahulu menyeimbangkan kembali grup secara manual.
  • Jika Anda ingin mengubah bentuk distribusi target menjadi EVEN, tetapi template instance menentukan resource yang tidak didukung di semua zona yang dipilih, Anda harus terlebih dahulu memperbarui template instance grup ke template yang didukung di semua zona yang dipilih.

Konsol

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

    Buka halaman Grup instance

  2. Di kolom Nama pada daftar, klik nama grup instance tempat Anda ingin mengubah bentuk distribusi target.
  3. Klik Edit untuk mengubah grup instance terkelola ini.
  4. Pada Bentuk distribusi target, tentukan bentuk yang Anda inginkan.
  5. Klik Simpan untuk menerapkan template baru.

gcloud

Gunakan perintah gcloud compute instance-groups managed update dan sertakan flag --target-distribution-shape.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --target-distribution-shape SHAPE

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: nama grup instance.
  • SHAPE: bentuk distribusi target. Ini bisa berupa salah satu dari nilai berikut:
    • even (default): grup membuat dan menghapus VM untuk mencapai dan mempertahankan jumlah VM yang sama di seluruh zona yang dipilih. Dalam distribusi EVEN, jumlah VM di antara dua zona tidak berbeda lebih dari 1. Direkomendasikan untuk workload penyajian yang sangat tersedia.
    • balanced: grup memprioritaskan pembuatan VM di zona tempat resource tersedia, sambil mendistribusikan VM semerata mungkin di seluruh zona yang dipilih untuk meminimalkan dampak kegagalan zona. Direkomendasikan untuk workload penyajian atau batch yang sangat tersedia.
    • any: grup memilih zona untuk membuat instance VM guna memenuhi jumlah VM yang diminta dalam batasan resource yang ada dan untuk memaksimalkan pemanfaatan pemesanan zona yang tidak digunakan. Direkomendasikan untuk workload batch yang tidak memerlukan ketersediaan tinggi.
    • any-single-zone: grup membuat semua instance VM dalam satu zona. Zona ini dipilih berdasarkan dukungan hardware, ketersediaan resource dan kuota saat ini, serta pemesanan yang cocok. Direkomendasikan bersama dengan kebijakan penempatan instance rapat untuk workload yang memerlukan komunikasi ekstensif antar-VM.

REST

Panggil metode regionInstanceGroupManagers.patch. Dalam isi permintaan, sertakan properti distributionPolicy, dan tetapkan kolom targetShape-nya.

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

{
    "distributionPolicy": {
        "targetShape": "SHAPE"
    }
}

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini.
  • REGION: region untuk grup instance.
  • INSTANCE_GROUP_NAME: nama grup instance.
  • SHAPE: bentuk distribusi target. Ini bisa berupa salah satu dari nilai berikut:
    • EVEN (default): grup membuat dan menghapus VM untuk mencapai dan mempertahankan jumlah VM yang sama di seluruh zona yang dipilih. Dalam distribusi EVEN, jumlah VM di antara dua zona tidak berbeda lebih dari 1. Direkomendasikan untuk workload penyajian yang sangat tersedia.
    • BALANCED: grup memprioritaskan pembuatan VM di zona tempat resource tersedia, sambil mendistribusikan VM semerata mungkin di seluruh zona yang dipilih untuk meminimalkan dampak kegagalan zona. Direkomendasikan untuk workload penyajian atau batch yang sangat tersedia.
    • ANY: grup memilih zona untuk membuat instance VM guna memenuhi jumlah VM yang diminta dalam batasan resource yang ada dan untuk memaksimalkan pemanfaatan pemesanan zona yang tidak digunakan. Direkomendasikan untuk workload batch yang tidak memerlukan ketersediaan tinggi.
    • ANY_SINGLE_ZONE: grup membuat semua instance VM dalam satu zona. Zona ini dipilih berdasarkan dukungan hardware, ketersediaan resource dan kuota saat ini, serta pemesanan yang cocok. Direkomendasikan bersama dengan kebijakan penempatan instance yang rapat untuk workload yang memerlukan komunikasi ekstensif antar-VM.

Melihat kebijakan distribusi instance yang dikonfigurasi

Konsol

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

    Buka halaman Grup instance

    Jika Anda sudah memiliki grup instance, halaman akan mencantumkan grup tersebut.
  2. Klik nama grup instance yang ingin Anda periksa. Halaman akan terbuka dengan properti grup instance dan daftar instance yang disertakan dalam grup tersebut.
  3. Klik Details.
  4. Di bagian Lokasi, cari Bentuk distribusi target.

gcloud

Jalankan perintah gcloud compute instance-groups managed describe.

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --region REGION

Perintah ini akan menampilkan detail grup, termasuk kolom distributionPolicy.targetShape:

...
distributionPolicy:
  targetShape: BALANCED
  zones:
  - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f
  ...
name: my-group
region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1
...

REST

Buat permintaan GET ke metode regionInstanceGroupManagers.get.

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

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini
  • REGION: region untuk grup instance
  • INSTANCE_GROUP_NAME: nama grup instance

Bentuk distribusi target ditampilkan dalam kolom distributionPolicy.targetShape. Contoh:

{
  "name": "my-instance-group",
  "distributionPolicy": {
    "targetShape": "BALANCED",
  },
  "targetSize": 50,
  ...
}

Langkah selanjutnya