Simula un evento di manutenzione dell'host


Questa pagina descrive come testare gli effetti della policy di manutenzione dell'host dell'istanza Compute Engine sulle tue applicazioni.

Puoi simulare un evento di manutenzione sulle VM per testare quanto segue:

  • Gli effetti della migrazione live sulle tue applicazioni.
  • In che modo le applicazioni e i job batch gestiscono il prerilascio e l'arresto quando usi una o più VM spot.
  • Il modo in cui le applicazioni gestiscono il processo di arresto e riavvio per le istanze configurate per essere terminate e riavviate durante gli eventi di manutenzione anziché eseguire la migrazione live.
  • Il comportamento dei workload in esecuzione su nodi single-tenant durante un evento di manutenzione dell'host e gli effetti della policy di manutenzione dell'host della VM single-tenant sulle applicazioni in esecuzione sulle VM.

Se provi a simulare un evento di manutenzione dell'host su un'istanza che non supporta la migrazione live, l'istanza viene terminata o riavviata, a seconda della policy di manutenzione dell'host configurata.

Prima di iniziare

  • Esamina il limite di frequenza API a livello di regione per SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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

        Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a 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.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Limitazioni

  • Per simulare correttamente un evento di manutenzione su un gruppo di nodi single-tenant con una policy di manutenzione dell'host impostata in modo da eseguire la migrazione all'interno del gruppo di nodi, devi attivare l'evento di manutenzione in sequenza su ogni nodo.
  • Per un gruppo di nodi single-tenant, quando provi a simulare un evento di manutenzione dell'host e il gruppo di nodi ha una policy di manutenzione dell'host impostata per l'esecuzione della migrazione all'interno del gruppo di nodi:
    • Se il numero di nodi specificato è inferiore o uguale al numero totale di nodi di holdback riservati, la simulazione dell'evento di manutenzione dell'host viene eseguita contemporaneamente per tutti i nodi specificati.
    • Se il numero di nodi specificato è maggiore del numero totale di nodi di holdback riservati, la simulazione non va a buon fine.
  • Il numero di simulazioni di eventi di manutenzione che puoi avviare al minuto per regione è limitato dal limite di frequenza API per la metrica simulate_maintenance_event_requests_per_region.

Simula gli eventi di manutenzione dell'host per testare la migrazione live

Per simulare un evento di manutenzione per un'istanza di computing, puoi usare Google Cloud CLI o una richiesta API. Questo evento simulato include le diverse attività di manutenzione che si verificano in un evento di manutenzione regolare. In questo modo, puoi osservare il processo end-to-end e testare eventuali automazioni che potresti aver implementato.

Durante la simulazione dell'evento di manutenzione dell'host per un'istanza che utilizza la migrazione live, la chiave dei metadati maintenance-event dell'istanza subisce le seguenti modifiche:

  1. All'inizio della simulazione, il valore della chiave dei metadati maintenance-event viene modificato da NONE a MIGRATE_ON_HOST_MAINTENANCE.
  2. Per tutta la durata dell'evento di simulazione, il valore rimane MIGRATE_ON_HOST_MAINTENANCE.
  3. Al termine della simulazione, il valore è di nuovo NONE.

Per eseguire una query sulla chiave dell'evento di manutenzione, consulta Esegui una query sulla chiave dei metadati dell'evento di manutenzione.

gcloud

Utilizza il comando compute instances simulate-maintenance-event per simulare un evento di manutenzione per un'istanza e testare le impostazioni della policy di manutenzione dell'host configurata:

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di computing in cui vuoi simulare l'evento di manutenzione.

    Puoi specificare più nomi di istanze separati da spazi singoli per simulare eventi di manutenzione su più istanze nella stessa zona. Ad esempio, instance-1 instance-2 instance-3.

  • ZONE: la zona in cui si trova l'istanza.

REST

Crea una richiesta POST al metodo compute.instances.simulateMaintenanceEvent:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta.
  • INSTANCE_NAME: il nome dell'istanza per la quale vuoi simulare l'evento di manutenzione.
  • ZONE: la zona in cui si trova l'istanza.

Simula la manutenzione dell'host per le istanze di computing che vengono terminate

Per simulare un evento di manutenzione per un'istanza di computing, puoi usare Google Cloud CLI o una richiesta API. Questo evento simulato include le diverse attività di manutenzione che si verificano in un evento di manutenzione regolare. In questo modo, puoi osservare il processo end-to-end e testare eventuali automazioni che potresti aver implementato.

Inoltre, utilizzando il parametro --with-extended-notifications con un tipo di macchina supportato puoi testare l'avvio manuale della manutenzione dell'host durante l'evento simulato.

gcloud

  1. Utilizza il comando compute instances simulate-maintenance-event per simulare un evento di manutenzione per un'istanza e testare le impostazioni della policy di manutenzione dell'host configurata. Se vuoi, puoi includere il flag --with-extended-notifications.

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza di computing in cui vuoi simulare l'evento di manutenzione.

      Puoi specificare più nomi di istanze separati da spazi singoli per simulare eventi di manutenzione su più istanze nella stessa zona. Ad esempio, instance-1 instance-2 instance-3.

    • ZONE: la zona in cui si trova l'istanza.

  2. (Facoltativo) Per avviare manualmente l'evento di manutenzione simulato, utilizza il comando compute instances perform-maintenance.

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza di computing in cui vuoi simulare l'evento di manutenzione.

      Puoi specificare più nomi di istanze separati da spazi singoli per simulare eventi di manutenzione su più istanze nella stessa zona. Ad esempio, instance-1 instance-2 instance-3.

    • ZONE: la zona in cui si trovano le istanze.

REST

  1. Crea una richiesta POST al metodo compute.instances.simulateMaintenanceEvent. Se vuoi, puoi includere il parametro di query withExtendedNotifications.

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto per questa richiesta.
    • INSTANCE_NAME: il nome dell'istanza per la quale vuoi simulare l'evento di manutenzione.
    • ZONE: la zona in cui si trova l'istanza.
  2. (Facoltativo) Per avviare manualmente l'evento di manutenzione simulato, crea una richiesta POST al metodo compute.instances.performMaintenance.

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza di computing in cui vuoi avviare l'evento di manutenzione.

      Puoi specificare più nomi di istanze separati da spazi singoli per eseguire eventi di manutenzione su più istanze nella stessa zona. Ad esempio, instance-1 instance-2 instance-3.

    • ZONE: la zona in cui si trovano le istanze.

Simula eventi di manutenzione dell'host sui nodi single-tenant

Puoi simulare un evento di manutenzione dell'host su nodi single-tenant utilizzando Google Cloud CLI o una richiesta API. Durante la simulazione dell'evento di manutenzione dell'host su una VM single-tenant, il valore della chiave dei metadati maintenance-event non cambia e rimane NONE per tutta la durata della simulazione.

gcloud

Esegui il comando sole-tenancy node-groups simulate-maintenance-event per obbligare i nodi single-tenant ad attivare la propria policy di manutenzione configurata:

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

Sostituisci quanto segue:

  • NODE_GROUP: il nome del gruppo di nodi in cui vuoi simulare l'evento di manutenzione.

  • NODE_NAMES: i nomi dei nodi in cui vuoi simulare l'evento di manutenzione. Quando specifichi più nomi di nodi, utilizza valori separati da virgola, ad esempio node-1,node-2,node-3.

  • ZONE: la zona in cui si trovano i nodi.

REST

Crea una richiesta POST al metodo compute.nodeGroups.simulateMaintenanceEvent:

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

{
  "nodes": [
      "NODE_NAMES"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta.
  • ZONE: la zona in cui si trovano i nodi.
  • NODE_GROUP: il nome del gruppo di nodi in cui vuoi simulare l'evento di manutenzione.
  • NODE_NAMES: i nomi dei nodi in cui vuoi simulare l'evento di manutenzione. Racchiudi il nome del nodo tra virgolette doppie, ad esempio "node-1". Inoltre, se specifichi più nomi di nodi, utilizza valori separati da virgola, ad esempio "node-1","node-2","node-3".

Passaggi successivi