Visualizzare l'arresto graduale in un'istanza Compute Engine


Questo documento spiega come visualizzare le impostazioni e l'avanzamento di un arresto graduale in un'istanza Compute Engine. Per scoprire di più sull'arresto sicuro, consulta la Panoramica dell'arresto sicuro.

Quando visualizzi i dettagli di un'istanza, puoi eseguire le seguenti operazioni:

  • Visualizza le impostazioni di arresto graduale. Puoi verificare se l'arresto graduale è attivo e la sua durata.

  • Monitora l'arresto normale. Quando è in corso un arresto controllato, puoi controllare quanto segue:

    • Quando il processo di arresto controllato scade.

    • Se è in corso un'operazione di interruzione o eliminazione.

Prima di iniziare

  • 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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 Google Cloud sull'autenticazione.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per visualizzare l'arresto graduale di un'istanza Compute, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione compute.instances.get on the project necessaria per visualizzare l'arresto graduale di un'istanza di calcolo.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Visualizzare le impostazioni di arresto controllato

Per visualizzare le impostazioni di arresto graduale in un'istanza di calcolo, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome dell'istanza.

    La pagina dei dettagli dell'istanza si apre nella scheda Dettagli.

  3. Per controllare le impostazioni di arresto graduale, nella sezione Criteri di disponibilità, controlla il valore del campo Durata massima dell'arresto graduale. Questo campo mostra il periodo di arresto graduale. Se viene visualizzato un trattino (-), significa che l'arresto graduale è disattivato.

gcloud

Per visualizzare le impostazioni di arresto graduale in un'istanza, utilizza il comando gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.

  • ZONE: la zona in cui esiste l'istanza.

Se l'arresto elegante è abilitato, l'output è simile al seguente:

...
scheduling:
  ...
  gracefulShutdown:
    enabled: true
    maxDuration:
      seconds: 'MAX_DURATION'
  ...
...

L'output include il valore MAX_DURATION. Questo valore indica la durata in secondi del periodo di arresto graduale. Se non hai specificato un periodo di arresto personalizzato quando hai attivato l'arresto graduale nell'istanza, Compute Engine omette il campo maxDuration e imposta il periodo di arresto graduale su 10 minuti.

REST

Per visualizzare le impostazioni di arresto controllato in un'istanza, effettua una richiesta GET al metodo instances.get beta:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai creato l'istanza.

  • ZONE: la zona in cui esiste l'istanza.

  • INSTANCE_NAME: il nome dell'istanza.

Se l'arresto elegante è abilitato, l'output è simile al seguente:

{
  ...
  "scheduling": {
    ...
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  },
  ...
}

L'output include il valore MAX_DURATION. Questo valore indica la durata in secondi del periodo di arresto graduale. Se non hai specificato un periodo di arresto personalizzato quando hai attivato l'arresto graduale nell'istanza, Compute Engine omette il campo maxDuration e imposta il periodo di arresto graduale su 10 minuti.

Monitorare l'arresto controllato

Per monitorare un arresto graduale in corso in un'istanza di calcolo, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome dell'istanza.

    La pagina dei dettagli dell'istanza si apre nella scheda Dettagli.

  3. Se è in corso un arresto controllato, nella sezione Informazioni di base controlla i seguenti campi:

    • Stato: questo campo mostra lo stato dell'istanza. Durante un arresto elegante, questo campo mostra Arresto in attesa e un timer conto alla rovescia. Il timer effettua il conto alla rovescia fino al termine dell'interruzione di servizio.

    • Stato target: questo campo indica se Compute Engine sta interrompendo (Arrestato) o eliminando (Eliminato) l'istanza.

gcloud

Per monitorare un arresto controllato in corso in un'istanza, utilizza il comando gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.

  • ZONE: la zona in cui esiste l'istanza.

Se è in corso un arresto elegante, l'output è simile al seguente:

...
resourceStatus:
  ...
  shutdownDetails:
    maxDuration:
      seconds: 'MAX_DURATION'
    requestTimestamp: 'REQUEST_TIMESTAMP'
    stopState: STOP_STATE
    targetState: TARGET_STATE
...
status: PENDING_STOP
...

Questo output include i seguenti valori:

  • MAX_DURATION: la durata del periodo di arresto graduale in secondi. Dopo che Compute Engine ha impostato STOP_STATE su STOPPING, elimina il campo maxDuration.

  • REQUEST_TIMESTAMP: il timestamp dell'inizio di STOP_STATE.

  • STOP_STATE: la fase di arresto dell'istanza. Il valore può essere uno dei seguenti:

    • PENDING_STOP: Compute Engine ha avviato l'arresto graduale. L'istanza rimane in questo stato finché non termini manualmente l'arresto graceful o il periodo di arresto graceful non scade.

    • STOPPING: l'arresto graduale è terminato e Compute Engine continua con l'operazione di arresto o eliminazione.

  • TARGET_STATE: indica se Compute Engine sta interrompendo (STOPPED) o eliminando (DELETED) l'istanza.

Se è in esecuzione un'operazione di arresto, dopo che Compute Engine ha impostato il campo status su TERMINATE, elimina il campo shutdownDetails.

REST

Per monitorare un arresto controllato in corso in un'istanza, invia una richiesta GET al metodo instances.get beta:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai creato l'istanza.

  • ZONE: la zona in cui esiste l'istanza.

  • INSTANCE_NAME: il nome dell'istanza.

Se è in corso un arresto elegante, l'output è simile al seguente:

{
  ...
  "resourceStatus": {
    ...
    "shutdownDetails": {
      "maxDuration": {
        "seconds": "MAX_DURATION"
      },
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
  },
  ...
  "status": "PENDING_STOP",
  ...
}

Questo output include i seguenti valori:

  • MAX_DURATION: la durata del periodo di arresto graduale in secondi. Dopo che Compute Engine ha impostato STOP_STATE su STOPPING, elimina il campo maxDuration.

  • REQUEST_TIMESTAMP: il timestamp dell'inizio di STOP_STATE.

  • STOP_STATE: la fase di arresto dell'istanza. Il valore può essere uno dei seguenti:

    • PENDING_STOP: Compute Engine ha avviato l'arresto graduale. L'istanza rimane in questo stato finché non termini manualmente l'arresto graceful o il periodo di arresto graceful non scade.

    • STOPPING: l'arresto graduale è terminato e Compute Engine continua con l'operazione di arresto o eliminazione.

  • TARGET_STATE: indica se Compute Engine sta interrompendo (STOPPED) o eliminando (DELETED) l'istanza.

Se è in esecuzione un'operazione di arresto, dopo che Compute Engine ha impostato il campo status su TERMINATE, elimina il campo shutdownDetails.

Server dei metadati

  1. Connettersi all'istanza.

  2. Esegui una query sul server di metadati:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
    

    Se è in corso un arresto elegante, l'output è simile al seguente:

    {
      "maxDuration": "MAX_DURATION",
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
    

    L'output include i seguenti valori:

    • MAX_DURATION: la durata del periodo di chiusura graduale in secondi. Dopo che Compute Engine ha impostato STOP_STATE su STOPPING, elimina il campo maxDuration.

    • REQUEST_TIMESTAMP: il timestamp dell'inizio di STOP_STATE.

    • STOP_STATE: la fase di arresto dell'istanza. Il valore può essere uno dei seguenti:

      • PENDING_STOP: Compute Engine ha avviato l'interruzione di servizio graduale. L'istanza rimane in questo stato finché non interrompi manualmente l'arresto graceful o il periodo di arresto graceful non scade.

      • STOPPING: l'arresto graduale è terminato e Compute Engine prosegue con l'operazione di arresto o eliminazione.

    • TARGET_STATE: indica se Compute Engine sta interrompendo (STOPPED) o eliminando (DELETED) l'istanza.

Passaggi successivi