Menyimulasikan peristiwa pemeliharaan host


Halaman ini menjelaskan cara menguji efek kebijakan pemeliharaan host instance Compute Engine pada aplikasi Anda.

Anda dapat menyimulasikan peristiwa pemeliharaan pada VM untuk menguji hal berikut:

  • Dampak migrasi langsung pada aplikasi Anda.
  • Cara aplikasi dan tugas batch Anda menangani preemption dan penonaktifan saat menggunakan satu atau beberapa Spot VM.
  • Cara aplikasi Anda menangani proses penonaktifan dan mulai ulang untuk instance yang dikonfigurasi untuk menghentikan dan memulai ulang selama peristiwa pemeliharaan, bukan migrasi langsung.
  • Perilaku workload yang berjalan di node tenant tunggal selama peristiwa pemeliharaan host, dan lihat dampak kebijakan pemeliharaan host VM tenant tunggal pada aplikasi yang berjalan di VM.

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

Sebelum memulai

  • Tinjau batas kapasitas API regional untuk SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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

  • Untuk menyimulasikan peristiwa pemeliharaan secara benar pada grup node tenant tunggal yang memiliki kebijakan pemeliharaan host yang disetel ke migrasi dalam grup node, Anda harus memicu peristiwa pemeliharaan secara berurutan pada setiap node.
  • Untuk grup node tenant tunggal, saat Anda mencoba menyimulasikan peristiwa pemeliharaan host dan grup node memiliki kebijakan pemeliharaan host yang ditetapkan 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 akan berjalan untuk semua node yang ditentukan secara bersamaan.
    • Jika jumlah node yang ditentukan lebih besar dari jumlah total node penahanan yang dicadangkan, simulasi akan gagal.
  • Jumlah simulasi peristiwa pemeliharaan yang dapat Anda mulai per menit per wilayah dibatasi oleh batas kapasitas API untuk metrik simulate_maintenance_event_requests_per_region.

Menyimulasikan peristiwa pemeliharaan host untuk menguji migrasi langsung

Anda dapat menyimulasikan peristiwa pemeliharaan untuk instance komputasi menggunakan Google Cloud CLI atau permintaan API. Peristiwa simulasi ini mencakup berbagai aktivitas pemeliharaan yang terjadi dalam peristiwa pemeliharaan rutin. Dengan begitu, Anda dapat mengamati proses menyeluruh dan menguji otomatisasi apa pun yang mungkin telah Anda terapkan.

Selama simulasi peristiwa pemeliharaan host untuk instance yang menggunakan migrasi langsung, kunci metadata maintenance-event instance akan 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 membuat kueri kunci peristiwa pemeliharaan, lihat Membuat kueri kunci metadata peristiwa pemeliharaan.

gcloud

Gunakan perintah compute instances simulate-maintenance-event untuk menyimulasikan peristiwa pemeliharaan untuk instance dan menguji setelan kebijakan pemeliharaan host yang dikonfigurasi:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone=ZONE --with-extended-notifications=True

Ganti kode berikut:

  • INSTANCE_NAME: nama instance komputasi tempat Anda ingin menyimulasikan 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.

REST

Buat permintaan POST ke metode compute.instances.simulateMaintenanceEvent:

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

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini.
  • INSTANCE_NAME: nama instance yang ingin Anda gunakan untuk menyimulasikan peristiwa pemeliharaan.
  • ZONE: zona tempat instance berada.

Menyimulasikan pemeliharaan host untuk instance komputasi yang dihentikan

Anda dapat menyimulasikan peristiwa pemeliharaan untuk instance komputasi menggunakan Google Cloud CLI atau permintaan API. Peristiwa simulasi ini mencakup berbagai aktivitas pemeliharaan yang terjadi dalam peristiwa pemeliharaan rutin. Dengan begitu, Anda dapat mengamati proses menyeluruh dan menguji otomatisasi apa pun yang mungkin telah Anda terapkan.

Selain itu, dengan menggunakan parameter --with-extended-notifications dengan jenis mesin yang didukung, Anda dapat menguji pemeliharaan host yang dimulai secara manual selama peristiwa simulasi.

gcloud

  1. Gunakan perintah compute instances simulate-maintenance-event untuk menyimulasikan peristiwa pemeliharaan untuk instance dan menguji setelan kebijakan pemeliharaan host yang dikonfigurasi. Secara opsional, Anda dapat menyertakan flag --with-extended-notifications.

    gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
       --zone=ZONE --with-extended-notifications=True
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance komputasi tempat Anda ingin menyimulasikan 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.

  2. Opsional: Untuk memulai peristiwa pemeliharaan simulasi secara manual, gunakan perintah compute instances perform-maintenance.

    gcloud compute instances perform-maintenance INSTANCE_NAME \
       --zone=ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance komputasi tempat Anda ingin menyimulasikan 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.

REST

  1. Buat permintaan POST ke metode compute.instances.simulateMaintenanceEvent. Anda dapat menyertakan parameter kueri withExtendedNotifications secara opsional.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent?withExtendedNotifications=True
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk permintaan ini.
    • INSTANCE_NAME: nama instance yang ingin Anda gunakan untuk menyimulasikan peristiwa pemeliharaan.
    • ZONE: zona tempat instance berada.
  2. Opsional: Untuk memulai peristiwa pemeliharaan simulasi secara manual, buat permintaan POST ke metode compute.instances.performMaintenance.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance compute tempat Anda ingin memulai peristiwa pemeliharaan.

      Anda dapat menentukan beberapa nama instance yang dipisahkan dengan satu spasi untuk melakukan 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

Buat permintaan POST 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 berikutnya