Menyimulasikan peristiwa pemeliharaan host


Halaman ini menjelaskan cara menguji efek kebijakan pemeliharaan host instance mesin virtual (VM) pada aplikasi Anda.

Anda dapat menyimulasikan peristiwa pemeliharaan pada VM dalam situasi berikut:

  • Anda memiliki VM yang dikonfigurasi untuk melakukan migrasi langsung selama peristiwa pemeliharaan, dan Anda perlu menguji efek migrasi langsung pada aplikasi Anda.
  • Anda memiliki tugas batch yang berjalan pada instance preemptible VM, dan Anda perlu menguji cara aplikasi Anda menangani preemption dan penonaktifan pada satu atau beberapa instance.
  • Instance Anda dikonfigurasikan untuk berhenti dan memulai ulang selama peristiwa pemeliharaan, bukan migrasi langsung, dan Anda perlu menguji cara aplikasi menangani proses penonaktifan dan mulai ulang ini.
  • Anda ingin menguji bagaimana beban kerja yang berjalan di sole-tenant node selama peristiwa pemeliharaan host, dan lihat dampak kebijakan pemeliharaan host sole-tenant VM pada aplikasi yang berjalan di VM.

Sebelum memulai

  • Tinjau batas kapasitas API untuk metrik simulate_maintenance_event_requests.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Batasan

  • Jika Anda mencoba menyimulasikan peristiwa pemeliharaan host di VM yang tidak mendukung migrasi langsung, peristiwa tersebut akan dihentikan atau dimulai ulang, bergantung pada kebijakan pemeliharaan host yang dikonfigurasi

  • Saat Anda mencoba menyimulasikan peristiwa pemeliharaan host pada grup node yang memiliki kebijakan pemeliharaan host untuk bermigrasi dalam grup node, jika jumlah node yang ditentukan kurang dari atau sama dengan jumlah total node penahanan yang dicadangkan, simulasi peristiwa pemeliharaan host dijalankan secara bersamaan untuk semua node yang ditentukan. Sedangkan, jika jumlah node yang ditentukan lebih besar dari jumlah total node penahanan yang dicadangkan, simulasi akan gagal.

  • Untuk menyimulasikan peristiwa pemeliharaan secara benar pada grup node yang memiliki kebijakan pemeliharaan host yang disetel untuk bermigrasi dalam grup node, Anda harus memicu peristiwa pemeliharaan secara berurutan pada setiap node.

Menyimulasikan peristiwa pemeliharaan host

Anda dapat menyimulasikan peristiwa pemeliharaan pada VM menggunakan Google Cloud CLI atau permintaan API.

Selama simulasi peristiwa pemeliharaan host, kunci metadata maintenance-event VM mengalami perubahan berikut:

  1. Pada awal simulasi, nilai kunci metadata maintenance-event berubah dari NONE menjadi MIGRATE_ON_HOST_MAINTENANCE.
  2. Selama durasi peristiwa simulasi, nilainya tetap sebagai MIGRATE_ON_HOST_MAINTENANCE.
  3. Setelah simulasi berakhir, nilai akan kembali ke NONE.

Untuk mengkueri kunci peristiwa pemeliharaan, lihat Membuat kueri kunci metadata peristiwa pemeliharaan.

gcloud

Jalankan perintah instances simulate-maintenance-event untuk memaksa instance mengaktifkan tindakan kebijakan pemeliharaan yang dikonfigurasi:

gcloud compute instances simulate-maintenance-event VM_NAME \
    --zone ZONE

Ganti kode berikut:

  • VM_NAME: nama VM tempat Anda ingin menyimulasikan peristiwa pemeliharaan.

    Anda dapat menentukan beberapa nama VM yang dipisahkan dengan satu spasi untuk menyimulasikan peristiwa pemeliharaan pada lebih dari satu VM di zona yang sama. Misalnya, instance-1 instance-2 instance-3.

  • ZONE: zona tempat instance berada.

REST

Di Compute Engine API, buat permintaan ke metode compute.instances.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/simulateMaintenanceEvent

Ganti kode berikut:

  • PROJECT_ID: ID project untuk permintaan ini.
  • VM_NAME: nama instance tempat Anda ingin melakukan simulasi peristiwa pemeliharaan.

    Anda dapat menentukan beberapa nama instance yang dipisahkan dengan satu spasi untuk menyimulasikan peristiwa pemeliharaan pada lebih dari satu instance di zona yang sama. Misalnya, instance-1 instance-2 instance-3.

  • ZONE: zona tempat instance berada.

Simulasikan peristiwa pemeliharaan host di sole-tenant node

Anda dapat menyimulasikan peristiwa pemeliharaan host pada sole-tenant node menggunakan Google Cloud CLI atau permintaan API. Selama simulasi peristiwa pemeliharaan host pada sole-tenant VM, nilai kunci metadata maintenance-event tidak berubah dan tetap NONE selama simulasi.

gcloud

Jalankan perintah sole-tenancy node-groups simulate-maintenance-event untuk memaksa sole-tenant node mengaktifkan kebijakan pemeliharaan yang telah dikonfigurasi:

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

Ganti kode berikut:

  • NODE_GROUP: nama grup node tempat Anda ingin menyimulasikan peristiwa pemeliharaan.

  • NODE_NAMES: nama node tempat Anda ingin menyimulasikan peristiwa pemeliharaan. Saat menentukan beberapa nama node, gunakan nilai yang dipisahkan koma, misalnya, node-1,node-2,node-3.

  • ZONE: zona tempat node berada.

REST

Di Compute Engine API, buat permintaan ke metode compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [NODE_NAMES]
}

Ganti kode berikut:

  • PROJECT_ID: ID project untuk permintaan ini.

  • ZONE: zona tempat node berada.

  • NODE_GROUP: nama grup node tempat Anda ingin menyimulasikan peristiwa pemeliharaan.

  • NODE_NAMES: nama node tempat Anda ingin menyimulasikan peristiwa pemeliharaan. Sertakan nama node dalam tanda kutip ganda, misalnya, "node-1". Selain itu, saat menentukan beberapa nama node, gunakan nilai yang dipisahkan koma, misalnya, "node-1","node-2","node-3".

Langkah selanjutnya