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 sampel 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:
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan 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.
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.createdi project -
Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnlypada image -
Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnlypada snapshot -
Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnlypada template instance -
Untuk menentukan subnet bagi VM Anda:
compute.subnetworks.usedi project atau di subnet yang dipilih -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIpdi project atau di subnet yang dipilih -
Untuk menetapkan jaringan lama ke VM:
compute.networks.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIpdi project -
Untuk menetapkan metadata instance VM bagi VM:
compute.instances.setMetadatadi project -
Untuk menyetel tag untuk VM:
compute.instances.setTagsdi VM -
Untuk menetapkan label bagi VM:
compute.instances.setLabelsdi VM -
Untuk menetapkan akun layanan yang akan digunakan VM:
compute.instances.setServiceAccountdi VM -
Untuk membuat disk baru untuk VM:
compute.disks.createpada project -
Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.usepada disk -
Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnlypada 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=NAME_PATTERN \
--region=REGION \
--count=COUNT \
--instance-selection-machine-types=MACHINE_TYPE_1,MACHINE_TYPE_2
Ganti kode berikut:
COUNT: jumlah VM yang akan dibuatNAME_PATTERN: pola nama untuk VMMACHINE_TYPE_1,MACHINE_TYPE_2: jenis mesin yang akan digunakan untuk VMREGION: region tempat VM dibuat
Contoh
gcloud compute instances bulk create \
--name-pattern=test-bulk-# \
--region=us-central1 \
--count=10 \
--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": "NAME_PATTERN",
"instanceProperties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [{}]
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"selection-1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
]
}
}
}
}
Ganti kode berikut:
COUNT: jumlah VM yang akan dibuatNAME_PATTERN: pola nama untuk VMMACHINE_TYPE_1,MACHINE_TYPE_2: jenis mesin yang akan digunakan untuk VMIMAGE_PROJECT: project yang berisi imageIMAGE: nama image atau kelompok image yang akan digunakanPROJECT_ID: project ID AndaREGION: region tempat VM dibuat
Contoh
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
"count": 10,
"namePattern": "test-bulk-#",
"instanceProperties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/debian-12"
}
}
],
"networkInterfaces": [{}]
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"selection-1": {
"machineTypes": [
"c3-standard-8",
"n2-standard-8",
"c2-standard-8"
]
}
}
}
}
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 compute instances bulk create \
--name-pattern=NAME_PATTERN \
--region=REGION \
--count=COUNT \
--instance-selection "name=INSTANCE_SELECTION_1,rank=0,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2" \
--instance-selection "name=INSTANCE_SELECTION_2,rank=1,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4"
Ganti kode berikut:
COUNT: jumlah VM yang akan dibuatNAME_PATTERN: pola nama untuk VMINSTANCE_SELECTION_1: nama untuk pilihan instance pertamaINSTANCE_SELECTION_2: nama untuk pilihan instance keduaMACHINE_TYPE_1,MACHINE_TYPE_2: jenis mesin untuk pilihan instance pertamaMACHINE_TYPE_3,MACHINE_TYPE_4: jenis mesin untuk pilihan instance keduaREGION: region tempat VM dibuat
Contoh
gcloud compute instances bulk create \
--name-pattern=test-bulk-# \
--region=us-central1 \
--count=10 \
--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": "NAME_PATTERN",
"instanceProperties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [{}]
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
],
"rank": 1
},
"INSTANCE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_3",
"MACHINE_TYPE_4"
],
"rank": 2
}
}
}
}
Ganti kode berikut:
COUNT: jumlah VM yang akan dibuatNAME_PATTERN: pola penamaan untuk VMINSTANCE_SELECTION_1: nama untuk pilihan instance pertamaINSTANCE_SELECTION_2: nama untuk pilihan instance keduaMACHINE_TYPE_1,MACHINE_TYPE_2: jenis mesin untuk pilihan instance pertamaMACHINE_TYPE_3,MACHINE_TYPE_4: jenis mesin untuk pilihan instance keduaIMAGE_PROJECT: project yang berisi imageIMAGE: nama image atau kelompok image yang akan digunakanPROJECT_ID: project ID AndaREGION: region tempat VM dibuat
Contoh
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
"count": 10,
"namePattern": "test-bulk-#",
"instanceProperties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/debian-12"
}
}
],
"networkInterfaces": [{}]
},
"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
}
}
}
}
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": "NAME_PATTERN",
"instanceProperties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [{}]
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"INSTANCE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1",
"MACHINE_TYPE_2"
],
"disks": [
{
"type": "PERSISTENT",
"initializeParams": {
"diskType": "pd-ssd",
"diskSizeGb": 50,
"sourceImage": "projects/IMAGE_PROJECT_1/global/images/IMAGE_1"
},
"boot": true
},
{
"type": "SCRATCH",
"initializeParams": {
"diskType": "local-ssd"
}
}
]
},
"INSTANCE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_3"
],
"disks": [
{
"type": "PERSISTENT",
"initializeParams": {
"diskType": "hyperdisk-balanced",
"diskSizeGb": 50,
"sourceImage": "projects/IMAGE_PROJECT_2/global/images/IMAGE_2"
},
"boot": true
},
{
"type": "PERSISTENT",
"initializeParams": {
"diskType": "hyperdisk-balanced",
"diskSizeGb": 128,
"sourceImage": "projects/IMAGE_PROJECT_3/global/images/IMAGE_1"
}
}
]
}
}
}
}
Ganti kode berikut:
COUNT: jumlah VM yang akan dibuatNAME_PATTERN: pola penamaan untuk VMINSTANCE_SELECTION_1: nama untuk pilihan instance pertamaINSTANCE_SELECTION_2: nama untuk pilihan instance keduaMACHINE_TYPE_1,MACHINE_TYPE_2,MACHINE_TYPE_3: jenis mesin yang akan digunakan untuk VMIMAGE_PROJECT: project yang berisi imageIMAGE: nama image atau kelompok image yang akan digunakanPROJECT_ID: project ID AndaREGION: region tempat VM dibuat