Dengan mengonfigurasi persistent disk menjadi stateful, Anda dapat memanfaatkan autohealing instance VM dan update otomatis sekaligus mempertahankan status disk.
Anda dapat mengonfigurasi disk yang ditentukan di template instance agar menjadi stateful untuk semua instance dalam sebuahgrup instance terkelola (MIG) dengan menambahkan nama perangkat disk tersebut ke kebijakan stateful.
Anda juga dapat mengonfigurasi persistent disk stateful satu per satu untuk instance di MIG dengan menetapkan konfigurasi per instance; disk ini tidak perlu didefinisikan di template instance.
Sebelum memulai
- Tinjau kapan harus menggunakan MIG stateful dan cara kerja MIG stateful.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Anda tidak dapat menggunakan penskalaan otomatis jika MIG Anda memiliki konfigurasi stateful.
- Jika ingin menggunakan update berkelanjutan otomatis, Anda harus menetapkan metode penggantian ke
RECREATE
. - Untuk MIG regional stateful, Anda harus menonaktifkan redistribusi proaktif (menetapkan jenis distribusi ulang ke
NONE
) untuk mencegah penghapusan instance stateful dengan redistribusi lintas zona otomatis. Jika menggunakan konfigurasi semua instance untuk mengganti properti template instance, Anda tidak dapat menentukan properti tersebut dalam konfigurasi per instance mana pun dan pada saat yang sama dalam konfigurasi semua instance grup.
MIG regional stateful tidak secara otomatis meng-orkestrasi failover lintas-zona. Saat menggunakan MIG regional, Anda dapat membuat aplikasi stateful Anda tahan terhadap kegagalan zona dengan men-deploy replika redundan ke beberapa zona dan mengandalkan fungsi replikasi data aplikasi Anda.
- Anda dapat memperbaiki boot disk yang rusak dengan membuat ulang boot disk dari image aslinya. Autohealing melakukan perbaikan tersebut secara otomatis.
- Anda dapat mengupdate boot disk ke image terbaru dengan versi baru dan patch keamanan.
Di Konsol Google Cloud, buka halaman Instance groups.
Pilih project Anda lalu klik Continue.
Klik Create grup instance.
Pilih New managed instance group (stateful).
Tentukan Name untuk grup instance.
Pilih sebuah Instance template. Jika tidak ada template yang tersedia, buat template instance.
Di bagian Number of instances, tentukan jumlah instance untuk grup instance.
Bagian Stateful configuration menampilkan disk yang ditentukan dalam template instance. Klik disk untuk mengedit konfigurasi stateful-nya.
- Di bagian Stateful, pilih Yes.
Dari menu drop-down On permanent instance deletion, pilih tindakan yang akan dilakukan pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:
- Lepaskan disk: (Default.) Jangan pernah menghapus disk; melepaskan disk saat VM dihapus.
- Hapus disk: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Setelah Anda menyelesaikan konfigurasi stateful, klik Done.
Klik Create.
INSTANCE_GROUP_NAME
: Nama grup instance terkelola yang akan dibuat.INSTANCE_TEMPLATE
: Nama template instance yang akan digunakan saat membuat instance.SIZE
: Jumlah VM awal yang Anda perlukan dalam grup ini.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk ketika VM-nya dihapus.on-permanent-instance-deletion
: Menghapus disk saat instance VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat grup ukuran menjadi lebih kecil.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan pada operasi autohealing, update, dan pembuatan ulang VM.
Buat template instance dengan boot disk stateless berdasarkan image
img-example-db-v01
, yang memiliki OS dan database bawaan, serta dengan disk data stateful:gcloud compute instance-templates create example-database-template-v01 \ --image img-example-db-v01 \ --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
Flag
--create-disk
memerintahkan MIG untuk:- Memuat disk baru sebesar 10 GB untuk setiap instance VM dari image ext4 kosong yang disiapkan sebelumnya.
- Instal disk ke VM-nya dalam mode baca/tulis menggunakan nama perangkat
data-disk
.
Buat MIG dari template instance dan tentukan disk data sebagai stateful:
gcloud compute instance-groups managed create example-database-group \ --template example-database-template-v01 \ --base-instance-name shard \ --size 12 \ --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
Nama perangkat
data-disk
diambil dari template instance. Disk data dikonfigurasi untuk dihapus bersama dengan instance VM saat VM dihapus secara permanen (baik karena penghapusan instance secara manual atau karena mengecilkan ukuran grup secara manual). Disk data dipertahankan saat autohealing, update, dan pembuatan ulang VM.Pastikan disk data dikonfigurasi dalam kebijakan stateful:
gcloud compute instance-groups managed describe example-database-group baseInstanceName: shard ... name: example-database-group ... statefulPolicy: preservedState: disks: data-disk: autoDelete: ON_PERMANENT_INSTANCE_DELETION ...
Anda dapat melihat bahwa kebijakan stateful mendeklarasikan disk dengan nama perangkat
data-disk
sebagai stateful, dengan aturan untuk menghapus disk tersebut pada penghapusan VM permanen.PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan dibuat.TEMPLATE
: Nama template instance yang akan digunakan saat membuat instance.SIZE
: Jumlah awal instance yang Anda perlukan dalam grup ini.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; melepaskan disk ketika VM dihapus.on_permanent_instance_deletion
: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup dikurangi.
Membuat template instance dengan boot disk stateless berdasarkan image
img-example-db-v01
, dengan OS dan database yang sudah diinstal sebelumnya, dan dengan disk data stateful, menggunakan metodeinstanceTemplates.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates { "name": "example-database-template-v01", "properties": { "machineType":"e2-standard-2", "disks": [ { "boot": true, "deviceName": "boot-disk", "initializeParams": { "sourceImage": "projects/example-project/global/images/mg-example-db-v01" } }, { "deviceName": "data-disk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/example-project/global/images/empty10GBext4" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ] } }
Disk data dalam template instance memiliki nama perangkat
data-disk
dan dikonfigurasi untuk dibuat dari image ext4 kosong yang disiapkan sebelumnya, serta untuk dipasang dalam mode baca/tulis.Buat MIG dari template instance dan tentukan disk data sebagai stateful dengan menggunakan metode
instanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers { "name": "example-database-group", "baseInstanceName": "shard", "versions": [ { "instanceTemplate": "global/instanceTemplates/example-database-template-v01" } ], "targetSize": 12, "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } }
MIG membuat 12 instance, masing-masing dengan disk dengan properti berikut:
- Nama perangkat,
data-disk
, diambil dari template instance. - Aturan hapus untuk menghapus disk data saat VM dihapus (baik karena penghapusan instance secara manual atau karena memperkecil ukuran grup secara manual).
- Entri dalam status yang dipertahankan dari kebijakan
(
preservedStateFromPolicy
) dari setiap instance terkelola sehingga disk data dipertahankan saat autohealing, update, dan pembuatan ulang instance.
- Nama perangkat,
Gunakan metode
instanceGroupManagers.get
untuk memverifikasi bahwa disk data dikonfigurasi dalam kebijakan stateful pada resourceinstanceGroupManagers
baru:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
{ "name": "example-database-group", "baseInstanceName": "shard", ... "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } ... }
Anda dapat melihat bahwa kebijakan stateful mendeklarasikan disk dengan nama perangkat
data-disk
sebagai stateful dengan aturan untuk menghapus disk tersebut pada penghapusan instance permanen.- Tambahkan disk yang ditentukan dalam template instance ke kebijakan stateful dari MIG yang ada untuk mendeklarasikannya sebagai stateful. Tindakan ini akan menandai disk dengan nama perangkat tertentu sebagai stateful untuk semua instance yang ada dan akan dibuat di MIG.
- Perbarui kebijakan stateful untuk mengubah konfigurasi stateful untuk disk.
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance tempat Anda ingin menetapkan konfigurasi stateful untuk disk.
Klik Edit untuk mengubah grup instance terkelola.
Di bagian Stateful configuration, luaskan disk yang ingin Anda buat stateful.
- Di bagian Stateful, pilih Yes.
Dari menu drop-down On permanent instance deletion, pilih tindakan yang akan dilakukan pada disk stateful saat instance VM dihapus.
- Lepaskan disk: (Default.) Jangan pernah menghapus disk; melepaskan disk saat VM dihapus.
Hapus disk: Menghapus disk stateful saat VM-nya dihapus secara permanen dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Setelah Anda memperbarui konfigurasi stateful, klik Done.
Klik Save untuk menyelesaikan update.
NAME
: Nama grup instance terkelola yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang ditentukan dalam template instance.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya secara permanen dihapus dari grup instance, misalnya, saat instance terkelola dihapus secara manual atau saat ukuran grup diperkecil.
Update MIG untuk menentukan disk data sebagai stateful menggunakan perintah berikut:
gcloud compute instance-groups managed update example-database-group \ --stateful-disk device-name=data-disk,auto-delete=never
Sebagai hasilnya, MIG menerapkan pembaruan konfigurasi kebijakan stateful secara otomatis dan asinkron ke disk data untuk semua instance. Disk data kini dipertahankan di autohealing, update, dan pembuatan ulang instance, dan disk data dilepas saat penghapusan instance karena aturan
auto-delete
ditetapkan kenever
.Pastikan disk data dikonfigurasi dalam kebijakan stateful dengan menjalankan perintah
gcloud compute instance-groups managed describe example-database-group
.PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk, yang ditentukan dalam template instance, yang ingin Anda perbarui konfigurasi statefulnya.DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Lakukan patch pada MIG untuk menentukan disk data sebagai stateful:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group { "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "NEVER" } } } } }
MIG menerapkan konfigurasi stateful ini secara otomatis dan asinkron ke disk data untuk semua instance. Disk data akan dipertahankan dalam autohealing, update, dan pembuatan ulang instance. Disk data akan dilepas saat instance dihapus karena aturan
autoDelete
disetel keNEVER
.Pastikan disk data dikonfigurasi dalam kebijakan stateful dengan melihat resource
instanceGroupManagers
, yang ditampilkan oleh metodeinstanceGroupManagers.get
.- Jika Anda melakukan arsitektur ulang aplikasi untuk memindahkan status dari disk.
- Jika Anda tidak sengaja mengonfigurasi disk menjadi stateful dan ingin mengembalikannya.
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama grup instance tempat Anda ingin menghapus konfigurasi stateful untuk disk.
Klik Edit untuk mengubah grup instance terkelola.
Di bagian Stateful configuration, luaskan disk stateful yang ingin Anda buat menjadi stateless.
- Ubah opsi Stateful menjadi No.
- Klik Done.
Setelah melakukan perubahan, klik Save.
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang akan dihapus dari kebijakan stateful dan diperlakukan sebagai stateless. Anda dapat memberikan satu atau beberapa nama perangkat dalam daftar.PROJECT
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG yang akan diupdate.DEVICE_NAME
: Nama perangkat disk yang ingin Anda hapus dari kebijakan stateful. Memberikan nilainull
akan menghapus konfigurasi stateful untuk disk tersebut. Anda dapat memberikan satu atau beberapa nama perangkat untuk dihapus.- Hapus konfigurasi stateful disk dari kebijakan stateful. Hal ini membuat disk dengan nama perangkat yang diberikan menjadi stateless.
- Lepaskan disk dari VM jika Anda masih ingin menyimpannya.
- Meluncurkan template instance baru yang tidak lagi menentukan disk dengan nama perangkat tertentu.
- Memigrasikan workload yang ada (bawa disk yang sudah ada) dari VM mandiri ke MIG stateful untuk mendapatkan manfaat dari autohealing dan update yang mudah.
- Memulihkan cadangan disk, yang dikonfigurasi satu per satu untuk VM.
- Memasang disk stateful tambahan ke VM tertentu secara sementara untuk pengujian, proses debug, atau penyalinan data.
- Buat template instance dengan konfigurasi umum untuk semua instance VM.
- Lepaskan disk data dari instance mandiri dan hapus instance ini. Anda juga dapat melepaskan boot disk jika berisi status yang harus dipertahankan.
- Buat MIG kosong menggunakan template instance yang dibuat sebelumnya.
Buat instance di MIG dengan nama yang sesuai dan disk terkait dari langkah sebelumnya. MIG akan merespons permintaan Anda dengan tindakan berikut:
- Membuat VM dari template instance menggunakan nama instance yang diberikan.
- MIG regional membuat VM di zona yang sama dengan tempat disk berada. Jika disk bersifat regional, MIG regional akan membuat VM di salah satu zona replika disk.
- Membuat konfigurasi per instance dengan konfigurasi stateful yang disediakan untuk disk.
- Memasang disk ke instance baru.
- Membuat VM dari template instance menggunakan nama instance yang diberikan.
NAME
: Nama MIG tempat Anda perlu membuat instance.VM_NAME
: Nama instance baru yang akan dibuat.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zonal).REGION
: Wilayah tempat MIG berada (berlaku untuk MIG regional).DEVICE_NAME
: Nama perangkat yang akan digunakan saat memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zona danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.MODE
: Menentukan mode disk. Opsi yang didukung adalah:ro
: Hanya baca.rw
: (Default.) Baca/tulis.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat instance VM dihapus. Opsi yang tersedia adalah:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
- Hentikan VM,
db-instance
, selama masa pemeliharaan. - Buat template instance
bernama
db-template
menggunakan konfigurasidb-instance
. - Lepaskan
db-data-disk-1
daridb-instance
dan hapusdb-instance
. - Buat MIG kosong,
example-database-mig
, daridb-template
, dan konfigurasi autohealing. Buat instance terkelola dengan nama
db-instance
asli dan tambahkandb-data-disk-1
sebagai disk stateful:gcloud compute instance-groups managed create-instance example-database-mig \ --instance db-instance \ --zone us-east1-c \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
Perintah ini membuat instance,
db-instance
, di MIG, membuat konfigurasi per instance yang sesuai dengan disk statefuldb-data-disk-1
, dan memasang disk ke VM baru, menggunakandata-disk
sebagai nama perangkat.PROJECT_ID
: ID project untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG untuk membuat instance.VM_NAME
: Nama instance yang akan dibuat.DEVICE_NAME
: Nama perangkat yang akan digunakan saat memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal atauprojects/project-id/regions/region/disks/disk-name
untuk disk regional.MODE
: Menentukan mode disk. Opsi yang didukung adalah:READ_ONLY
: Hanya baca.READ_WRITE
: (Default.) Baca/tulis.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk ketika VM-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
- Hentikan VM,
db-instance
, selama masa pemeliharaan. - Buat template instance
bernama
db-template
menggunakan konfigurasidb-instance
. - Lepaskan
db-data-disk-1
daridb-instance
, dan hapusdb-instance
. - Buat MIG kosong,
example-database-mig
, daridb-template
, dan konfigurasi autohealing. Buat instance dengan nama asli
db-instance
, dan lampirkandb-data-disk-1
sebagai disk stateful:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances { "instances": [ { "name": "db-instance", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1", "mode": "READ_WRITE", "autoDelete": "never" } } } } ] }
Metode ini membuat sebuah instance,
db-instance
di MIG, membuat konfigurasi per instance yang sesuai dengan disk statefuldb-data-disk-1
, dan memasang disk ke instance baru, dengan menggunakandata-disk
sebagai nama perangkat.- Menambahkan disk stateful dari luar MIG ke VM di MIG tersebut.
- Mendeklarasikan disk stateless sebelumnya sebagai stateful untuk VM di MIG.
- Mengganti disk stateful dengan disk berbeda untuk VM di MIG.
NAME
: Nama grup instance terkelola.VM_NAME
: Nama instance VM yang akan mengonfigurasi disk stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan, dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.Subflag
source=DISK
bersifat opsional jika perangkat sudah ditentukan dalam konfigurasi per instance. Jika tidak, subflag akan menjadi wajib.Jika dihilangkan, URI disk yang saat ini dikonfigurasi tetap tidak berubah.
MODE
: Menentukan mode disk. Anda hanya dapat menentukanmode
jika Anda juga menentukansource
. Opsi yang didukung adalah:ro
: Hanya baca.rw
: (Default.) Baca/tulis.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
DELETE_RULE
: Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:never
: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diturunkan.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
MINIMAL_ACTION
: Menjalankan setidaknya tindakan yang ditentukan saat menerapkan update konfigurasi per instance ke instance. Harus digunakan bersama dengan flag--update-instance
. Nilainya harus salah satu dari:none
: Tidak ada tindakan.refresh
: Menerapkan update yang dapat diterapkan tanpa menghentikan VM.restart
: Menghentikan VM, lalu memulainya lagi.replace
: Membuat ulang VM.
Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.
- Mengupdate konfigurasi per instance untuk
db-instance-1
:- Mengupdate sumber disk dengan nama perangkat
data-disk
daridata-disk-1
(konfigurasi terakhir) menjadidata-disk-2
(konfigurasi baru). - Mempertahankan aturan hapus otomatis agar tidak pernah menghapus disk karena
parameter
auto-delete
dihilangkan dalam flag--stateful-disk
dan, secara default, aturan hapus adalahnever
.
- Mengupdate sumber disk dengan nama perangkat
- Menerapkan update konfigurasi per instance ke VM
db-instance-1
segera karena flag--update-instance
disertakan. MIG melepaskandata-disk-1
dan melampirkandata-disk-2
dengan nama perangkat yang sama,data-disk
. - Karena tindakan minimal disetel ke
restart
, MIG akan memulai ulang instancedb-instance-1
untuk mengupdate VM, yang membantu aplikasi database untuk mulai menggunakan disk baru. PROJECT_ID
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG.VM_NAME
: Nama VM, yang akan mengonfigurasi disk stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.DISK
: URI persistent disk yang ada untuk dipasang di bawahDEVICE_NAME
yang ditentukan, dalam formatprojects/project-id/zones/zone/disks/disk-name
untuk disk zonal danprojects/project-id/regions/region/disks/disk-name
untuk disk regional.Kolom
"source": "DISK"
bersifat opsional jika perangkat sudah ditentukan dalam konfigurasi per instance. Jika tidak, subflag akan menjadi wajib.Jika kolom
source
dihilangkan, URI disk yang saat ini dikonfigurasi tidak akan berubah.MODE
: (Opsional.) Menentukan mode disk.mode
hanya dapat ditentukan jikasource
diberikan. Opsi yang didukung adalah:READ_ONLY
: Hanya baca.READ_WRITE
: (Default.) Baca/tulis.
Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.
DELETE_RULE
: (Opsional.) Nilai yang menentukan apa yang harus terjadi pada disk stateful saat VM dihapus. Opsi yang tersedia adalah sebagai berikut:- tidak pernah: (Default.) Jangan pernah menghapus disk; sebagai gantinya, lepaskan disk saat instance-nya dihapus.
on-permanent-instance-deletion
: Menghapus disk stateful saat instance-nya dihapus secara permanen dari grup instance, misalnya, saat instance dihapus secara manual atau saat ukuran grup diperkecil.
Jika kolom
autoDelete
dihilangkan, nilai default akan ditetapkan untuk konfigurasi disk stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.Terlepas dari nilai aturan hapus, disk stateful selalu dipertahankan saat operasi pembuatan ulang, update, dan autohealing instance.
FINGERPRINT
: (Opsional). Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Untuk melihat sidik jari terbaru, buat permintaanget()
untuk mengambil resource.- Mengupdate
source
untuk disk dengan nama perangkatdata-disk
daridata-disk-1
(konfigurasi terakhir) menjadidata-disk-2
(konfigurasi baru). - Mempertahankan parameter
mode
danautoDelete
tidak berubah karena parameter dihilangkan dalam permintaan. - Jika Anda melakukan arsitektur ulang aplikasi untuk memindahkan status dari disk.
- Jika Anda mengonfigurasi disk menjadi stateful secara tidak sengaja dan ingin mengembalikannya.
- Jika disk tidak ditentukan di template instance, MIG akan melepaskan disk.
- MIG tidak menghapus disk saat Anda menghapus konfigurasinya dari konfigurasi per instance, terlepas dari aturan hapus otomatis dalam konfigurasi.
- Jika disk ditentukan oleh template instance, MIG akan memperlakukan disk sebagai stateless, yang berarti MIG akan membuat ulang disk dari sumbernya di template instance pada saat pembuatan ulang, update, atau peristiwa autohealing berikutnya.
NAME
: Nama MIG.VM_NAME
: Nama VM yang akan menghapus konfigurasi stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.MINIMAL_ACTION
: Menjalankan setidaknya tindakan yang ditentukan saat mengupdate VM dengan konfigurasi per instance-nya. Hanya dapat digunakan bersama dengan--update-instance
. Nilainya harus berupa salah satu berikut ini:none
: Tidak ada tindakan.refresh
: Menerapkan update yang dapat diterapkan tanpa menghentikan VM.restart
: Menghentikan VM, lalu memulainya lagi.replace
: Membuat ulang VM.
Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.
- Menghapus konfigurasi untuk disk dengan nama perangkat
boot-disk
dari konfigurasi per instance untuknode-1
. - Menerapkan update konfigurasi per instance ke VM
node-1
segera karena flag--update-instance
disertakan. MIG menghapus boot disk daripreservedStateFromConfig
instance terkelola dan memperlakukan boot disk sebagai stateless, yang berarti MIG akan membuat ulang disk dari boot image-nya di template instance pada peristiwa pembuatan ulang, pembaruan, atau autohealing instance berikutnya. PROJECT_ID
: Project ID untuk permintaan.ZONE
: Zona tempat MIG berada (berlaku untuk MIG zona).- Untuk MIG regional, ganti
zones/ZONE
denganregions/REGION
dan tentukan region MIG.
- Untuk MIG regional, ganti
NAME
: Nama MIG.VM_NAME
: Nama VM yang akan menjadi tempat untuk menghapus konfigurasi stateful.DEVICE_NAME
: Nama perangkat yang digunakan untuk memasang disk.FINGERPRINT
: Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Untuk melihat sidik jari terbaru, buat permintaanget()
untuk mengambil resource.Panggil metode
patchPerInstanceConfigs
untuk instance, misalnya, untuknode-1
dengan nilainull
untuk boot disk:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-1", "preservedState" : { "disks": { "boot-disk" : null } } } ] }
Metode ini menghapus konfigurasi untuk disk dengan nama perangkat
boot- disk
dari konfigurasi per instance untuknode-1
. Update konfigurasi belum diterapkan ke instance VMnode-1
. Update konfigurasi akan diterapkan pada pembuatan ulang atau update instance berikutnya.Untuk menerapkan update konfigurasi per instance ke instance VM
node-1
, panggil metodeinstanceGroupManagers.applyUpdatesToInstances
untuk instance tersebut:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-1"] }
MIG menghapus boot disk dari
preservedStateFromConfig
untuk instancenode-1
dan memperlakukan disk sebagai stateless. Artinya, MIG membuat ulang disk dari image bootingnya di template instance pada peristiwa pembuatan ulang, update, atau autohealing instance berikutnya.- Mengonfigurasi metadata stateful untuk VM di MIG.
- Pelajari cara menerapkan, melihat, dan menghapus konfigurasi stateful.
- Dapatkan info tentang MIG tertentu dan instance terkelolanya, termasuk status dan properti VM.
- Pelajari MIG dan cara menggunakan instance terkelola lebih lanjut.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Batasan
MIG dengan disk stateful memiliki batasan berikut:
MIG dengan konfigurasi stateful— MIG stateful—memiliki batasan berikut:
Kapan harus menggunakan persistent disk stateful
Gunakan persistent disk stateful untuk memanfaatkan autohealing VM dan update otomatis sekaligus mempertahankan data di disk. Untuk mengetahui informasi selengkapnya, lihat kasus penggunaan untuk MIG stateful.
Saat Anda mengonfigurasi disk stateful, disk ini dipertahankan melalui autohealing, update, dan pembuatan ulang instance VM. Namun, itu juga berarti bahwa disk stateful tidak dapat dibuat ulang dari image asli atau diperbarui ke image baru.
Praktik terbaiknya, sebaiknya Anda menjaga agar boot disk tetap stateless.
Menjaga agar boot disk tetap stateless memiliki manfaat berikut:
Untuk mengetahui informasi selengkapnya, lihat cara autohealing dan update menangani status yang dipertahankan.
Mengonfigurasi persistent disk stateful untuk semua VM di MIG
Konfigurasikan disk apa pun yang didefinisikan dalam template instance menjadi stateful dengan menambahkan nama perangkat disk tersebut ke kebijakan stateful MIG. MIG memperlakukan disk dengan nama perangkat tersebut sebagai stateful untuk semua instance VM yang ada dan yang akan datang.
Mengonfigurasi disk stateful pada pembuatan MIG
Konsol
gcloud
Untuk menentukan disk mana dari template instance yang harus stateful dalam pembuatan MIG, gunakan flag
--stateful-disk
dengan perintahgcloud compute instance-groups managed create
:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Ganti kode berikut:
Contoh
Anda ingin men-deploy database dengan 12 shard, masing-masing dengan boot disk stateless yang berisi biner sistem operasi dan database, dan masing-masing dengan disk data stateful. Ikuti langkah-langkah berikut:
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.
Contoh berikut membuat MIG zona dengan disk stateful. Untuk menentukan disk mana dari template instance yang harus stateful pada pembuatan MIG, sertakan blok
stateful_disk
. Untuk informasi selengkapnya tentang resource yang digunakan dalam contoh, lihat resourcegoogle_compute_instance_group_manager
. Untuk membuat MIG regional, gunakan resourcegoogle_compute_region_instance_group_manager
.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk menentukan disk mana dari template instance yang harus stateful dalam pembuatan MIG, sertakan disk tersebut dalam
statefulPolicy
di isi permintaaninstanceGroupManagers.insert
metode .POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Ganti kode berikut:
Contoh
Anda ingin men-deploy database dengan 12 shard, masing-masing dengan boot disk stateless yang berisi biner sistem operasi dan database, dan masing-masing dengan disk data stateful. Ikuti langkah-langkah berikut:
Menetapkan dan memperbarui konfigurasi stateful untuk disk di MIG yang ada
Jika menjalankan aplikasi stateful pada MIG stateless (MIG tanpa konfigurasi stateful), Anda dapat mengonfigurasi disk yang ada yang ditetapkan dalam template instance agar stateful untuk semua instance di MIG ini. Hal ini memungkinkan Anda mempertahankan disk pada pembuatan ulang instance, autohealing, dan operasi update, serta secara opsional pada operasi penghapusan.
Anda dapat melakukan operasi berikut:
MIG menerapkan konfigurasi yang telah diperbarui dalam kebijakan stateful secara otomatis dan asinkron ke semua instance. Perubahan konfigurasi disk dalam kebijakan stateful tidak akan mengganggu VM yang sedang berjalan. Untuk mengetahui informasi selengkapnya, lihat menerapkan pembaruan kebijakan stateful.
Untuk MIG regional, Anda harus menonaktifkan redistribusi instance lintas zona proaktif sebelum dapat mengonfigurasi disk stateful. Untuk informasi selengkapnya, lihat cara grup regional menangani status yang dipertahankan.
Konsol
gcloud
Untuk menentukan disk mana dari template instance yang harus berstatus stateful atau untuk memperbarui konfigurasi disk stateful untuk MIG yang ada, gunakan satu atau beberapa flag
--stateful-disk
dengangcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Ganti kode berikut:
Jika nama perangkat yang ditentukan sudah dikonfigurasi dalam kebijakan stateful, perintah akan memperbarui konfigurasi.
Contoh
Anda menjalankan database dengan beberapa shard pada MIG bernama
example-database- group
. Setiap VM dalam MIG menyimpan shard pada disk tambahan dengan nama perangkatdata-disk
, yang ditentukan oleh template instance. MIG tidak memiliki konfigurasi stateful, dan Anda ingin mempertahankan disk data pada pembuatan ulang instance, autohealing, dan update. Anda juga sebaiknya melindungi disk data dari penghapusan saat VM dihapus.REST
Untuk menentukan disk mana dari template instance yang harus berstatus stateful atau untuk memperbarui konfigurasi disk stateful untuk MIG yang ada, konfigurasikan disk dalam kebijakan stateful MIG menggunakan metode
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Ganti kode berikut:
Jika nama perangkat yang ditentukan sudah dikonfigurasi dalam kebijakan stateful, metode
patch
akan memperbarui konfigurasinya.Contoh
Anda menjalankan database dengan beberapa shard pada MIG bernama
example-database- group
. Setiap VM dalam MIG menyimpan shard pada disk tambahan dengan nama perangkatdata-disk
, yang ditentukan oleh template instance. MIG tidak memiliki konfigurasi stateful, dan Anda ingin mempertahankan disk data pada pembuatan ulang instance, autohealing, dan update. Anda juga sebaiknya melindungi disk data dari penghapusan saat VM dihapus.Mendeklarasikan persistent disk stateful sebelumnya sebagai stateless
Anda mungkin perlu mengonfigurasi disk stateful agar diperlakukan sebagai stateless. Misalnya:
Untuk mendeklarasikan semua disk dengan nama perangkat tertentu sebagai stateless, hapus konfigurasi disk dari kebijakan stateful.
MIG menerapkan perubahan pada kebijakan stateful secara otomatis dan asinkron ke semua instance. Update pada konfigurasi disk dalam kebijakan stateful tidak akan mengganggu instance VM yang sedang berjalan.
Untuk mengetahui informasi selengkapnya, lihat Menerapkan pembaruan kebijakan stateful.
Konsol
gcloud
Untuk menentukan disk mana dari kebijakan stateful MIG untuk menjadikannya stateless, gunakan flag
--remove-stateful-disks
dengan perintahgcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]
Ganti kode berikut:
Contoh
Anda menjalankan aplikasi lama dengan beberapa node pada MIG bernama
example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi di boot disk dengan nama perangkatboot-disk
, yang Anda konfigurasi sebagai stateful dalam kebijakan stateful MIG. Anda telah memindahkan data aplikasi ke disk tambahan dan sekarang ingin membuat boot disk menjadi stateless agar mudah mengupdate ke image baru.Untuk menghapus konfigurasi stateful dari boot disk, perbarui grup instance terkelola:
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
MIG menghapus konfigurasi stateful untuk nama perangkat
boot-disk
secara otomatis dan asinkron untuk boot disk semua instance dalam grup. Boot disk tetap terpasang ke instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance dipulihkan secara otomatis, MIG akan membuat ulang boot disk dari image yang ditentukan dalam template instance.REST
Untuk menentukan disk mana dari kebijakan stateful MIG untuk diubah menjadi stateless, hapus setiap konfigurasi disk dari kebijakan stateful MIG menggunakan metode
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Ganti kode berikut:
Contoh
Anda menjalankan aplikasi lama dengan beberapa node pada MIG bernama
example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi di boot disk dengan nama perangkatboot-disk
, yang Anda konfigurasi sebagai stateful dalam kebijakan stateful MIG. Anda telah memindahkan data aplikasi ke disk tambahan dan sekarang ingin menjadikan boot disk stateless agar mudah diupdate ke image baru.Untuk menghapus konfigurasi stateful boot disk, lakukan patch pada grup instance terkelola:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group { "statefulPolicy": { "preservedState": { "disks": { "boot-disk": null } } } }
MIG menghapus konfigurasi stateful untuk nama perangkat
boot-disk
secara otomatis dan asinkron untuk boot disk semua instance dalam grup. Boot disk tetap terpasang ke instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance dipulihkan secara otomatis, MIG akan membuat ulang boot disk dari image yang ditentukan dalam template instance.Menghapus persistent disk stateful dari MIG
Anda mungkin harus menghapus disk stateful sepenuhnya dari instance di MIG, misalnya, jika Anda mendesain ulang aplikasi dan memindahkan status dari disk tersebut.
MIG tidak mengizinkan penghapusan disk stateful, jadi Anda harus melakukan langkah-langkah berikut:
Mengonfigurasi persistent disk stateful secara individual untuk VM di MIG
Konfigurasi persistent disk stateful untuk VM tertentu dalam MIG dengan menambahkan nama perangkat disk ke konfigurasi per instance VM tersebut. Update VM untuk menerapkan konfigurasi per instance dan membuatnya efektif.
Mengonfigurasi persistent disk stateful satu per satu untuk VM tertentu di MIG berguna jika Anda perlu:
Menambahkan disk stateful yang ada ke VM baru di MIG
Anda dapat menambahkan disk stateful yang ada ke instance baru yang Anda buat secara manual di MIG. Hal ini berguna untuk memigrasikan aplikasi stateful dari VM mandiri yang ada ke MIG stateful, misalnya:
Tambahkan disk stateful yang ada saat membuat instance tertentu secara manual di MIG menggunakan gcloud CLI atau REST. MIG langsung menerapkan konfigurasi pada pembuatan VM.
gcloud
Untuk membuat VM dengan nama kustom dan memasang satu atau beberapa disk stateful yang ada ke VM tersebut, gunakan
gcloud compute instance-groups managed create-instance
dengan satu atau beberapa--stateful-disk
tanda.gcloud compute instance-groups managed create-instance NAME \ --instance VM_NAME \ [--zone ZONE | --region REGION] \ --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]
Ganti kode berikut:
Contoh
Anda ingin memiliki autohealing untuk server database yang saat ini berjalan pada VM mandiri bernama
db-instance
dan yang saat ini menyimpan data di disk bernamadb-data-disk-1
.Buat MIG stateful dengan autohealing, buat VM serupa di dalam MIG, dan pasang disk data
db-data-disk-1
yang ada ke instance baru sebagai disk stateful:REST
Untuk membuat satu atau beberapa instance di MIG, menetapkan nama VM kustom, dan memasang satu atau beberapa disk stateful yang ada ke instance ini, gunakan metode
instanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "instances": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } } }, ... ] }
Ganti kode berikut:
Contoh
Anda ingin memiliki autohealing untuk server database yang saat ini berjalan pada VM mandiri bernama
db-instance
dan yang saat ini menyimpan data di disk bernamadb-data-disk-1
.Buat MIG stateful dengan autohealing, buat instance serupa di dalam MIG, dan pasang disk data
db-data-disk-1
yang ada ke VM baru sebagai disk stateful:Menambahkan, mendeklarasikan, dan mengganti disk stateful satu per satu untuk VM di MIG
Konfigurasikan disk stateful satu per satu untuk instance terkelola dengan menambahkan atau memperbarui konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi per instance ke VM.
Mengonfigurasi disk stateful satu per satu berguna untuk tugas berikut:
Menambahkan disk stateful dari luar MIG ke VM di MIG tersebut. Anda dapat memasang disk apa pun dari luar MIG ke instance terkelola dengan menambahkan konfigurasi stateful untuk disk ke konfigurasi per instance yang terkait. Setelah Anda menerapkan konfigurasi, MIG akan otomatis memasang disk ke instance dan memperlakukannya sebagai stateful.
Mendeklarasikan persistent disk stateless sebelumnya sebagai stateful. Anda dapat mendeklarasikan disk stateless sebelumnya, yang saat ini terpasang ke VM, sebagai stateful dengan menambahkan konfigurasi stateful untuk disk ini, termasuk nama perangkat dan URI, ke konfigurasi per instance yang terkait. Setelah Anda menerapkan konfigurasi, MIG mulai mempertahankan disk sebagai stateful.
Mengganti disk stateful dengan disk berbeda. Mengganti satu disk stateful dengan disk stateful lain dapat berguna, misalnya, jika Anda memerlukan akses ke cadangan yang dipulihkan. Anda dapat menukar satu disk stateful dengan yang lain dengan memperbarui URI disk sambil mempertahankan nama perangkat yang sama dalam konfigurasi per instance. Setelah Anda menerapkan konfigurasi per instance yang diupdate, MIG akan melepaskan disk lama dan memasang disk baru menggunakan nama perangkat yang sama. Saat menerapkan update, pilih apakah akan membuat instance tetap berjalan, memulai ulang, atau membuatnya ulang. Mengganti boot disk memerlukan minimal mulai ulang VM.
gcloud
Untuk mengonfigurasi disk stateful satu per satu untuk VM di MIG, tambahkan atau perbarui konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Jika konfigurasi per instance belum ada untuk instance, gunakan perintah
gcloud compute instance-groups managed instance-configs create
dengan satu atau beberapa flag--stateful-disk
:gcloud compute instance-groups managed instance-configs create NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Jika konfigurasi per instance sudah ada untuk instance, gunakan perintah
gcloud compute instance-groups managed instance-configs update
dengan satu atau beberapa flag--stateful-disk
.Flag
--update-instance
(default) menerapkan perubahan secara langsung pada instance. Jika Anda menggunakan--no-update-instance
, perubahan tetap tidak diterapkan dan diterapkan saat Anda membuat ulang atau mengupdate instance berikutnya.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Ganti kode berikut:
Contoh
Data pada disk stateful yang saat ini terpasang,
data-disk-1
, rusak, dan Anda ingin memulihkannya dari cadangan terbaru. Anda telah membuat disk,data-disk-2
, dari snapshot untuk mengganti disk yang rusak di instance,db-instance-1
, yang dikelola oleh MIG stateful,example-database-mig
. Disk aslidata-disk-1
dilampirkan di bawah nama perangkatdata-disk
dengan aturan hapus otomatis untuk tidak pernah menghapus disk.Untuk mengganti
data-disk-1
dengandata-disk-2
, jalankan perintah berikut:gcloud compute instance-groups managed instance-configs update example-database-mig \ --instance db-instance-1 \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \ --update-instance \ --instance-update-minimal-action restart
Perintah tersebut melakukan hal berikut:
Terraform
Untuk mengonfigurasi disk stateful satu per satu untuk VM di MIG, tambahkan konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Untuk menambahkan konfigurasi per instance untuk VM, gunakan resource
google_compute_per_instance_config
dan sertakan blokpreserved_state
seperti yang ditunjukkan dalam contoh berikut.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk mengonfigurasi disk stateful satu per satu untuk VM di MIG, tambahkan atau perbarui konfigurasi disk stateful dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Jika konfigurasi per instance belum ada untuk VM yang ditentukan, gunakan metode
instanceGroupManagers.updatePerInstanceConfigs
atau metoderegionInstanceGroupManagers.updatePerInstanceConfigs
dengan konfigurasi stateful untuk satu atau beberapa disk:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Jika konfigurasi per instance sudah ada untuk VM yang ditentukan, gunakanmetode
instanceGroupManagers.patchPerInstanceConfigs
atau metoderegionInstanceGroupManagers.patchPerInstanceConfigs
dengan konfigurasi stateful untuk satu atau beberapa disk:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Ganti kode berikut:
Metode
updatePerInstanceConfigs
danpatchPerInstanceConfigs
memperbarui konfigurasi per instance yang ditentukan, tetapi tidak menerapkan pembaruan konfigurasi ke VM terkelola yang terkait. Perubahan diterapkan ke instance saat MIG diminta untuk membuat ulang atau mengupdate instance. Anda juga dapat meng-update instance secara selektif untuk menerapkan perubahan.Contoh
Data pada disk stateful yang saat ini terpasang,
data-disk-1
, rusak, dan Anda ingin memulihkannya dari cadangan terbaru. Anda telah membuat disk,data-disk-2
, dari snapshot untuk mengganti disk yang rusak di instance,db-instance-1
, yang dikelola oleh MIG stateful,example-database-mig
. Disk aslidata-disk-1
dilampirkan di bawah nama perangkatdata-disk
dengan aturan hapus otomatis untuk tidak pernah menghapus disk.Guna mengupdate konfigurasi per instance untuk
db-instance-1
dengan disk baru, panggil metodepatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "db-instance-1", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2" } } } } ] }
Metode ini men-patch konfigurasi per instance untuk
db-instance-1
:Update konfigurasi belum diterapkan ke VM
db-instance-1
. MIG menerapkan update konfigurasi saat Anda membuat ulang atau mengupdate instance.Untuk menerapkan update konfigurasi per instance ke VM
db-instance-1
, panggil metodeinstanceGroupManagers.applyUpdatesToInstances
untuk instance tersebut:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/db-instance-1"], "minimalAction": "RESTART" }
Metode ini memperbarui status instance terkelola yang dipertahankan, melepaskan
data-disk-1
dan menambahkandata-disk-2
dengan nama perangkatdata-disk
yang sama. KarenaminimalAction
disetel keRESTART
, metode ini akan memulai ulang VMdb-instance-1
, yang memungkinkan aplikasi database mulai menggunakan disk baru.Melepaskan disk stateful atau mendeklarasikannya stateless untuk VM individu
Anda mungkin perlu melepaskan disk stateful atau mengonfigurasinya agar diperlakukan sebagai stateless untuk setiap VM. Contoh:
Lepaskan disk stateful atau buat disk stateless untuk setiap VM dengan menghapus konfigurasi stateful disk dari konfigurasi per instance yang terkait atau hapus seluruh konfigurasi per instance. Saat Anda menerapkan perubahan:
Menghapus konfigurasi disk dari konfigurasi per instance tidak akan memulai ulang instance VM yang berjalan, kecuali jika Anda secara eksplisit memilih untuk melakukannya.
Untuk mengetahui informasi selengkapnya, lihat Menerapkan update konfigurasi per instance.
gcloud
Untuk melepaskan disk stateful atau mendeklarasikannya stateless satu per satu untuk VM dalam MIG, hapus konfigurasi disk stateful dari konfigurasi per instance yang terkait atau hapus keseluruhan konfigurasi per instance jika tidak berisi status lain. Update instance untuk menerapkan konfigurasi.
Untuk menghapus konfigurasi disk stateful dari konfigurasi per-instance yang terkait, gunakan perintah
gcloud compute instance-groups managed instance-configs update
dengan flag--remove-stateful-disks
. Flag--update-instance
(default) menerapkan perubahan secara langsung pada instance. Jika Anda menggunakan--no-update-instance
, perubahan tetap tidak diterapkan dan diterapkan saat Anda membuat ulang atau mengupdate instance berikutnya.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Ganti kode berikut:
Contoh
Anda menjalankan aplikasi lama pada MIG bernama
example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi di boot disk dengan nama perangkat,boot-disk
. Dengan menggunakan konfigurasi per instance, Anda mengonfigurasi setiap boot disk menjadi stateful. Sekarang Anda telah memindahkan data aplikasi ke disk tambahan, dan Anda ingin membuat boot disk stateless untuk setiap VM guna memfasilitasi update ke gambar baru.Untuk setiap instance, misalnya untuk
node-1
, jalankan perintah:gcloud compute instance-groups managed instance-configs update example-legacy-group \ --instance node-1 \ --remove-stateful-disks boot-disk \ --update-instance
Perintah tersebut melakukan hal berikut:
REST
Untuk melepaskan disk stateful atau mendeklarasikannya stateless satu per satu untuk VM di MIG, hapus konfigurasi disk stateful dari konfigurasi per instance yang terkait atau hapus keseluruhan konfigurasi per instance jika tidak berisi status lain. Kemudian, update instance untuk menerapkan konfigurasi.
Untuk menghapus konfigurasi disk stateful dari konfigurasi per instance yang terkait, gunakan metode
instanceGroupManagers.patchPerInstanceConfigs
atauregionInstanceGroupManagers.patchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : null }, ... }, "fingerprint: "FINGERPRINT" ... } ] }
Ganti kode berikut:
Metode
patchPerInstanceConfigs
mem-patch konfigurasi per instance yang ditentukan, tetapi tidak menerapkan perubahan pada VM terkait. Perubahan tersebut diterapkan ke VM saat Anda membuat ulang atau mengupdate instance. Anda dapat menerapkan perubahan secara manual atau menggunakan update berkelanjutan otomatis.Contoh
Anda menjalankan aplikasi lama pada MIG yang bernama
example-legacy-group
. Setiap VM di MIG menyimpan data aplikasi di boot disk dengan nama perangkatboot-disk
. Anda mengonfigurasi boot disk sebagai stateful dalam konfigurasi per instance MIG saat memigrasikan VM mandiri ke MIG. Anda telah memindahkan data aplikasi ke disk tambahan dan sekarang ingin menjadikan boot disk stateless untuk setiap VM guna memudahkan update ke image baru.Masukan
Kami ingin mempelajari kasus penggunaan, tantangan, dan masukan Anda tentang MIG stateful. Berikan masukan Anda kepada tim kami di mig-discuss@google.com.
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-22 UTC.
-