Simulare un evento di manutenzione dell'host

Questa pagina descrive come testare gli effetti del criterio di manutenzione dell'host dell'istanza di macchina virtuale (VM) sulle tue applicazioni.

Puoi simulare un evento di manutenzione sulle tue VM nelle seguenti situazioni:

  • Hai delle VM configurate per la migrazione live durante gli eventi di manutenzione e devi testare gli effetti della migrazione live sulle tue applicazioni.
  • Hai job batch in esecuzione su istanze VM prerilasciabili e devi testare in che modo le tue applicazioni gestiscono il prerilascio e l'arresto di una o più istanze.
  • Le istanze sono configurate per l'arresto e il riavvio durante gli eventi di manutenzione anziché la migrazione live e devi verificare in che modo le applicazioni gestiscono questo processo di arresto e riavvio.
  • Vuoi testare il comportamento dei carichi di lavoro in esecuzione sui nodi single-tenant durante un evento di manutenzione dell'host e vedere gli effetti del criterio di manutenzione dell'host della VM single-tenant sulle applicazioni in esecuzione sulle VM.

Prima di iniziare

  • Esamina il limite di frequenza API per la metrica simulate_maintenance_event_requests.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Limitazioni

  • Se provi a simulare un evento di manutenzione dell'host su VM che non supportano la migrazione live, queste verranno terminate o riavviate a seconda del criterio di manutenzione dell'host configurato.

  • Quando provi a simulare un evento di manutenzione dell'host su un gruppo di nodi in cui il criterio di manutenzione dell'host è impostato su migrazione all'interno del gruppo di nodi, se il numero di nodi specificato è inferiore o uguale al numero totale di nodi di isolamento riservati, la simulazione dell'evento di manutenzione dell'host viene eseguita contemporaneamente per tutti i nodi specificati. Invece, se il numero di nodi specificato è maggiore del numero totale di nodi di isolamento riservati, la simulazione non va a buon fine.

  • Per simulare correttamente un evento di manutenzione su un gruppo di nodi per cui è impostato un criterio di manutenzione dell'host per la migrazione all'interno del gruppo di nodi, devi attivare l'evento di manutenzione in sequenza su ciascun nodo.

Simulare eventi di manutenzione dell'host

Puoi simulare un evento di manutenzione su una VM utilizzando Google Cloud CLI o una richiesta API.

Durante la simulazione dell'evento di manutenzione dell'host, la chiave di metadati maintenance-event della VM subisce le seguenti modifiche:

  1. All'inizio della simulazione, il valore della chiave di metadati maintenance-event cambia 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

Esegui il comando instances simulate-maintenance-event per forzare un'istanza ad attivare l'azione del criterio di manutenzione configurato:

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

Sostituisci quanto segue:

  • VM_NAME: il nome della VM in cui vuoi simulare l'evento di manutenzione.

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

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

REST

Nell'API Compute Engine, invia una richiesta al metodo compute.instances.simulateMaintenanceEvent:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta.
  • VM_NAME: il nome dell'istanza 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.

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

Puoi simulare un evento di manutenzione dell'host sui 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, la coppia chiave-valore dei metadati maintenance-event non cambia e rimane NONE per tutta la 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: 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

Nell'API Compute Engine, invia una richiesta 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: 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