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
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- 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 antara2
dan8
, 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 antara2
dan8
, 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 tersebar ke VM yang ada.
- Buat VM yang menentukan kebijakan penempatan tersebar.
- Membuat VM secara massal yang menentukan kebijakan penempatan tersebar.
- Buat template instance yang menetapkan kebijakan penempatan tersebar.
- Menerapkan kebijakan penempatan tersebar pada VM di MIG.
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, menentukanvm-#
akan membuat VM dengan namavm-1
,vm-2
, dan sebagainya, hingga jumlah VM yang ditentukan dalamCOUNT
.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, menentukanvm-#
untuk membuat VM dengan namavm-1
,vm-2
, dan seterusnya, hingga jumlah VM yang ditentukan dalamCOUNT
.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?
Pelajari cara melihat kebijakan penempatan.
Pelajari cara mengganti, menghapus, atau menghapus kebijakan penempatan.
Pelajari cara melakukan hal berikut dengan VM yang menentukan kebijakan penempatan:
Pelajari lebih lanjut proses migrasi langsung selama peristiwa pemeliharaan.