Metadata instance berguna untuk menetapkan properti dan berkomunikasi dengan aplikasi Anda melalui server metadata. Misalnya, Anda dapat menggunakan metadata untuk mengonfigurasi identitas instance virtual machine (VM), variabel lingkungan, informasi tentang arsitektur cluster, atau rentang data yang menjadi tanggung jawab VM.
Dengan mengonfigurasi metadata stateful dalam grup instance terkelola (MIG) Anda memastikan bahwa metadata khusus instance dipertahankan di peristiwa autohealing, update, dan pembuatan ulang instance terkelola.
Konfigurasikan metadata stateful satu per satu untuk instance VM dalam MIG dengan menetapkannya dalam konfigurasi per instance dan menerapkan konfigurasi. Anda dapat menetapkan konfigurasi per instance pada saat pembuatan instance atau terhadap instance terkelola yang sudah ada. Setelah konfigurasi per instance diterapkan, MIG menyimpan metadata stateful dalam kolom status yang dipertahankan dari konfigurasi (preservedStateFromConfig
) dari instance terkelola.
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:
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.
Saat Anda menghapus instance secara permanen (baik secara manual atau dengan mengubah ukuran), MIG tidak mempertahankan metadata stateful instance tersebut.
- Membuat instance terkelola dari template instance menggunakan nama instance yang disediakan.
- Membuat konfigurasi per instance dengan metadata stateful yang disediakan dan menetapkan metadata tersebut pada instance.
- Menyimpan metadata stateful dalam status yang dipertahankan dari konfigurasi (
preservedStateFromConfig
) instance terkelola yang terkait. NAME
: nama MIG tempat membuat instanceINSTANCE_NAME
: nama instance yang akan dibuatKEY
danVALUE
: key-value pair metadata stateful yang akan ditetapkan satu per satu untuk instance selain metadata yang ditentukan dalam template instance- Nilai kunci yang Anda tetapkan di sini lebih diprioritaskan daripada nilai kunci yang bertentangan dari template instance
PROJECT_ID
: project ID untuk permintaanZONE
: 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 instanceINSTANCE_NAME
: nama instance yang akan dibuatKEY
danVALUE
: key-value pair metadata stateful yang akan ditetapkan satu per satu untuk instance selain metadata yang ditentukan dalam template instance- Nilai kunci yang Anda tetapkan di sini lebih diprioritaskan daripada nilai kunci yang bertentangan dari template instance
- Flag
--stateful-metadata
untuk menyetel atau mengubah metadata, atau - Flag
--remove-stateful-metadata
untuk menghapus metadata stateful khusus instance. NAME
: Nama grup instance terkelola.INSTANCE_NAME
: Nama instance yang akan mengonfigurasi metadata stateful.KEY=VALUE
: Key-value pair metadata stateful yang akan ditetapkan satu per satu untuk instance selain metadata yang ditentukan dalam template instance. Nilai kunci yang Anda tetapkan di sini lebih diprioritaskan daripada nilai kunci yang bertentangan dari template instance.KEY
: Kunci metadata stateful khusus instance yang akan dihapus dari konfigurasi per instance.- Jika nilai untuk kunci tidak ditentukan oleh template instance, key-value pair akan dihapus sepenuhnya dari instance saat perubahan diterapkan.
- Jika nilai untuk kunci ditentukan oleh template instance, nilai dari template instance akan ditetapkan pada instance ketika perubahan diterapkan.
MINIMAL_ACTION
: Menjalankan setidaknya tindakan yang ditentukan saat menerapkan update konfigurasi per instance ke instance.MINIMAL_ACTION
hanya dapat ditetapkan jika flag--update-instance
digunakan. Nilainya harus berupa salah satu dari berikut:none
: Tidak ada tindakan.refresh
: Menerapkan update yang dapat diterapkan tanpa menghentikan instance.restart
: Menghentikan instance, lalu memulainya lagi.replace
: Membuat ulang instance.
Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.
- Menetapkan metadata
mode:standby
dalam konfigurasi per instance yang terkait dengan VM,node-12
, di MIGexample-cluster
. - Menghapus metadata
logging:elaborate
dari konfigurasi per instance untuk instancenode-12
. - Menerapkan perubahan konfigurasi per instance ke VM
node-12
:- Menetapkan metadata
mode:standby
, sesuai dengan konfigurasi. - Menetapkan metadata
logging:basic
dari template instance karena nilai untuk kuncilogging
tidak lagi ditentukan oleh konfigurasi per instance.
- Menetapkan metadata
- Perubahan ini segera diterapkan ke VM secara default karena flag
--no-update-instance
dihilangkan. - VM terus berjalan selama update karena flag
--instance-update-minimal-action
dihilangkan dan tindakan yang paling tidak mengganggu akan dipilih untuk update secara default, dalam hal ini:refresh
. 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.INSTANCE_NAME
: Nama VM yang akan mengonfigurasi metadata stateful.KEY
danVALUE
: Key-value pair metadata stateful untuk ditetapkan satu per satu untuk instance selain metadata yang ditentukan dalam template instance.- Nilai metadata stateful yang ditentukan untuk kunci yang sudah ada dalam template instance akan menggantikan nilai dari template instance.
- Entri metadata lainnya dari template instance tetap tidak terpengaruh dan tersedia.
- Menyediakan
null
sebagai nilai akan menghapus kunci dari konfigurasi per instance.
FINGERPRINT
: (Opsional). Sidik jari untuk konfigurasi tertentu jika sudah ada. Digunakan untuk penguncian optimistis.- Menetapkan metadata
mode:standby
dalam konfigurasi per instance yang terkait dengan VM,node-12
, di MIGexample-cluster
. - Menghapus metadata
logging:elaborate
dari konfigurasi per instance karena nilai yang diberikan adalahnull
. - Menetapkan metadata
mode:standby
, sesuai dengan konfigurasi per instance. - Menetapkan metadata
logging:basic
dari template instance karena nilai untuk kuncilogging
tidak lagi ditentukan oleh konfigurasi per instance. - VM tetap berjalan selama update karena
minimalAction
ditetapkan keNONE
, yang memungkinkan MIG menggunakan tindakan yang paling tidak mengganggu yang diperlukan untuk update. Update metadata instance memerlukan tindakanREFRESH
, yang tidak mengganggu instance yang sedang berjalan. - Pelajari tentang Menyimpan dan mengambil metadata instance lebih lanjut
- Mengonfigurasi persistent disk stateful untuk VM di MIG.
- Pelajari cara menerapkan, melihat, dan menghapus konfigurasi stateful.
- 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 metadata stateful memiliki batasan berikut:
MIG dengan konfigurasi stateful—MIG stateful—memiliki batasan berikut:
Menetapkan metadata stateful pada pembuatan instance
Menetapkan metadata stateful saat membuat instance di MIG secara manual. Hal ini berguna untuk memigrasikan aplikasi stateful pada VM mandiri ke MIG stateful dan saat membuat instance stateful.
Saat Anda membuat instance secara manual di MIG dan menyediakan metadata stateful, MIG akan melakukan tugas-tugas berikut:
gcloud
Untuk membuat instance terkelola dengan nama kustom dan menetapkan metadata stateful pada VM tersebut, gunakan perintah
gcloud compute instance-groups managed create-instance
dengan flag--stateful-metadata
.gcloud compute instance-groups managed create-instance NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...]
Ganti kode berikut:
Contoh
Anda perlu men-deploy cluster node,
example-cluster
, yang dapat beroperasi dalam salah satu dari dua mode:active
ataustandby
. Anda menetapkan mode satu per satu untuk setiap VM dalam cluster menggunakan metadata, misalnya:mode:active
. Anda juga mengonfigurasi seperti apa logging terperinci untuk setiap node, menggunakan kunci metadatalogging
yang dapat ditetapkan kebasic
atauelaborate
. Aplikasi pada node dikonfigurasi menggunakan nilai dari metadata instance.Untuk membuat node aktif,
node-12
, dengan logging yang terperinci, Anda harus menjalankan perintah berikut:gcloud compute instance-groups managed create-instance example-cluster \ --instance node-12 \ --stateful-metadata mode=active,logging=elaborate
Perintah ini membuat VM,
node-12
, dalam MIGexample-cluster
dan menetapkan dua key-value pair metadata,mode:active
danlogging:elaborate
, untuk instance baru.Terraform
Untuk membuat instance terkelola dengan nama kustom dan menetapkan metadata stateful pada VM tersebut, gunakan resource
google_compute_per_instance_config
.Contoh berikut menggunakan MIG zona. Jika Anda belum memiliki MIG zona, buat MIG zona dengan VM yang dibatasi pada satu zona.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk membuat satu atau beberapa instance terkelola di MIG dengan nama VM kustom dan untuk menetapkan metadata stateful satu per satu pada VM tersebut, gunakan metode
instanceGroupManagers.createInstances
. Untuk MIG regional, gunakan metoderegionInstanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY" : "VALUE", ... } } }, ... ] }
Ganti kode berikut:
Contoh
Anda perlu men-deploy cluster node,
example-cluster
, yang dapat beroperasi dalam salah satu dari dua mode:active
ataustandby
. Anda menetapkan mode satu per satu untuk setiap VM dalam cluster menggunakan metadata, misalnya:mode:active
. Anda juga mengonfigurasi seperti apa logging terperinci untuk setiap node, menggunakan kunci metadatalogging
yang dapat ditetapkan kebasic
atauelaborate
. Aplikasi pada node dikonfigurasi menggunakan nilai dari metadata instance.Untuk membuat node aktif,
node-12
, dengan logging yang terperinci, jalankan metode berikut:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/createInstances { "instance": [ { "name": "node-12", "preservedState" : { "metadata": { "mode":"active", "logging":"elaborate" } } } ] }
Metode ini akan membuat VM,
node-12
, dalam MIGexample-cluster
dan menetapkan dua key-value pair metadata,mode:active
danlogging:elaborate
, untuk instance baru.Menetapkan, mengubah, dan menghapus metadata stateful satu per satu untuk instance VM yang ada
Menetapkan, mengubah, atau menghapus metadata stateful untuk instance yang ada di MIG dengan menyetelnya ke dalam konfigurasi per instance yang terkait, lalu menerapkan konfigurasi dengan mengupdate instance.
gcloud
Untuk mengonfigurasi metadata stateful satu per satu untuk instance VM di MIG, tetapkan atau hapus metadata stateful dalam konfigurasi per instance yang terkait. Jika Anda menerapkan konfigurasi ke instance secara bersamaan (
--update-instance
), Anda dapat memilih apakah instance akan tetap berjalan, memulai ulang, atau membuatnya ulang. Jika Anda tidak menerapkan konfigurasi (--no-update-instance
), perubahan Anda tidak akan diterapkan sampai Anda membuat ulang atau mengupdate instance.Jika konfigurasi per instance tidak ada untuk instance tertentu, gunakan perintah
gcloud compute instance-groups managed instance-configs create
dengan salah satu flag berikut:gcloud compute instance-groups managed instance-configs create NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Jika konfigurasi per instance sudah ada untuk instance tertentu, gunakan perintah
gcloud compute instance-groups managed instance-configs update
dengan:gcloud compute instance-groups managed instance-configs update NAME \ --instance INSTANCE_NAME \ [--stateful-metadata KEY=VALUE[,KEY=VALUE,...]] \ [--remove-stateful-metadata KEY[,KEY,...]] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Ganti kode berikut:
Contoh
Anda memiliki cluster node,
example-cluster
, yang dapat beroperasi dalam salah satu dari dua mode:active
ataustandby
. Anda menetapkan mode satu per satu untuk setiap VM di cluster menggunakan metadata, misalnya:mode:active
. Anda juga mengonfigurasi seperti apa logging terperinci untuk setiap node, menggunakan kunci metadatalogging
yang dapat ditetapkan kebasic
atauelaborate
. Aplikasi di setiap node menggunakan nilai dari metadata instance.Template instance menentukan metadata
mode:active
danlogging:basic
untuk digunakan sebagai default untuk semua instance. Anda telah menetapkanlogging:elaborate
dalam konfigurasi per instance untuk VMnode-12
di cluster. Sekarang, Anda ingin mengalihkannode-12
ke mode standby dan mengalihkan logging kebasic
untuk VM ini.Untuk mengalihkan instance
node-12
ke mode standby dan logging-nya ke versi dasar, jalankan perintah berikut:gcloud compute instance-groups managed instance-configs update example-cluster \ --instance node-12 \ --stateful-metadata mode=standby \ --remove-stateful-metadata logging
Perintah tersebut melakukan hal berikut:
REST
Untuk mengonfigurasi metadata stateful satu per satu untuk instance VM yang ada di MIG, tetapkan atau hapus metadata dalam konfigurasi per instance yang terkait. Kemudian, update instance untuk menerapkan konfigurasi.
Jika konfigurasi per instance belum ada untuk instance tertentu, gunakan metode
instanceGroupManagers.updatePerInstanceConfigs
dengan metadata stateful:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Jika konfigurasi per instance sudah ada untuk instance tertentu, gunakan metode
instanceGroupManagers.patchPerInstanceConfigs
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Ganti kode berikut:
Metode
updatePerInstanceConfigs
danpatchPerInstanceConfigs
memperbarui konfigurasi per instance yang ditentukan, tetapi tidak menerapkan pembaruan konfigurasi ke instance VM yang terkait. Perubahan tersebut diterapkan ke VM saat Anda mengupdate atau membuat ulang instance. Untuk menerapkan perubahan ke VM, Anda dapat menerapkan update secara manual atau menggunakan Updater dalam mode proaktif atau oportunistik.Contoh
Anda memiliki cluster node,
example-cluster
, yang dapat beroperasi dalam salah satu dari dua mode:active
ataustandby
. Anda menetapkan mode satu per satu untuk setiap VM di cluster menggunakan metadata, misalnya:mode:active
. Anda juga mengonfigurasi seperti apa logging terperinci untuk setiap node, menggunakan kunci metadatalogging
yang dapat ditetapkan kebasic
atauelaborate
. Aplikasi di setiap node menggunakan nilai dari metadata instance.Template instance menentukan metadata
mode:active
danlogging:basic
untuk digunakan sebagai default untuk semua instance. Anda telah menetapkanlogging:elaborate
dalam konfigurasi per instance untuk VMnode-12
di cluster. Sekarang, Anda ingin mengalihkannode-12
ke mode standby dan mengalihkan logging kebasic
untuk instance ini.Untuk mengalihkan VM
node-12
ke mode standby dan logging-nya ke versi dasar, patch konfigurasi per instance yang terkait dengan menggunakan metodepatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-12", "preservedState" : { "metadata": { "mode": "standby", "logging": null } } } ] }
Metode ini akan melakukan hal berikut:
Update konfigurasi belum diterapkan ke instance VM
node-12
. Update konfigurasi akan diterapkan saat Anda selanjutnya membuat ulang atau mengupdate instance atau jika Anda menggunakan update otomatis proaktif.Untuk menerapkan update konfigurasi per instance ke instance VM
node-12
, panggil metodeinstanceGroupManagers.applyUpdatesToInstances
untuk instance tersebut:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-12"], "minimalAction": "NONE" }
Metode ini menerapkan konfigurasi per instance yang telah diupdate ke VM
node-12
: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.
-