Crea un gruppo di istanze gestite con dischi stateful

Questo documento descrive come creare un gruppo di istanze gestite che conserva i dati sui dischi con un determinato nome dispositivo per tutte le VM del gruppo di istanze gestite, anche in caso di nuova creazione di una VM, ad esempio quando una VM nel gruppo di istanze gestite viene riparata automaticamente, aggiornata o ricreata. La conservazione dei dischi è utile per determinati carichi di lavoro, ad esempio per database o applicazioni legacy.

Oltre a conservare i dischi per tutte le VM nel gruppo, puoi anche configurare un gruppo di istanze gestite stateful per gli elementi seguenti:

  • Puoi aggiungere e conservare dischi specifici dell'istanza.
  • Puoi aggiungere e conservare i metadati specifici dell'istanza.
  • Puoi aggiungere e conservare gli indirizzi IP.

Per maggiori informazioni, consulta la panoramica dei gruppi di istanze gestite stateful.

Puoi anche leggere altri scenari di base per la creazione di un gruppo di istanze gestite.

Prima di iniziare

  • Crea un modello di istanza, necessario per creare un gruppo di istanze gestite.
  • 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.

    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. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

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

      Per utilizzare gli esempi di Terraform su questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Installa Google Cloud CLI.
      2. Per initialize gcloud CLI, esegui questo comando:

        gcloud init
      3. Crea credenziali di autenticazione locali per il tuo Account Google:

        gcloud auth application-default login

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      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

      Per maggiori informazioni, consulta Autenticazione per REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

Un gruppo di istanze gestite con configurazione stateful, ovvero un gruppo di istanze gestite, ha le seguenti limitazioni:

  • Non puoi utilizzare la scalabilità automatica se il gruppo di istanze gestite ha una configurazione stateful.
  • Se vuoi utilizzare aggiornamenti in sequenza automatici, devi impostare il metodo di sostituzione su RECREATE.
  • Per i MIG a livello di regione stateful, devi disabilitare la ridistribuzione proattiva (imposta il tipo di ridistribuzione su NONE) per impedire l'eliminazione delle istanze stateful tramite la ridistribuzione automatica tra zone.
  • Se utilizzi una configurazione per tutte le istanze per eseguire l'override delle proprietà del modello di istanza, non puoi specificare queste proprietà in nessuna configurazione per istanza e contemporaneamente nella configurazione di tutte le istanze del gruppo.

Per visualizzare l'elenco completo delle limitazioni dei gruppi di istanze gestite, che varia in base alla configurazione utilizzata, consulta Limitazioni dei gruppi di istanze gestite.

Crea un gruppo di istanze gestite con dischi stateful

Utilizza la console Google Cloud, gcloud CLI, Terraform o REST.

Console

  1. Vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

    I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.

  2. Fai clic su Crea gruppo di istanze.
  3. Seleziona l'opzione Nuovo gruppo di istanze gestite (stateful).
  4. Assegna un nome e, facoltativamente, una descrizione al gruppo di istanze.
  5. Scegli un modello di istanza per il gruppo di istanze o creane uno nuovo.
  6. Nel campo Numero di istanze, specifica il numero iniziale di VM necessarie in questo gruppo.
  7. Nella sezione Configurazione stateful, in Configurazione gruppo, fai clic sul disco che vuoi rendere stateful, quindi esegui i passaggi riportati di seguito.
    1. Nella sezione Stateful, seleziona .
    2. Nell'elenco Con l'eliminazione definitiva dell'istanza, scegli se vuoi scollegare il disco o eliminarlo quando elimini definitivamente la VM.
    3. Per salvare le impostazioni, fai clic su Fine.
  8. Per creare il gruppo di istanze gestite, fai clic su Crea.

gcloud

Per specificare quali dischi del modello di istanza devono essere stateful al momento della creazione del gruppo di istanze gestite, utilizza il flag --stateful-disk con il comando gcloud compute instance-groups managed create:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creare.
  • INSTANCE_TEMPLATE: il nome del modello di istanza da utilizzare durante la creazione delle istanze. Per un modello di istanza a livello di regione, devi specificare l'URL completo o parziale del modello. Un esempio di URL completo è https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template e un URL parziale è projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • SIZE: il numero iniziale di VM necessarie in questo gruppo.
  • DEVICE_NAME: il nome dispositivo di un disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che indica cosa deve succedere a un disco stateful quando viene eliminata una VM. Le opzioni disponibili sono:

    • never: (valore predefinito) Non eliminare mai il disco, ma scollegalo quando la relativa VM viene eliminata.
    • on-permanent-instance-deletion: elimina il disco quando la relativa istanza VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando le dimensioni del gruppo vengono diminuite.

    Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati per le operazioni di riparazione automatica, aggiornamento e ricreazione delle VM.

Terraform

Se non hai già creato un modello di istanza in cui specifichi il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà delle VM che vuoi utilizzare per ogni VM nel tuo gruppo di istanze gestite, crea un modello di istanza.

Per specificare quali dischi del modello di istanza devono essere stateful al momento della creazione del gruppo di istanze gestite, includi il blocco stateful_disk. L'esempio seguente crea un gruppo di istanze gestite a livello di zona con dischi stateful. Per ulteriori informazioni sulla risorsa utilizzata nell'esempio, consulta google_compute_instance_group_manager risorsa.

resource "google_compute_instance_group_manager" "default" {
  name               = "igm-stateful-disk-basic"
  zone               = "us-central1-f"
  base_instance_name = "instance"
  target_size        = 1

  version {
    instance_template = google_compute_instance_template.default.id
  }

  stateful_disk {
    device_name = "example-disk"
    delete_rule = "NEVER"
  }

}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST

Per specificare quali dischi del modello di istanza devono essere stateful al momento della creazione del gruppo di istanze gestite, includili nel campo statefulPolicy nel corpo della richiesta. Per un gruppo di istanze gestite a livello di zona, utilizza il metodo instanceGroupManagers.insert oppure il metodo regionInstanceGroupManagers.insert per un gruppo di istanze gestite a livello di regione.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT: l'ID progetto della richiesta.
  • ZONE: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).
    • Per un gruppo di istanze gestite a livello di regione, sostituisci zones/ZONE con regions/REGION e specifica la regione del gruppo di istanze gestite.
  • NAME: il nome del gruppo di istanze gestite da creare.
  • TEMPLATE: il nome del modello di istanza da utilizzare durante la creazione delle istanze.
  • SIZE: il numero iniziale di istanze necessarie in questo gruppo.
  • DEVICE_NAME: il nome dispositivo di un disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che indica cosa deve succedere al disco stateful quando l'istanza VM viene eliminata. Le opzioni disponibili sono:

    • never: (valore predefinito) Non eliminare mai il disco; scollegalo quando la VM viene eliminata.
    • on_permanent_instance_deletion: elimina il disco stateful quando la relativa VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando le dimensioni del gruppo vengono ridotte.

    Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle istanze.

Passaggi successivi