Membuat VM secara massal dengan fleksibilitas instance

Dokumen ini menjelaskan cara menentukan fleksibilitas instance saat Anda membuat virtual machine (VM) secara massal. Saat membuat spesifikasi ini, Anda menentukan daftar jenis mesin yang cocok untuk VM, dan Compute Engine menyediakan VM menggunakan salah satu jenis mesin yang ditentukan berdasarkan ketersediaan kapasitas dan kuota di suatu region.

Untuk mengetahui informasi selengkapnya tentang fleksibilitas instance untuk VM yang dibuat secara massal, lihat Tentang fleksibilitas instance untuk VM yang dibuat secara massal.

Sebelum memulai

  • Untuk VM dan resource terkait yang ingin Anda buat, pastikan Anda memiliki kuota yang cukup dan izin yang diperlukan.
  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. 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. 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.

    2. Set a default region and zone.

    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. 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.

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

Peran yang diperlukan

Agar mendapatkan izin yang Anda perlukan untuk membuat VM secara massal, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project. 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 VM secara massal. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat VM secara massal:

  • compute.instances.create di 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 pada template instance
  • Untuk menentukan subnet bagi VM Anda: compute.subnetworks.use di project atau di subnet yang dipilih
  • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
  • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
  • Untuk menetapkan metadata instance VM bagi VM: compute.instances.setMetadata di project
  • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label bagi VM: compute.instances.setLabels di VM
  • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru untuk 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

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

Membuat VM dengan beberapa jenis mesin yang memiliki preferensi yang sama

Jika workload Anda dapat beroperasi pada beberapa jenis mesin yang berbeda, Anda dapat menentukan daftar semua jenis mesin yang kompatibel dalam satu pemilihan instance. Contoh berikut menunjukkan cara menentukan beberapa jenis mesin dengan preferensi yang sama.

gcloud

Untuk membuat VM secara massal dengan pemilihan instance tunggal, gunakan perintah gcloud compute instances bulk createdengan flag --instance-selection-machine-types.

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=REGION \
    --count=COUNT \
    --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8

REST

Di Compute Engine API, buat permintaan POST ke metode regionInstances.bulkInsert. Dalam isi permintaan, sertakan instanceFlexibilityPolicy dengan satu entri instanceSelections yang mencantumkan jenis mesin.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ]
      }
    }
  }
}

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat.
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat VM dibuat.

Membuat VM dengan beberapa jenis mesin yang diberi peringkat berdasarkan preferensi

Jika Anda ingin Compute Engine memilih jenis mesin dalam urutan tertentu, Anda dapat mengonfigurasi beberapa pilihan instance. Setiap pilihan instance mencakup daftar jenis mesin dan peringkat, yang merupakan bilangan bulat yang menentukan preferensi untuk jenis mesin. Peringkat yang lebih rendah menunjukkan preferensi yang lebih tinggi. Compute Engine mencoba membuat VM menggunakan jenis mesin dengan preferensi yang lebih tinggi (peringkat lebih rendah). Jika jenis mesin tersebut tidak tersedia, Compute Engine akan menggunakan jenis mesin dengan preferensi yang lebih rendah (peringkat lebih tinggi).

Contoh berikut menunjukkan cara menentukan beberapa pilihan instance dengan peringkat.

gcloud

Untuk membuat VM secara massal dengan beberapa pilihan instance, gunakan perintah gcloud compute instances bulk create dan tentukan flag --instance-selection beberapa kali.

gcloud beta compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=REGION \
    --count=COUNT \
    --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16, machine-type=c2-standard-16" \
    --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8, machine-type=c2-standard-8"

REST

Di Compute Engine API, buat permintaan POST ke metode regionInstances.bulkInsert. Dalam isi permintaan, sertakan instanceFlexibilityPolicy dan tentukan beberapa entri di instanceSelections, yang masing-masing memiliki daftar jenis mesin dan rank.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "machineTypes": [
          "c3-standard-16",
          "c2-standard-16"
        ],
        "rank": 1
      },
      "least-preferred": {
        "machineTypes": [
          "n2-standard-16",
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ],
        "rank": 2
      }
    }
  }
}

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat.
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat VM dibuat.

Menentukan penggantian disk dalam pilihan instance

Secara default, VM yang dibuat oleh permintaan massal menggunakan konfigurasi disk dari instanceProperties. Namun, Anda dapat menentukan konfigurasi disk dalam pilihan instance. Jika Anda menentukan disk dalam pemilihan instance, konfigurasi disk tersebut akan menggantikan konfigurasi disk di instanceProperties untuk VM yang menggunakan pemilihan instance tersebut.

Contoh berikut menunjukkan cara menentukan disk dalam pilihan instance.

REST

Di Compute Engine API, buat permintaan POST ke metode regionInstances.bulkInsert. Dalam isi permintaan, sertakan instanceFlexibilityPolicy dan, untuk setiap entri instanceSelections, sertakan kolom disks untuk menggantikan instanceProperties.disks.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "test-bulk-#",
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "n2-standard-8",
          "c2-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "IMAGE_URL"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "selection-2": {
        "machineTypes": [
          "c3-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "IMAGE_URL"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128,
              "sourceImage": "IMAGE_URL"
            }
          }
        ]
      }
    }
  }
}

Ganti kode berikut:

  • COUNT: jumlah VM yang akan dibuat.
  • IMAGE_URL: URL image disk boot.
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat VM dibuat.