Simulare un evento di manutenzione dell'host


Questa pagina descrive come testare gli effetti delle norme 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 in tempo reale sulle tue applicazioni.
  • In che modo le applicazioni e i job batch gestiscono la preemption e l'arresto quando utilizzi 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 carichi di lavoro in esecuzione su nodi single-tenant durante un evento di manutenzione dell'host e gli effetti del criterio 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 del criterio di manutenzione dell'host configurato.

Prima di iniziare

  • Esamina il limite di frequenza delle richieste API regionale per SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

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

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione 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 un criterio di manutenzione dell'host impostato su Esegui 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 un criterio di manutenzione dell'host impostato per eseguire la migrazione all'interno del gruppo di nodi:
    • Se il numero di nodi specificati è minore o uguale al numero totale di nodi inutilizzati 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 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 dell'API per la metrica simulate_maintenance_event_requests_per_region.

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

Puoi simulare un evento di manutenzione per un'istanza di calcolo utilizzando 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 torna a NONE.

Per eseguire una query sulla chiave dell'evento di manutenzione, consulta Eseguire 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 configurate del criterio di manutenzione dell'host:

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di calcolo 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.

Simulare la manutenzione dell'host per le istanze di calcolo che vengono terminate

Puoi simulare un evento di manutenzione per un'istanza di calcolo utilizzando 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 dei criteri di manutenzione dell'host configurati. 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 calcolo 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 calcolo 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 compute 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.

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

Puoi simulare un evento di manutenzione dell'host su nodi di proprietà esclusiva utilizzando Google Cloud CLI o una richiesta API. Durante la simulazione dell'evento di manutenzione dell'host su una VM di proprietà esclusiva, 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 forzare i nodi single-tenant ad attivare il criterio di manutenzione configurato:

 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 virgole, 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, quando specifichi più nomi di nodi, utilizza valori separati da virgole, ad esempio "node-1","node-2","node-3".

Passaggi successivi