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:

  • Efek 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 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.

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 yang digunakan untuk memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi 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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Batasan

  • Untuk menyimulasikan peristiwa pemeliharaan secara benar pada grup node tenant eksklusif 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 region 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 tersimulasi ini mencakup berbagai aktivitas pemeliharaan yang terjadi dalam peristiwa pemeliharaan rutin. Dengan begitu, Anda dapat mengamati proses end-to-end 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 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

Gunakan perintah compute instances simulate-maintenance-event untuk menyimulasikan skenario 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 Compute 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 peristiwa pemeliharaannya ingin Anda simulasikan.
  • 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 tersimulasi ini mencakup berbagai aktivitas pemeliharaan yang terjadi dalam peristiwa pemeliharaan rutin. Dengan begitu, Anda dapat mengamati proses end-to-end 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 mulai pemeliharaan host secara manual selama peristiwa tersimulasi.

gcloud

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

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

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance Compute 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 tersimulasi secara manual, gunakan perintah compute instances perform-maintenance.

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

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance Compute 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 peristiwa pemeliharaannya ingin Anda simulasikan.
    • 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