Ridurre il tempo di arresto delle istanze Compute Engine

Questo documento spiega come ridurre il tempo di arresto di un'istanza Compute Engine configurando l'istanza in modo che salti l'arresto del sistema operativo guest all'arresto o all'eliminazione.

Se configuri un'istanza in modo che salti l'arresto del sistema operativo guest all'arresto o all'eliminazione, Compute Engine arresta immediatamente il sistema operativo guest quando lo stato dell'istanza cambia in STOPPING. Questa azione ti aiuta a rilasciare più rapidamente la quota o le risorse accelerando l'arresto o l'eliminazione di un'istanza. Per saperne di più sulle fasi che un'istanza attraversa durante l'arresto o l'eliminazione, incluso l'intervallo predefinito per l'arresto normale del sistema operativo guest, consulta Operazione di arresto.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso a Trusted Cloud by S3NS servizi e API. 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. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init
    2. Set a default region and zone.

    REST

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

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare un'istanza in modo da ignorare l'arresto del sistema operativo guest, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per configurare un'istanza in modo che salti l'arresto del sistema operativo guest. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per configurare un'istanza in modo che salti l'arresto del sistema operativo guest sono necessarie le seguenti autorizzazioni:

  • Per creare un'istanza:
    • compute.instances.create sul progetto
    • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
    • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly sullo snapshot
    • Per utilizzare un template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
    • Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy: compute.networks.useExternalIp sul progetto
    • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul progetto
    • Per impostare i tag per la VM: compute.instances.setTags sulla VM
    • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
    • Per impostare un service account da utilizzare per la VM: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create sul progetto
    • Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura: compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco
  • Per creare un template di istanza: compute.instanceTemplates.create sul progetto
  • Per aggiornare un'istanza: compute.instances.update sull'istanza

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Configura le istanze in modo che ignorino l'arresto del sistema operativo guest

Per configurare un'istanza di computing in modo che salti l'arresto del sistema operativo guest quando arresti o elimini l'istanza, utilizza uno dei seguenti metodi:

Configura l'arresto del sistema operativo guest in un'istanza esistente

Puoi configurare un'istanza di computing in modo che salti l'arresto del sistema operativo guest solo se l'istanza è arrestata (TERMINATED).

Per configurare un'istanza in modo che salti l'arresto del sistema operativo guest, seleziona una delle seguenti opzioni:

gcloud

  1. Se non l'hai ancora fatto, arresta l'istanza.

  2. Per configurare un'istanza in modo che salti l'arresto del sistema operativo guest, utilizza il comando gcloud beta compute instances set-scheduling con il flag --skip-guest-os-shutdown:

    gcloud compute instances set-scheduling INSTANCE_NAME \
        --skip-guest-os-shutdown \
        --zone=ZONE
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza

    • ZONE: la zona in cui esiste l'istanza

REST

  1. Se non l'hai ancora fatto, arresta l'istanza.

  2. Per configurare un'istanza in modo che salti l'arresto del sistema operativo guest, invia una richiesta POST al metodo instances.setScheduling. Nel corpo della richiesta, includi il campo skipGuestOsShutdown e impostalo su true:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling
    
    {
      "skipGuestOsShutdown": true
    }
    

Per ulteriori informazioni su come aggiornare un'istanza, consulta Aggiorna le proprietà delle istanze.

Configura l'arresto del sistema operativo guest durante la creazione di un'istanza

Per creare un'istanza di computing configurata per ignorare l'arresto del sistema operativo guest, seleziona una delle seguenti opzioni:

gcloud

Per creare un'istanza configurata per ignorare l'arresto del sistema operativo guest, utilizza il comando gcloud compute instances create con il flag --skip-guest-os-shutdown:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza

  • MACHINE_TYPE: il tipo di macchina da usare per l'istanza.

  • ZONE: la zona in cui vuoi creare l'istanza.

REST

Per creare un'istanza configurata per ignorare l'arresto del sistema operativo guest, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi il campo skipGuestOsShutdown impostato su true:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "skipGuestOsShutdown": true
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare l'istanza.

  • ZONE: la zona in cui vuoi creare l'istanza.

  • INSTANCE_NAME: il nome dell'istanza

  • MACHINE_TYPE: il tipo di macchina da usare per l'istanza.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che devi formattare come family/IMAGE_FAMILY. Questo valore specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine utilizza l'ultima versione della famiglia di immagini Debian 12. Per saperne di più su come utilizzare le famiglie di immagini, consulta Best practice per le famiglie di immagini.

Per ulteriori informazioni su come creare un'istanza, consulta Crea e avvia un'istanza Compute Engine.

Configura l'arresto del sistema operativo guest durante la creazione collettiva di istanze

Per creare in blocco istanze di computing configurate per ignorare l'arresto del sistema operativo guest, seleziona una delle seguenti opzioni:

gcloud

Per creare in blocco istanze configurate per ignorare l'arresto del sistema operativo guest, utilizza il comando gcloud compute instances bulk create con il flag --skip-guest-os-shutdown.

Ad esempio, per creare in blocco istanze che utilizzano un pattern di nomi in un'unica zona, esegui questo comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --skip-guest-os-shutdown \
    --zone=ZONE

Sostituisci quanto segue:

  • COUNT: il numero di istanze da creare.

  • MACHINE_TYPE: il tipo di macchina da utilizzare per le istanze.

  • NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, se utilizzi instance-# come pattern del nome, Compute Engine genera istanze con nomi che iniziano con instance-1, instance-2 e continua questo pattern incrementale fino al numero di istanze specificato in COUNT.

  • ZONE: la zona in cui vuoi creare le istanze.

REST

Per creare in blocco istanze configurate per ignorare l'arresto del sistema operativo guest, invia una richiesta POST al metodo instances.bulkInsert. Nel corpo della richiesta, includi il campo skipGuestOsShutdown impostato su true.

Ad esempio, per creare in blocco istanze che utilizzano un pattern di nomi in un'unica zona, invia una richiesta POST nel modo seguente:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "skipGuestOsShutdown": true
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare le istanze in blocco.

  • ZONE: la zona in cui vuoi creare le istanze.

  • COUNT: il numero di istanze da creare.

  • NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, se utilizzi instance-# come pattern del nome, Compute Engine genera istanze con nomi che iniziano con instance-1, instance-2 e continua questo pattern incrementale fino al numero di istanze specificato in COUNT.

  • MACHINE_TYPE: il tipo di macchina da utilizzare per le istanze.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che devi formattare come family/IMAGE_FAMILY. Questo valore specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, Compute Engine utilizza l'ultima versione della famiglia di immagini Debian 12. Per saperne di più su come utilizzare le famiglie di immagini, consulta Best practice per le famiglie di immagini.

Per saperne di più su come creare istanze in blocco, consulta Crea istanze in blocco.

Configura l'arresto del sistema operativo guest durante la creazione di un modello di istanza

Dopo aver creato un modello di istanza configurato per ignorare l'arresto del sistema operativo guest quando arresti o elimini le istanze di computing, puoi utilizzare il modello di istanza per eseguire le seguenti operazioni:

Per creare un template di istanza configurato per ignorare l'arresto del sistema operativo guest, seleziona una delle seguenti opzioni:

gcloud

Per creare un template di istanza configurato per ignorare l'arresto del sistema operativo guest, utilizza il comando gcloud compute instance-templates create con il flag --skip-guest-os-shutdown.

Ad esempio, per creare un modello di istanza regionale che specifica di ignorare l'arresto del sistema operativo guest, esegui il seguente comando. Se vuoi creare un template di istanza globale, utilizza lo stesso comando senza il flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

  • REGION: la regione in cui vuoi creare il template di istanza.

  • MACHINE_TYPE: il tipo di macchina da specificare nel template di istanza.

REST

Per creare un modello di istanza configurato per ignorare l'arresto del sistema operativo guest, invia una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, includi il campo skipGuestOsShutdown impostato su true.

Ad esempio, per creare un modello di istanza regionale che specifichi di ignorare l'arresto del sistema operativo guest, effettua una richiesta POST come segue:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "skipGuestOsShutdown": true
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare il modello di istanza.

  • REGION: la regione in cui vuoi creare il template di istanza.

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo, viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • MACHINE_TYPE: il tipo di macchina da specificare nel template di istanza.

Per saperne di più sulla creazione di un template di istanza, consulta Crea template di istanza.

Visualizza l'impostazione di arresto del sistema operativo guest

Puoi verificare se Compute Engine ignora l'arresto del sistema operativo guest quando interrompi o elimini un'istanza di computing.

Per visualizzare l'ora di arresto del sistema operativo guest in un'istanza, seleziona una delle seguenti opzioni:

gcloud

Per visualizzare i dettagli di un'istanza e se salta l'arresto del sistema operativo guest, utilizza il comando gcloud compute instances describe:

gcloud 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 hai configurato l'istanza in modo da ignorare l'arresto del sistema operativo guest, l'output contiene il campo skipGuestOsShutdown impostato su true, come nel seguente esempio:

...
scheduling:
  automaticRestart: true
  skipGuestOsShutdown: true
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD
...

Altrimenti, se il campo skipGuestOsShutdown non è presente o è impostato su false, il sistema operativo guest utilizza il tempo di spegnimento predefinito.

REST

Per visualizzare i dettagli di un'istanza e se salta l'arresto del sistema operativo guest, invia una richiesta GET al metodo instances.get:

GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Sostituisci quanto segue:

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

  • ZONE: la zona in cui esiste l'istanza

  • INSTANCE_NAME: il nome dell'istanza

Se hai configurato l'istanza in modo da ignorare l'arresto del sistema operativo guest, l'output contiene il campo skipGuestOsShutdown impostato su true, come nel seguente esempio:

{
  ...
  "scheduling": {
    "automaticRestart": true,
    "skipGuestOsShutdown": true,
    "onHostMaintenance": "MIGRATE",
    "preemptible": false,
    "provisioningModel": "STANDARD"
  },
  ...
}

Altrimenti, se il campo skipGuestOsShutdown non è presente o è impostato su false, il sistema operativo guest utilizza il tempo di spegnimento predefinito.

Passaggi successivi