Cara kerja MIG stateful


Grup instance terkelola stateful (MIG stateful) mempertahankan status unik setiap instance mesin virtual (VM)—termasuk nama VM, persistent disk yang terpasang, alamat IP, dan/atau metadata—saat mesin dimulai ulang, dibuat ulang, dipulihkan otomatis (autohealing), atau diperbarui.

Halaman ini menjelaskan cara kerja MIG stateful. Lihat Mengonfigurasi MIG stateful untuk mempelajari cara menyiapkan MIG stateful.

Ringkasan cara kerja MIG stateful

MIG dianggap stateful jika Anda telah membuat konfigurasi stateful.

Anda membuat konfigurasi stateful dengan menetapkan kebijakan stateful yang tidak kosong dan/atau satu atau beberapa konfigurasi per instance yang tidak kosong:

Konfigurasi ini berlaku setelah Anda atau MIG menerapkannya:

  • MIG otomatis menerapkan konfigurasi kebijakan stateful Anda ke instance baru dan yang sudah ada.
  • Saat membuat atau memperbarui konfigurasi per instance, Anda dapat memilih apakah akan menerapkan konfigurasi baru secara manual atau secara otomatis.

Setelah konfigurasi stateful (kebijakan stateful dan/atau konfigurasi per instance) diterapkan, Anda dapat memverifikasinya dengan memeriksa status terpelihara setiap instance terkelola.

Perubahan berikutnya pada ukuran atau konfigurasi stateful MIG (misalnya mengurangi ukuran MIG, atau menghapus atau meninggalkan instance dari MIG) dapat memengaruhi status terpelihara instance yang terkait.

Cara konfigurasi stateful diterapkan ke instance terkelola

Konfigurasi stateful Anda berlaku setelah Anda atau MIG menerapkannya. Penerapan konfigurasi stateful ke instance MIG bergantung pada konfigurasi:

  • Kebijakan stateful: MIG otomatis menerapkan konfigurasi kebijakan stateful Anda ke instance baru dan yang sudah ada.
  • Konfigurasi per instance: Saat membuat atau memperbarui konfigurasi per instance, Anda dapat memilih apakah akan menerapkan konfigurasi baru secara manual atau otomatis.

Menerapkan konfigurasi stateful ke instance terkelola.

Cara pembaruan kebijakan stateful diterapkan ke instance

Saat Anda membuat atau memperbarui kebijakan stateful, misalnya menambahkan atau menghapus disk stateful, MIG akan menerapkan konfigurasi kebijakan stateful Anda ke semua instance terkelola di dalam grup secara otomatis dan asinkron. MIG juga otomatis menerapkan konfigurasi kebijakan stateful Anda ke instance baru selama proses pembuatannya, misalnya, saat ukuran MIG meningkat atau saat Anda membuat instance di MIG secara manual.

Setelah konfigurasi diterapkan, Anda dapat melihat pengaruh pembaruan tersebut terhadap status terpelihara dari kebijakan di setiap instance terkelola.

Pembaruan kebijakan stateful tidak mengganggu VM yang sedang berjalan.

Saat Anda memperbarui kebijakan stateful untuk menambahkan disk stateful, MIG akan memperbarui resource setiap VM, dengan mengubah nilai flag autoDelete disk (instances.disks[].autoDelete):

  • MIG menetapkan autoDelete ke FALSE untuk disk yang Anda konfigurasi sebagai stateful. Hal ini mencegah penghapusan disk tersebut saat instance dibuat ulang melalui autohealing, pembaruan, atau pembuatan ulang manual.
  • MIG menetapkan autoDelete agar cocok dengan konfigurasi template instance Anda (instanceTemplates.disks[].autoDelete) untuk semua disk yang bersifat stateless.

Mengubah nilai flag autoDelete tidak mengganggu VM yang sedang berjalan.

Cara pembaruan konfigurasi per instance diterapkan ke instance

Saat membuat atau memperbarui konfigurasi per instance, Anda dapat memilih apakah akan menerapkan konfigurasi baru secara manual atau otomatis. Untuk mengetahui informasi selengkapnya, lihat Menerapkan konfigurasi stateful dari konfigurasi per instance.

Tabel berikut menunjukkan tingkat gangguan yang diperlukan untuk menerapkan berbagai pembaruan konfigurasi per instance ke sebuah VM:

Pembaruan konfigurasi per instance Gangguan pada VM yang diperlukan untuk menerapkan pembaruan
Mengonfigurasi disk, yang ditentukan oleh template instance, menjadi stateful (ditambahkan ke konfigurasi per instance) REFRESH
Mengonfigurasi disk, yang ditentukan oleh template instance, menjadi stateless (dihapus dari konfigurasi per instance) REFRESH
Menambahkan disk, yang tidak ditentukan oleh template instance, dan memasangnya ke VM REFRESH
Menghapus disk, yang tidak ditentukan oleh template instance, dan melepasnya dari VM REFRESH
Menambahkan key-value pair metadata REFRESH
Menghapus key-value pair metadata REFRESH
Menambahkan boot disk eksternal, yang tidak dibuat dari template instance, dan memasangnya ke VM REPLACE
Menghapus boot disk eksternal, yang tidak dibuat dari template instance, melepasnya dari VM, dan membuat boot disk dari template instance REPLACE
Menetapkan alamat IP internal REPLACE
Menghapus alamat IP internal REPLACE

Saat menerapkan konfigurasi per instance yang telah diperbarui ke VM terkaitnya, MIG akan melakukan tindakan berikut, bergantung pada item stateful mana yang diperbarui:

  • Menambahkan (atau menghapus) disk, alamat IP, atau metadata ke status terpelihara dari konfigurasi di instance terkelola yang terkait.
  • Memasang (atau melepas) disk yang tidak ditentukan oleh template instance ke VM.
  • Menetapkan (atau menghapus) key-value pair metadata yang spesifik untuk VM.
  • Menetapkan (atau menghapus) alamat IP yang ditentukan ke instance VM.

Setelah konfigurasi per instance diterapkan ke VM terkelola yang terkait, Anda dapat melihat pengaruh pembaruan ini terhadap status terpelihara dari konfigurasi di instance tersebut

Status terpelihara instance terkelola

Setelah konfigurasi diterapkan, MIG akan menerjemahkan template instance dan konfigurasi stateful ke dalam "status terpelihara" untuk setiap instance terkelola.

Anda dapat melihat status terpelihara dengan memeriksa instance terkelola.

MIG otomatis mempertahankan status terpelihara ini, dan secara otomatis serta asinkron menerapkan status ini ke setiap instance VM aktual yang sesuai di MIG.

Status terpelihara VM terkelola yang dihasilkan dengan menerapkan konfigurasi stateful.

Status terpelihara menjelaskan item individual mana (persistent disk, alamat IP, metadata) yang stateful untuk instance tertentu:

Status terpelihara yang dihasilkan dari penerapan konfigurasi stateful.

Status terpelihara yang dihasilkan berdasarkan kebijakan stateful disimpan terpisah dari status terpelihara yang dihasilkan berdasarkan konfigurasi per instance. MIG menggabungkan keduanya saat membuat ulang VM, dengan status terpelihara dari konfigurasi per instance akan diprioritaskan.

Status terpelihara sesuai dengan kebijakan stateful

Kebijakan stateful menentukan item, yang ada di semua instance dan ditentukan dalam template instance MIG, yang akan dipelihara secara individual untuk setiap instance VM di sebuah MIG.

Setelah konfigurasi diterapkan, MIG akan menerjemahkan kebijakan stateful ke dalam status terpelihara spesifik per instance (managedInstances[].preservedStateFromPolicy). MIG mempertahankan status terpelihara ini secara otomatis.

Contoh berikut menunjukkan MIG dengan dua instance VM yang menggunakan sebuah disk stateful yang ditentukan dalam kebijakan stateful yang berlaku untuk setiap instance. Tidak ada konfigurasi per instance dalam contoh ini.

Status terpelihara yang dihasilkan dari kebijakan stateful saja.

Gambar sebelumnya menunjukkan MIG dengan dua instance:

  • Template instance menentukan boot disk dengan nama perangkat boot-disk dan disk dengan nama perangkat data-disk untuk semua instance dalam MIG.
  • Kebijakan stateful mendeklarasikan data-disk sebagai stateful. Boot disk tetap stateless. Perhatikan bahwa disk dengan nama perangkat data-disk harus ditentukan oleh template instance.
  • Setelah konfigurasi diterapkan, MIG akan menerjemahkan kebijakan stateful ke dalam status terpelihara spesifik per instance untuk setiap instance terkelola. Status terpelihara memberikan instruksi kepada MIG agar mempertahankan disk data-disk-1 untuk instance VM node-1 dan disk data-disk-2 untuk instance node-2, karena kedua disk ini memiliki nama perangkat data-disk yang dikonfigurasi dalam kebijakan stateful.
  • Contoh ini tidak memiliki konfigurasi per instance.

Status terpelihara sesuai dengan konfigurasi per instance

Konfigurasi per instance menentukan item yang harus dipertahankan untuk VM tertentu. Item ini tidak harus ditentukan dalam template instance MIG.

Setelah konfigurasi diterapkan, MIG akan menerjemahkan setiap konfigurasi per instance ke dalam status terpelihara (preservedStateFromConfig) untuk instance yang terkait.

Contoh berikut menunjukkan MIG dengan dua instance VM yang metadata dan disk stateful-nya ditentukan dalam konfigurasi per instance (PIC) untuk setiap instance. Tidak ada kebijakan stateful dalam contoh ini.

Status terpelihara yang dihasilkan dari PIC saja.

Dalam gambar sebelumnya:

  • Template instance menentukan boot disk dengan nama perangkat boot-disk untuk semua instance di MIG. Boot disk bersifat stateless untuk semua VM di MIG.
  • Konfigurasi per instance menentukan status yang harus dipertahankan untuk dua instance di MIG: node-1 dan node-2.
    • Untuk instance node-1, konfigurasi per instance menentukan disk my-legacy-1 dengan nama perangkat legacy-disk dan metadata node-id:xyz273.
    • Untuk instance node-2, konfigurasi per instance menentukan disk my-logs-1 dengan nama perangkat logs-disk dan metadata node-id:pqr851.
  • Setelah konfigurasi diterapkan, MIG akan otomatis menerjemahkan konfigurasi per instance menjadi status terpelihara untuk setiap instance terkelola. Status terpelihara menginstruksikan MIG untuk memasang dan mempertahankan berikut ini:
    • Persistent disk my-legacy-1 dan metadata node-id:xyz273 untuk VM node-1
    • Persistent disk my-logs-1 dan metadata node-id:pqr851 untuk VM node-2
  • Contoh ini tidak memiliki kebijakan stateful.

Perhatikan bahwa, dalam contoh ini, disk dan metadata yang berstatus terpelihara dari konfigurasi per instance tidak ditentukan oleh template instance, melainkan oleh konfigurasi per instance saja. Hal ini karena konfigurasi yang ditentukan dalam konfigurasi per instance berlaku spesifik untuk VM tertentu, sehingga tidak harus ada di template instance.

Konfigurasi per instance lebih diprioritaskan daripada kebijakan stateful dan template instance

Anda dapat mengonfigurasi sebuah kebijakan stateful dan satu atau beberapa konfigurasi per instance di satu MIG. Misalnya, dalam kebijakan stateful, Anda dapat menentukan disk stateful yang ada di semua instance, dan dalam konfigurasi per instance, Anda dapat menentukan metadata spesifik per instance.

Konfigurasi per instance dalam instance terkelola lebih diprioritaskan daripada konfigurasi yang bertentangan dalam template instance atau kebijakan stateful.

Jika Anda menerapkan konfigurasi per instance untuk menambahkan disk atau antarmuka jaringan yang sudah ditentukan dalam kebijakan stateful, MIG akan menyimpan konfigurasi stateful untuk disk atau antarmuka jaringan tersebut dalam status terpelihara dari konfigurasi per instance (preservedStateFromConfig) untuk instance terkelola itu dan menghapus entri yang bertentangan dari status terpeliharanya dari kebijakan (preservedStateFromPolicy). MIG harus me-refresh VM jika status terpelihara yang baru berbeda dengan status sebelumnya. Refresh ini dapat mengakibatkan perubahan metadata, perubahan alamat IP eksternal, atau pertukaran disk untuk melepas disk dari konfigurasi status terpelihara terakhirnya dan memasang disk yang ditentukan dalam konfigurasi status terpelihara yang baru.

Dalam contoh berikut, konfigurasi per instance untuk instance VM node-1 menentukan ulang:

  • Status terpelihara disk dengan nama perangkat logs-disk, yang awalnya ditentukan dalam kebijakan stateful
  • Nilai kunci metadata logmonth, yang awalnya ditentukan dalam template instance.

Konfigurasi dari konfigurasi per instance lebih diprioritaskan daripada kebijakan stateful dan template instance.

Dalam gambar sebelumnya:

  • Template instance menentukan:
    • Tiga disk untuk semua instance di MIG, dengan nama perangkat boot-disk, data-disk, dan logs-disk.
    • Metadata yang umum untuk semua instance: logmonth:jan.
  • Kebijakan stateful yang mendeklarasikan bahwa disk dengan nama perangkat data-disk dan logs-disk bersifat stateful; boot disk tetap stateless.
  • Konfigurasi per instance untuk instance node-1 menentukan ulang:
    • Konfigurasi stateful untuk disk dengan nama perangkat logs-disk: Ini menginstruksikan MIG untuk memasang disk pd-logs-feb ke node-1 di bagian nama perangkat logs-disk.
    • Metadata, yang ditentukan dalam template instance, dengan nilai kunci logmonth:jan: Ini menginstruksikan MIG untuk menetapkan nilai logmonth:feb ke node-1.
  • Setelah Anda menerapkan konfigurasi, MIG akan otomatis menerjemahkan kebijakan stateful dan konfigurasi per instance ke dalam status terpelihara spesifik per instance, yang disimpan di instance terkelola.
    • Status terpelihara dari kebijakan menginstruksikan agar MIG mempertahankan disk data-disk-1 untuk VM node-1. Perhatikan bahwa status terpelihara dari kebijakan tidak mencakup konfigurasi stateful untuk disk dengan nama perangkat logs-disk karena konfigurasi ini diabaikan oleh konfigurasi untuk logs-disk dalam konfigurasi per instance.
    • Status terpelihara dari konfigurasi menginstruksikan agar MIG memasang dan mempertahankan persistent disk logs-disk serta menetapkan dan mempertahankan metadata logmonth:feb untuk VM instance node-1. Perhatikan bahwa status terpelihara dari konfigurasi akan mengabaikan konfigurasi untuk logs-disk dari kebijakan stateful dan mengabaikan metadata logmonth:jan dari template instance.

Dampak penghapusan resource dari kebijakan stateful terhadap status terpelihara

Jika Anda menghapus konfigurasi resource dari kebijakan stateful, MIG akan otomatis menghapus preservedStateFromPolicy yang terkait untuk semua instance terkelola. Resource komputasi tetap terpasang ke instance, tetapi tidak lagi stateful.

Dalam contoh berikut, menghapus disk dari kebijakan stateful akan menyebabkan disk tersebut dihapus dari status terpelihara dari kebijakan di semua VM terkelola. Disk tersebut tetap terpasang ke VM-nya, tetapi tidak lagi stateful dan mungkin dihapus dan dibuat ulang pada pembuatan ulang VM berikutnya.

Menghapus disk dari kebijakan stateful.

Jika item yang sama, misalnya, persistent disk stateful, ada baik di kebijakan stateful maupun di konfigurasi per instance, dan Anda menghapus konfigurasi stateful-nya dari kebijakan stateful saja, MIG tidak akan menghapusnya dari konfigurasi per instance. Untuk VM yang terkait, resource yang dikonfigurasi akan tetap stateful.

Dalam contoh berikut, menghapus disk dari kebijakan stateful tidak mengakibatkan terhapusnya disk itu dari konfigurasi per instance. Disk tetap stateful karena masih menjadi bagian dari status terpelihara dari konfigurasi.

Menghapus disk dari kebijakan stateful saat konfigurasi per instance juga ada.

Dampak penghapusan item dari konfigurasi per instance terhadap status terpelihara

Jika Anda menghapus konfigurasi stateful dari konfigurasi per instance, lalu menerapkan perubahan tersebut, MIG akan otomatis menghapus konfigurasi stateful dari status terpelihara dari konfigurasi (preservedStateFromConfig) di instance terkelola yang terkait. Resource komputasi yang tidak lagi menjadi bagian dari status terpelihara akan menjadi stateless.

Dampak penghapusan konfigurasi disk stateful dari konfigurasi per instance terhadap status terpelihara

Jika Anda menghapus disk stateful dari konfigurasi per instance, lalu menerapkan perubahan itu ke instance VM yang terkait, MIG akan melakukan hal berikut:

  • Konfigurasi disk dihapus dari status terpelihara dari konfigurasi di instance tersebut.
  • Jika disk dengan nama perangkat yang sama ditentukan dalam template instance, tetapi tidak dikonfigurasi di kebijakan stateful, disk akan tetap terpasang ke VM yang ditentukan. Namun, disk akan menjadi stateless untuk VM yang ditentukan dan mungkin akan dibuat ulang sesuai dengan konfigurasi template instance pada peristiwa pembuatan ulang, autohealing, atau pembaruan VM berikutnya.
  • Jika disk dengan nama perangkat yang sama tidak ditentukan dalam template instance, disk akan otomatis dilepas dari VM begitu konfigurasi per-instance yang telah diperbarui diterapkan ke VM terkait, terlepas dari konfigurasi hapus otomatisnya.
  • Jika disk dengan nama perangkat yang sama dikonfigurasi dalam kebijakan stateful, konfigurasi kebijakan stateful-nya akan diterjemahkan ke dalam status terpelihara dari kebijakan untuk instance terkelola yang ditentukan, dan disk tetap stateful.

Dalam contoh berikut, penghapusan disk biru dan hijau dari konfigurasi per instance node-1 akan mengakibatkan dihapusnya kedua disk dari status terpelihara dari konfigurasi di instance terkelola node-1.

  • Disk biru tetap terpasang ke instance VM node-1, tetapi sekarang menjadi stateless dan dapat dibuat ulang pada pembuatan ulang VM berikutnya sesuai dengan konfigurasi template instance.
  • Disk hijau dilepas dari instance VM node-1 karena template instance tidak menentukan disk dengan nama perangkat yang sama.

Menghapus disk dari konfigurasi per instance.

Dampak penghapusan metadata stateful dari konfigurasi per instance terhadap status terpelihara

Menghapus metadata stateful dari konfigurasi per instance dan menerapkan perubahan itu akan menyebabkan MIG segera menghapus metadata stateful tersebut dari status terpelihara di instance terkelola yang terkait:

  • Jika Anda menentukan metadata dengan kunci yang sama dalam template instance, MIG akan segera menerapkan nilai dari template instance ke instance tersebut.
  • Jika metadata dengan kunci yang sama tidak ditentukan dalam template instance, MIG akan segera menghapus nilai kunci dari instance.

Dalam contoh berikut, penghapusan metadata mode:dev dan id:xyz273 dari konfigurasi per instance node-1 akan otomatis menghapus kedua key-value pair itu dari status terpelihara dari konfigurasi di instance terkelola node-1.

  • mode:dev diganti dengan mode:test template instance di VM.
  • id:xyz273 segera dihapus dari VM karena template instance tidak memiliki metadata dengan id kunci yang sama untuk menggantikannya.

Menghapus metadata dari konfigurasi per instance.

Dampak penghapusan konfigurasi IP stateful dari konfigurasi per instance terhadap status terpelihara

Menghapus konfigurasi IP internal dari konfigurasi per instance akan membuat alamat IP untuk VM ini menjadi stateless. Tidak ada perubahan otomatis yang dijalankan pada VM ini, tetapi alamat IP dapat berubah setelah VM dibuat ulang, diperbarui, atau dipulihkan secara otomatis.

Fallback ke kebijakan stateful

Jika Anda menghapus konfigurasi stateful untuk sebuah resource dari konfigurasi per instance, dan Anda mengonfigurasi resource yang sama dalam kebijakan stateful, resource tersebut akan tetap stateful sesuai dengan kebijakan stateful.

MIG akan otomatis menghapus konfigurasi stateful item tersebut dari preservedStateFromConfig dan menambahkannya ke preservedStateFromPolicy untuk instance terkelola yang terkait.

Dalam contoh berikut, menghapus disk dari konfigurasi per instance node-1 tidak mengakibatkan dihapusnya disk itu dari kebijakan stateful. Disk tetap stateful sesuai dengan kebijakan stateful:

  • MIG akan otomatis menghapus disk dari preserveStateFromConfig untuk instance terkelola node-1 karena disk ini tidak lagi menjadi bagian dari konfigurasi per instance-nya.
  • MIG akan otomatis menambahkan disk ke preserveStateFromPolicy untuk instance terkelola node-1 karena konfigurasi kebijakan stateful masih ada dan tidak lagi bertentangan dengan konfigurasi per instance node-1.

Menghapus disk dari konfigurasi per instance, tetapi tidak dari kebijakan stateful.

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 selanjutnya