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 delle VM, ad esempio quando una VM nel gruppo di istanze gestite viene riparata automaticamente, aggiornata o ricreata. La conservazione dei dischi è utile per determinati workload, ad esempio per database o applicazioni legacy.

Oltre a conservare i dischi per tutte le VM nel gruppo, puoi anche configurare un MIG stateful per i casi seguenti:

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

Per ulteriori informazioni, consulta la panoramica dei gruppi di istanze gestite con stato.

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

    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. Terraform

      Per utilizzare gli esempi di Terraform in 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. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

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

      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

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

  • Non puoi utilizzare la scalabilità automatica se il gruppo di istanze gestite ha una configurazione stateful.
  • Se vuoi utilizzare gli aggiornamenti incrementali automatici, devi impostare il metodo di sostituzione su RECREATE.
  • Per i gruppi di istanze gestite regionali stateful, devi disattivare 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 specificarle in nessuna configurazione per istanza e contemporaneamente nella configurazione per tutte le istanze del gruppo.

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

Crea un MIG con dischi stateful

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

Console

  1. Vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

    I passaggi rimanenti vengono visualizzati 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 segui 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 per la creazione delle istanze. Per un modello di istanza regionale, 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 del dispositivo di un disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che prescrive cosa deve succedere a un disco con stato quando viene eliminata una VM. Le opzioni disponibili sono:

    • never: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata la VM.
    • 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 la dimensione del gruppo viene ridotta.

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

Terraform

Se non hai già creato un modello di istanza che specifica il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà della VM che vuoi 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 alla creazione del MIG, includi il blocco stateful_disk. L'esempio seguente crea un gruppo di istanze gestite zonale con dischi stateful. Per ulteriori informazioni sulla risorsa utilizzata nel sample, 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 o, per un gruppo di istanze gestite a livello di regione, utilizza il metodo regionInstanceGroupManagers.insert.

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 per la 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 per la creazione delle istanze.
  • SIZE: il numero iniziale di istanze necessarie in questo gruppo.
  • DEVICE_NAME: il nome del dispositivo di un disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che prescrive cosa deve accadere al disco con stato quando viene eliminata l'istanza VM. Le opzioni disponibili sono:

    • never: (valore predefinito). Non eliminare mai il disco, scollegalo quando viene eliminata la VM.
    • on_permanent_instance_deletion: elimina il disco con stato quando la VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.

    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