Configurazione di dischi permanenti stateful nei gruppi di istanze gestite


La configurazione dei dischi permanenti stateful ti consente di trarre vantaggio dalle VM riparazione automatica dell'istanza e aggiornamenti automatici, conservando lo stato i dischi permanenti.

Puoi configurare qualsiasi disco definito nel modello di istanza in modo che sia stateful per tutte le istanze in un gruppo di istanze gestite aggiungendo il nome dispositivo del disco ai gruppi di istanze gestite norme stateful.

Puoi anche configurare i dischi permanenti stateful singolarmente per le istanze in un gruppo di istanze gestite impostando le configurazioni per istanza; non è necessario definire questi dischi nel modello di istanza.

Prima di iniziare

  • Scopri quando utilizzare i MIG stateful e come funzionano i MIG stateful.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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 dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura 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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

Un gruppo di istanze gestite con dischi stateful presenta le seguenti 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 in sequenza automatici, devi impostare il valore metodo di sostituzione a RECREATE.
  • Per i MIG regionali stateful, devi disabilitare la ridistribuzione proattiva (imposta il tipo di ridistribuzione su NONE) per impedire l'eliminazione degli oggetti mediante la ridistribuzione automatica tra zone.
  • Se utilizzi una configurazione di tutte le istanze per sostituire le proprietà del modello di istanza, non puoi specificarle in qualsiasi configurazione per istanza e, contemporaneamente, nella configurazione configurazione di tutte le istanze.

  • Un gruppo di istanze gestite a livello di regione stateful non orchestra automaticamente le zone di failover. Quando utilizzi un gruppo di istanze gestite a livello di regione, puoi rendere la tua applicazione stateful resilienti agli errori a livello di zona mediante il deployment di repliche ridondanti in più zone e basarsi sulla replica dei dati dell'applicazione funzionalità.

Quando utilizzare i dischi permanenti stateful

Usa i dischi permanenti stateful per sfruttare la VM riparazione automatica e aggiornamenti automatici conservando al contempo i dati sui dischi. Per ulteriori informazioni, vedi casi d'uso per i MIG stateful.

Quando configuri i dischi stateful, questi vengono conservati tramite un'istanza VM riparazione automatica, aggiornamenti e attività ricreative. Ciò significa anche che i dischi con stato non possono essere ricreati dall'immagine originale o aggiornati a una nuova immagine.

Come best practice, consigliamo di mantenere i dischi di avvio stateless.

Mantenere il disco di avvio stateless offre i seguenti vantaggi:

  • Puoi riparare un disco di avvio danneggiato ricreandolo dalla sua nell'immagine originale. La riparazione automatica esegue queste riparazioni automaticamente.
  • Puoi aggiornare un disco di avvio all'immagine più recente con nuove versioni e patch di sicurezza.

Per ulteriori informazioni, scopri come la riparazione automatica e l'aggiornamento gestiscono lo stato preservato.

Configurazione di dischi permanenti stateful per tutte le VM in un gruppo di istanze gestite

Configura qualsiasi disco definito in un modello di istanza in modo che sia stateful aggiungendo il nome del dispositivo del disco al criterio stateful del gruppo di istanze gestite. Il gruppo di istanze gestite tratta i dischi con quel nome dispositivo come stateful per tutti i dischi istanze VM future.

Configurazione di dischi stateful durante la creazione di un gruppo di istanze gestite

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea gruppo di istanze.

  4. Seleziona Nuovo gruppo di istanze gestite (stateful).

  5. Specifica un Nome per il gruppo di istanze.

  6. Seleziona un Modello di istanza. Se non sono disponibili modelli, crea un modello di istanza.

  7. In Numero di istanze, specifica il numero di istanze per il gruppo di istanze.

  8. La sezione Configurazione stateful mostra i dischi specificati nel modello di istanza. Fai clic su un disco per modificarne la configurazione stateful.

    1. In Stateful, seleziona .
    2. Dal menu a discesa All'eliminazione definitiva dell'istanza, seleziona la l'azione da eseguire sul disco stateful quando l'istanza VM eliminati. Le opzioni disponibili sono:

      • Scollega disco (impostazione predefinita). Non eliminare mai il disco. scollega il disco quando la VM viene eliminata.
      • Elimina disco: elimina il disco stateful quando la relativa VM è permanente eliminati dal gruppo di istanze, ad esempio quando viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
    3. Al termine della configurazione stateful, fai clic su Fine.

  9. Fai clic su Crea.

gcloud

specificare quali dischi di un modello di istanza devono essere stateful su un gruppo di istanze gestite. creazione, utilizza il flag --stateful-disk con 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 dell'account gestito gruppo di istanze gestite.
  • INSTANCE_TEMPLATE: il nome dell'istanza modello da utilizzare durante la creazione delle istanze.
  • SIZE: il numero iniziale di VM di cui hai bisogno in questo gruppo.
  • DEVICE_NAME: il nome del dispositivo di un del disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che prescrive cosa deve accadere a un disco con stato quando viene eliminata una VM. Disponibile sono:

    • never: (opzione predefinita). Non eliminare mai il disco. scollega del disco quando la rispettiva 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 la dimensione del gruppo viene ridotta.

    A prescindere dal valore della regola di eliminazione, i dischi stateful sono sempre e mantenere le operazioni di riparazione automatica, aggiornamento e ricreazione delle VM.

Esempio

Vuoi eseguire il deployment di un database con 12 shard, ciascuno con un avvio stateless disco che contiene i file binari del sistema operativo e del database e ognuno con un disco dati stateful. Segui questi passaggi:

  1. Crea un modello di istanza con un disco di avvio stateless basato sull'immagine img-example-db-v01, che ha un sistema operativo e un database preinstallati, e con un disco di dati stateful:

    gcloud compute instance-templates create example-database-template-v01 \
        --image img-example-db-v01 \
        --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
    

    Il flag --create-disk indica al gruppo di istanze gestite di:

    1. Crea un nuovo disco da 10 GB per ogni istanza VM un'immagine ext4 vuota, preparata in anticipo.
    2. Collega il disco alla rispettiva VM in modalità di lettura/scrittura utilizzando il nome del dispositivo data-disk.
  2. Creare un gruppo di istanze gestite dal modello di istanza definisci il disco dati come stateful:

    gcloud compute instance-groups managed create example-database-group \
      --template example-database-template-v01 \
      --base-instance-name shard \
      --size 12 \
      --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
    

    Il nome del dispositivo data-disk viene preso dal modello di istanza. La disco dati è configurato per essere eliminato insieme all'istanza VM quando La VM viene eliminata definitivamente (a causa dell'eliminazione manuale dell'istanza o della diminuzione manuale dimensioni del gruppo). Il disco dati viene conservato con riparazione automatica, aggiornamenti e VM attività ricreative.

  3. Verifica che il disco dati sia configurato nel criterio stateful:

    gcloud compute instance-groups managed describe example-database-group
    
    
    baseInstanceName: shard
    ...
    name: example-database-group
    ...
    statefulPolicy:
      preservedState:
        disks:
          data-disk:
            autoDelete: ON_PERMANENT_INSTANCE_DELETION
    ...
    

    Puoi vedere che il criterio stateful dichiara i dischi con il nome del dispositivo data-disk come stateful, con una regola per eliminare questi dischi in modo permanente l'eliminazione di una VM.

Terraform

Se non hai già creato un modello di istanza, che specifica tipo di macchina, immagine disco di avvio, rete e altre proprietà VM per ogni VM nel gruppo di istanze gestite, crea un modello di istanza.

Il seguente esempio crea un gruppo di istanze gestite a livello di zona con un disco stateful. Per specificare quale disco del modello di istanza deve essere stateful sul gruppo di istanze gestite creazione, includi il blocco stateful_disk. Per ulteriori informazioni sulla risorsa utilizzata nel sample, consulta la risorsa google_compute_instance_group_manager. Per creare un gruppo di istanze gestite a livello di regione, utilizza google_compute_region_instance_group_manager risorsa.

resource "google_compute_instance_group_manager" "default" {
  name               = "example-database-group"
  base_instance_name = "shard"
  target_size        = 12
  zone               = "us-central1-f"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  stateful_disk {
    device_name = "data-disk"
    delete_rule = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

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

REST

specificare quali dischi del modello di istanza devono essere stateful sul gruppo di istanze gestite. creazione, includila nel campo statefulPolicy nel corpo della richiesta instanceGroupManagers.insert method:

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: il 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 specificare la regione il 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 di cui hai bisogno in questo gruppo.
  • DEVICE_NAME: il nome del dispositivo di un disco specificato nel modello di istanza.
  • DELETE_RULE: un valore che indica cosa succederebbe al disco stateful quando l'istanza VM viene eliminata. Le opzioni disponibili sono:

    • never: (opzione predefinita). Non eliminare mai il disco; scollegalo quando viene eliminata la VM.
    • on_permanent_instance_deletion: elimina il disco stateful quando la rispettiva VM è permanente eliminato dal gruppo di istanze, ad esempio quando l'istanza gestita eliminati manualmente o quando la dimensione del gruppo viene ridotta.

Esempio

Vuoi eseguire il deployment di un database con 12 shard, ciascuno con un disco di avvio senza stato che contiene i binari del sistema operativo e del database e ciascuno con un disco di dati con stato. Segui questi passaggi.

  1. Crea un modello di istanza con un disco di avvio stateless basato sull'immagine img-example-db-v01, con sistema operativo e database preinstallati e con un disco dati stateful utilizzando il metodo instanceTemplates.insert:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates
    
    {
      "name": "example-database-template-v01",
      "properties": {
        "machineType":"e2-standard-2",
        "disks": [
          {
            "boot": true,
            "deviceName": "boot-disk",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/mg-example-db-v01"
            }
          },
          {
            "deviceName": "data-disk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/empty10GBext4"
            }
          }
        ],
        "networkInterfaces": [
          {
            "network": "global/networks/default"
          }
        ]
      }
    }
    

    Il disco dati nel modello di istanza ha il nome dispositivo data-disk e sia configurato per essere creato da un'immagine ext4 vuota, preparata in anticipo e da collegare in modalità di lettura/scrittura.

  2. Creare un gruppo di istanze gestite dal modello di istanza definisci il disco dati come stateful utilizzando instanceGroupManagers.insert :

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      "versions": [
        {
          "instanceTemplate": "global/instanceTemplates/example-database-template-v01"
        }
      ],
      "targetSize": 12,
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
    }
    

    Il gruppo di istanze gestite crea 12 istanze, ciascuna con un disco con le seguenti caratteristiche: proprietà:

    • Il nome di un dispositivo, data-disk, recuperato dal modello di istanza.
    • Una regola di eliminazione per eliminare il disco dati quando viene eliminata la VM (a causa dell'eliminazione manuale dell'istanza o di una diminuzione manuale) della dimensione del gruppo).
    • Una voce nello stato conservato dal criterio (preservedStateFromPolicy) di ogni istanza gestita, in modo che il disco dati venga conservato riparazione automatica, aggiornamenti e ricreazione delle istanze.
  3. Utilizza il metodo instanceGroupManagers.get per verificare che il disco dati sia configurato nel criterio stateful della nuova risorsa instanceGroupManagers:

    GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      ...
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
      ...
    }
    

    Puoi vedere che il criterio stateful dichiara i dischi con il nome del dispositivodata-disk come stateful con la regola per eliminarli al momento dell'eliminazione permanente dell'istanza.

Impostazione e aggiornamento della configurazione stateful per i dischi in un gruppo di istanze gestite esistente

Se esegui un'applicazione stateful su un MIG stateless (un gruppo di istanze gestite senza stateful), puoi configurare i dischi esistenti definiti in in modo che sia stateful per tutte le istanze in questo gruppo di istanze gestite. Ciò consente puoi conservare i dischi durante la ricreazione delle istanze, la riparazione automatica e, facoltativamente, le operazioni di eliminazione.

Puoi eseguire le seguenti operazioni:

  • Aggiungi i dischi definiti nel modello di istanza alla norme stateful di un gruppo di istanze gestite esistente per dichiararli come stateful. I dischi vengono contrassegnati con il nome del dispositivo come stateful per tutte le istanze esistenti e future nel gruppo di istanze gestite
  • Aggiorna il criterio stateful per modificare la configurazione stateful per i dischi.

Il gruppo di istanze gestite applica automaticamente la configurazione aggiornata nel criterio stateful e in modo asincrono a tutte le istanze. Gli aggiornamenti alle configurazioni dei dischi in un criterio stateful non interrompono le VM in esecuzione. Per ulteriori informazioni, vedi applicazione di aggiornamenti dei criteri stateful.

Per un gruppo di istanze gestite regionale, devi disattivare la ridistribuzione proattiva delle istanze tra zone prima di poter configurare i dischi stateful. Per ulteriori informazioni, vedi come i gruppi regionali gestiscono lo stato conservato.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic sul nome del gruppo di istanze in cui specificare la configurazione stateful per il disco.

  3. Fai clic su Modifica per modificare il gruppo di istanze gestite.

  4. In Configurazione stateful, espandi il disco che vuoi creare stateful,

    1. In Stateful, seleziona .
    2. Dal menu a discesa All'eliminazione definitiva dell'istanza, seleziona la l'azione da eseguire sul disco stateful quando l'istanza VM eliminati.

      • Scollega disco: (impostazione predefinita). Non eliminare mai il disco. scollega il disco quando la VM viene eliminata.
      • Elimina disco: elimina il disco stateful quando la relativa VM è permanente eliminati dal gruppo di istanze, ad esempio quando viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.

    3. Dopo aver aggiornato la configurazione stateful, fai clic su Fine.

  5. Fai clic su Salva per completare l'aggiornamento.

gcloud

per specificare quali dischi del modello di istanza devono essere stateful o aggiorna la configurazione del disco stateful per un gruppo di istanze gestite esistente, usa uno o più flag --stateful-disk con Comando gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update NAME \
  --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • NAME: il nome dell'account gestito gruppo di istanze da aggiornare.
  • DEVICE_NAME: il nome del dispositivo di un specificato nel modello di istanza.
  • DELETE_RULE: un valore che indica che cosa dovrebbe accadere al disco stateful quando viene eliminata un'istanza VM. Le opzioni disponibili sono:

    • never: (opzione predefinita). Non eliminare mai il disco e scollegalo quando viene eliminata l'istanza.
    • on-permanent-instance-deletion: elimina il disco stateful quando la sua istanza è permanente eliminato dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo è diminuita.

Se un nome di dispositivo specificato è già configurato nel criterio stateful, aggiorna la configurazione.

Esempio

Esegui un database con più shard su un gruppo di istanze gestite denominato example-database- group. Ogni VM nel gruppo di istanze gestite archivia uno shard su un disco aggiuntivo nome dispositivo data-disk, che viene definito dal modello di istanza. Il gruppo di istanze gestite non ha una configurazione stateful e vuoi conservare i dischi di dati durante la ricreazione, la riparazione automatica e gli aggiornamenti delle istanze. Devi inoltre proteggere l'eliminazione dei dischi dati quando viene eliminata una VM.

  1. Aggiorna il gruppo di istanze gestite per definire il disco dati come utilizzando il comando seguente:

    gcloud compute instance-groups managed update example-database-group \
      --stateful-disk device-name=data-disk,auto-delete=never
    

    Di conseguenza, il gruppo di istanze gestite applica gli aggiornamenti della configurazione dei criteri stateful. automaticamente e in modo asincrono ai dischi dati di tutte le istanze. Ora i dischi dei dati vengono conservati con riparazione automatica, aggiornamenti e istanze e i dischi dei dati vengono scollegati al momento dell'eliminazione dell'istanza La regola auto-delete è impostata su never.

  2. Verifica che il disco dati sia configurato nel criterio stateful che esegue Comando gcloud compute instance-groups managed describe example-database-group.

REST

per specificare quali dischi del modello di istanza devono essere stateful o aggiornare la configurazione del disco stateful per un gruppo di istanze gestite esistente, i dischi permanenti nel criterio stateful del gruppo di istanze gestite utilizzando Metodo instanceGroupManagers.patch:

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

{
  "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 specificare la regione il gruppo di istanze gestite.
  • NAME: il nome del gruppo di istanze gestite da aggiornamento.
  • DEVICE_NAME: il nome del dispositivo di un specificato nel modello di istanza, per il quale vuoi per aggiornare la configurazione stateful.
  • DELETE_RULE: un valore che prescrive cosa deve accadere al disco con stato quando viene eliminata un'istanza VM. Le opzioni disponibili sono:

    • never: (opzione predefinita). Non eliminare mai il disco e scollegalo quando viene eliminata l'istanza.
    • on-permanent-instance-deletion: elimina il disco stateful quando la sua istanza è permanente eliminato del gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o di dimensioni ridotte.

Se il nome del dispositivo specificato è già configurato nel criterio stateful, il metodo patch aggiorna la sua configurazione.

Esempio

Esegui un database con più shard su un gruppo di istanze gestite denominato example-database- group. Ogni VM nel gruppo di istanze gestite archivia uno shard su un disco aggiuntivo nome dispositivo data-disk, che viene definito dal modello di istanza. Il gruppo di istanze gestite non ha una configurazione stateful e vuoi conservare i dischi dei dati la ricreazione e la riparazione automatica delle istanze. Devi inoltre proteggere l'eliminazione dei dischi dati quando viene eliminata una VM.

  1. Applica le patch al gruppo di istanze gestite per definire il disco dati come stateful:

    PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    {
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "NEVER" }
          }
        }
      }
    }
    

    Il gruppo di istanze gestite applica automaticamente questa configurazione stateful in modo asincrono con i dischi dati di tutte le istanze. I dischi di dati verranno conservati durante la riparazione automatica, gli aggiornamenti e la ricreazione delle istanze. I dati i dischi verranno scollegati al momento dell'eliminazione dell'istanza perché La regola autoDelete è impostata su NEVER.

  2. Verifica che il disco dati sia configurato nel criterio stateful che visualizza la risorsa instanceGroupManagers, restituita Metodo instanceGroupManagers.get.

Dichiarazione di dischi permanenti stateful precedentemente stateful come stateless

Potrebbe essere necessario configurare un disco stateful per essere considerato come stateless. Per esempio:

  • Se cambi l'architettura della tua app per spostare lo stato dal disco.
  • Se hai configurato il disco per essere stateful per errore e vuoi ripristinarla.

Per dichiarare come stateless tutti i dischi con un determinato nome dispositivo, rimuovi il relativo configurazione dal criterio stateful.

Il gruppo di istanze gestite applica automaticamente la modifica al criterio stateful in modo asincrono a tutte le istanze. Aggiornamenti alla configurazione del disco in un ambiente stateful non interrompano le istanze VM in esecuzione.

Per ulteriori informazioni, vedi Applicazione di aggiornamenti dei criteri stateful.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic sul nome del gruppo di istanze da cui vuoi rimuovere la configurazione stateful per i dischi.

  3. Fai clic su Modifica per modificare il gruppo di istanze gestite.

  4. In Configurazione stateful, espandi i dischi stateful che vuoi rendere stateless.

    1. Imposta l'opzione Stateful su No.
    2. Fai clic su Fine.
  5. Dopo aver apportato le modifiche, fai clic su Salva.

gcloud

Per specificare quali dischi da un criterio stateful di un gruppo di istanze gestite rendere stateless, usa il flag --remove-stateful-disks con Comando gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]

Sostituisci quanto segue:

  • NAME: il nome del gruppo di istanze gestite da aggiornamento.
  • DEVICE_NAME: il nome dispositivo di un disco da rimuovere dal criterio stateful e da trattare come stateless. Puoi specificarne uno o più nomi di dispositivi nell'elenco.

Esempio

Esegui un'applicazione legacy con più nodi su un gruppo di istanze gestite denominato example-legacy-group. Ogni VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivo boot-disk, che hai configurato come stateful, nel criterio stateful del gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un altro disco e ora vuoi rendere il disco di avvio stateless per semplificare l'aggiornamento alle nuove immagini.

Per rimuovere la configurazione con stato del disco di avvio, aggiorna il gruppo di istanze gestite:

gcloud compute instance-groups managed update example-legacy-group \
  --remove-stateful-disks boot-disk

Il gruppo di istanze gestite rimuove la configurazione stateful per il nome dispositivo boot-disk in modo automatico e asincrono per i dischi di avvio di tutte le istanze gruppo. I dischi di avvio rimangono collegati alle istanze, ma non sono più stateful, Quando ricrei o aggiorni le istanze o quando le istanze la riparazione automatica, il gruppo di istanze gestite ricrea i dischi di avvio dall'immagine specificata modello di istanza.

REST

Per specificare quali dischi da un criterio stateful di un gruppo di istanze gestite rendere stateless, rimuovi la configurazione di ogni disco dal criterio stateful del gruppo di istanze gestite utilizzando Metodo instanceGroupManagers.patch:

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

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": null,
        ...
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT: l'ID progetto per la richiesta.
  • ZONE: il 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 specificare la regione il gruppo di istanze gestite.
  • NAME: il nome del gruppo di istanze gestite da aggiornamento.
  • DEVICE_NAME: il nome dispositivo di un disco di cui da rimuovere dal criterio stateful. Se fornisci un valore di null, è necessario alla rimozione della configurazione stateful per quel disco. Puoi fornire uno o più nomi di dispositivi da rimuovere.

Esempio

Esegui un'applicazione legacy con più nodi su un gruppo di istanze gestite denominato example-legacy-group. Ogni VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivo boot-disk, che hai configurato come stateful nel criterio stateful del gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora voglio rendere il disco di avvio stateless per semplificare l'aggiornamento alle nuove immagini.

Per rimuovere la configurazione stateful del disco di avvio, applica la patch all'app gruppo di istanze:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "boot-disk": null
      }
    }
  }
}

Il gruppo di istanze gestite rimuove la configurazione stateful per il nome del dispositivo boot-disk automaticamente e in modo asincrono per i dischi di avvio di tutte le istanze del gruppo. I dischi di avvio rimangono collegati alle istanze, ma non sono più stateful, Quando ricrei o aggiorni le istanze o quando le istanze la riparazione automatica, il gruppo di istanze gestite ricrea i dischi di avvio dall'immagine specificata modello di istanza.

Rimozione di dischi permanenti stateful da un gruppo di istanze gestite

Potresti dover rimuovere completamente un disco stateful dalle istanze in un gruppo di istanze gestite, Ad esempio, se hai riprogettato l'architettura della tua applicazione e hai spostato lo stato su quel disco.

I gruppi di istanze gestite non consentono la rimozione dei dischi stateful, quindi devi segui questi passaggi:

  1. Rimuovere la configurazione stateful del disco dal criterio stateful. In questo modo i dischi con lo stesso il nome del dispositivo stateless.
  2. Scollega i dischi dalle VM se vuoi comunque conservarli.
  3. Implementa un nuovo modello di istanza che non definisce più il disco con il nome del dispositivo.

Configurazione individuale di dischi permanenti stateful per una VM in un gruppo di istanze gestite

Configura i dischi permanenti stateful per una VM specifica in un GIM aggiungendo il nome del dispositivo del disco alla configurazione per istanza della VM. Aggiorna la VM in applicare la configurazione per istanza e renderla efficace.

La configurazione individuale di dischi permanenti stateful per VM specifiche in un gruppo di istanze gestite utile se devi:

  • Esegui la migrazione dei carichi di lavoro esistenti (porta i dischi esistenti) da VM autonome a MIG stateful per trarre vantaggio dalla riparazione automatica e dagli aggiornamenti semplici.
  • Ripristina i backup dei dischi, configurati singolarmente per le VM.
  • Collega temporaneamente dischi stateful aggiuntivi a una VM specifica per eseguire test, eseguire il debug o copiare i dati.

Aggiunta di dischi stateful esistenti a nuove VM in un gruppo di istanze gestite

Puoi aggiungere dischi stateful esistenti a nuove istanze create manualmente in un gruppo di istanze gestite. È utile per eseguire la migrazione di un'applicazione stateful da applicazioni di VM autonome a un gruppo di istanze gestite stateful, ad esempio:

  1. Crea un modello di istanza con una configurazione comune per tutte le istanze VM.
  2. Scollega i dischi di dati dalle istanze autonome ed eliminale. Puoi anche scollegare dischi di avvio se contengono uno stato che deve essere conservato.
  3. Crea un gruppo di istanze gestite vuoto utilizzando il modello di istanza creato in precedenza.
  4. Crea istanze nel gruppo di istanze gestite con i nomi appropriati e i nel passaggio precedente. Il gruppo di istanze gestite risponde alla tua richiesta con le seguenti azioni:

    1. Crea una VM dal modello di istanza utilizzando lo strumento fornito del nome dell'istanza.
      • Un gruppo di istanze gestite a livello di regione crea la VM nella stessa zona in cui in cui si trova il disco. Se il disco è a livello di regione, il gruppo di istanze gestite a livello di regione crea la VM in una qualsiasi delle zone di replica del disco.
    2. Crea un configurazione per istanza con la configurazione stateful fornita per i dischi.
    3. Collega i dischi alla nuova istanza.

Aggiungi dischi stateful esistenti quando crei manualmente istanze specifiche in un gruppo di istanze gestite mediante gcloud CLI o REST. Il gruppo di istanze gestite applica immediatamente al momento della creazione della VM.

gcloud

Per creare una VM con un nome personalizzato e collegare una o più VM esistenti dischi stateful a quella VM, utilizza gcloud compute instance-groups managed create-instance con uno o più flag --stateful-disk.

gcloud compute instance-groups managed create-instance NAME \
  --instance VM_NAME \
  [--zone ZONE | --region REGION] \
  --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • NAME: il nome del gruppo di istanze gestite in cui devi creare un'istanza.
  • VM_NAME: il nome del nuovo per creare un'istanza.
  • ZONE: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).
  • REGION: la regione in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di regione).
  • DEVICE_NAME: il nome del dispositivo da utilizzare quando colleghi il disco.
  • DISK: l'URI di un valore esistente disco permanente da collegare all'oggetto DEVICE_NAME nel formato projects/project-id/zones/zone/disks/disk-name per un disco a livello di zona projects/project-id/regions/region/disks/disk-name per un disco a livello di regione.
  • MODE: specifica la modalità del disco. Le opzioni supportate sono:
    • ro: di sola lettura.
    • rw: (valore predefinito). Lettura/scrittura.
  • DELETE_RULE: un valore che indica che cosa dovrebbe accadere a un disco stateful quando viene eliminata un'istanza VM. La le opzioni disponibili sono:

    • never: (opzione predefinita). Non eliminare mai il disco. scollega del disco quando la rispettiva istanza viene eliminata.
    • on-permanent-instance-deletion: elimina il disco stateful quando la sua istanza è permanente eliminato del gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o di dimensioni ridotte.

    A prescindere dal valore della regola di eliminazione, i dischi stateful sono sempre per le operazioni di riparazione automatica, aggiornamento e ricreazione dell'istanza.

Esempio

Vuoi attivare la riparazione automatica per un server database attualmente in esecuzione su una VM autonoma denominata db-instance e che attualmente memorizza i dati su un disco denominato db-data-disk-1.

Crea un gruppo di istanze gestite stateful con riparazione automatica, crea una VM simile all'interno del gruppo di istanze gestite e collega il disco dati esistente db-data-disk-1 al una nuova istanza come disco stateful:

  1. Arresta la VM db-instance durante un periodo di manutenzione.
  2. Crea un modello di istanza denominato db-template utilizzando la configurazione db-instance.
  3. Scollega db-data-disk-1 da db-instance ed elimina db-instance.
  4. Crea un gruppo di istanze gestite vuoto, example-database-mig, da db-template e e configurare la riparazione automatica.
  5. Crea un'istanza gestita con il nome db-instance originale e collega db-data-disk-1 come disco con stato:

    gcloud compute instance-groups managed create-instance example-database-mig \
      --instance db-instance \
      --zone us-east1-c \
      --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
    

    Il comando crea un'istanza, db-instance, nel gruppo di istanze gestite, crea un'istanza configurazione per istanza corrispondente con db-data-disk-1 disco stateful, e collega il disco alla nuova VM utilizzando data-disk come nome del dispositivo.

REST

Per creare una o più istanze in un gruppo di istanze gestite, impostare nomi di VM personalizzati e per collegare uno o più dischi stateful esistenti a queste istanze, utilizza instanceGroupManagers.createInstances .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances

{
  "instances": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      }
    },
    ...
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: ID progetto per la richiesta.
  • ZONE: il 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 specificare la regione il gruppo di istanze gestite.
  • NAME: il nome del gruppo di istanze gestite in cui per creare un'istanza.
  • VM_NAME: il nome dell'istanza da creare.
  • DEVICE_NAME: il nome del dispositivo da per collegare il disco.
  • DISK: l'URI di un disco permanente esistente da collegare al DEVICE_NAME specificato nel formato projects/project-id/zones/zone/disks/disk-name per un disco a livello di zona o projects/project-id/regions/region/disks/disk-name per un disco a livello di area geografica.
  • MODE: specifica la modalità del disco. Le opzioni supportate sono:
    • READ_ONLY: sola lettura.
    • READ_WRITE: (opzione predefinita). Lettura/scrittura.
  • DELETE_RULE: un valore che indica cosa dovrebbe accadere a un disco stateful quando una VM viene eliminata. Le opzioni disponibili sono le seguenti:

    • never: (valore predefinito). Non eliminare mai il disco. scollega del disco quando la rispettiva VM viene eliminata.
    • on-permanent-instance-deletion: elimina il disco stateful quando la sua istanza è permanente eliminato del gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o di dimensioni ridotte.

    A prescindere dal valore della regola di eliminazione, i dischi stateful sono sempre per le operazioni di riparazione automatica, aggiornamento e ricreazione dell'istanza.

Esempio

Vuoi usare la riparazione automatica per un server di database attualmente in esecuzione su una VM autonoma denominata db-instance e che attualmente archivia i dati su con nome db-data-disk-1.

Crea un gruppo di istanze gestite stateful con riparazione automatica, crea un'istanza simile all'interno del gruppo di istanze gestite e collega il disco dati esistente db-data-disk-1 alla nuova VM come disco stateful:

  1. Arresta la VM db-instance durante un periodo di manutenzione.
  2. Crea un modello di istanza denominato db-template utilizzando la configurazione db-instance.
  3. Scollega db-data-disk-1 da db-instance ed elimina db-instance.
  4. Crea un gruppo di istanze gestite vuoto, example-database-mig, da db-template e e configurare la riparazione automatica.
  5. Crea un'istanza con il nome originale di db-instance e collegala db-data-disk-1 come disco stateful:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances
    
    {
      "instances": [
        {
          "name": "db-instance",
          "preservedState" : {
            "disks": {
              "data-disk" : {
                "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1",
                "mode": "READ_WRITE",
                "autoDelete": "never"
              }
            }
          }
        }
      ]
    }
    

    Il metodo crea un'istanza, db-instance, nel gruppo di istanze gestite, crea un configurazione per istanza corrispondente con lo stato stateful db-data-disk-1 e lo collega alla nuova istanza utilizzando data-disk come il nome del dispositivo.

Aggiunta, dichiarazione e sostituzione singolarmente dei dischi stateful per le VM in un gruppo di istanze gestite

Configura singolarmente i dischi stateful per un'istanza gestita aggiungendo o aggiornare la configurazione di un disco stateful nella risorsa per istanza associata . Poi aggiorna l'istanza in applicare la configurazione per istanza alla VM.

La configurazione individuale di dischi stateful è utile per le attività seguenti:

  • Aggiunta di un disco stateful dall'esterno di un gruppo di istanze gestite a una VM all'interno del gruppo.
  • Dichiarazione di un disco precedentemente stateless come stateful per una VM in un gruppo di istanze gestite.
  • Sostituzione di un disco stateful con un disco diverso per una VM in un gruppo di istanze gestite.

Aggiunta di un disco stateful dall'esterno di un gruppo di istanze gestite a una VM nel gruppo di istanze gestite. Puoi collegare qualsiasi disco esterno a un'istanza gestita aggiungendo la configurazione stateful del disco alla configurazione per istanza associata. Dopo aver applicato la configurazione, il gruppo di istanze gestite collega automaticamente il disco all'istanza e la considera come stateful.

Dichiarazione di un disco permanente precedentemente stateless come stateful. Puoi dichiarare un disco precedentemente senza stato, attualmente collegato a una VM, come con stato aggiungendo la configurazione con stato per questo disco, inclusi il nome e l'URI del dispositivo, alla configurazione per istanza associata. Dopo l'iscrizione la configurazione, il gruppo di istanze gestite inizia a conservare il disco come stateful.

Sostituzione di un disco stateful con un altro disco. Può essere utile sostituire un disco stateful con un altro disco stateful, ad esempio Ad esempio, se hai bisogno di accedere a un backup recuperato. Puoi scambiare un elemento stateful il disco per un altro aggiornando l'URI del disco mantenendo lo stesso nome dispositivo nella configurazione per istanza. Dopo aver applicato la configurazione per istanza aggiornata, il gruppo di istanze gestite scollega il vecchio disco e collega quello nuovo utilizzando lo stesso nome del dispositivo. Quando applichi l'aggiornamento, scegli se mantenere l'istanza in esecuzione, riavviare o riecrearla. Lo scambio di un disco di avvio richiede almeno un riavvio della VM.

gcloud

Per configurare i dischi stateful singolarmente per una VM in un gruppo di istanze gestite, aggiungi aggiorna la configurazione del disco stateful nella risorsa per istanza associata configurazione. Poi aggiorna l'istanza in applicare la configurazione.

Se non esiste ancora una configurazione per istanza per l'istanza, utilizza il metodo Comando gcloud compute instance-groups managed instance-configs create con uno o più flag --stateful-disk:

gcloud compute instance-groups managed instance-configs create NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Se esiste già una configurazione per istanza per l'istanza, utilizza il metodo Comando gcloud compute instance-groups managed instance-configs update con uno o più flag --stateful-disk.

Il flag --update-instance (impostazione predefinita) applica immediatamente le modifiche all'istanza. Se utilizzi --no-update-instance, le modifiche non verranno applicate e verranno applicato quando ricrei o aggiorni l'istanza.

gcloud compute instance-groups managed instance-configs update NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Sostituisci quanto segue:

  • NAME: il nome dell'account gestito gruppo di istanze gestite.
  • VM_NAME: il nome del Istanza VM per la quale configurare i dischi stateful.
  • DEVICE_NAME: il nome del dispositivo utilizzato per collegare il disco.
  • DISK: l'URI di un disco permanente esistente da collegare in DEVICE_NAME specificato, nel formato projects/project-id/zones/zone/disks/disk-name per un disco a livello di zona e projects/project-id/regions/region/disks/disk-name per un disco a livello di regione.

    Il flag secondario source=DISK è facoltativo se il dispositivo è già definito nella configurazione per istanza dell'istanza. In caso contrario, è obbligatorio.

    Se omesso, l'URI del disco attualmente configurato rimane invariato.

  • MODE: specifica la modalità del disco. Puoi specificare mode solo se specifichi anche source. Le opzioni supportate sono:

    • ro: di sola lettura.
    • rw: (valore predefinito). Lettura/scrittura.

    Se omesso, viene impostato il valore predefinito per un nuovo disco stateful configuration; il valore rimane invariato in una configurazione esistente.

  • DELETE_RULE: un valore che indica cosa dovrebbe accadere a un disco stateful quando una VM viene eliminata. La le opzioni disponibili sono le seguenti:

    • never: (opzione predefinita). Non eliminare mai il disco. scollega del disco quando la rispettiva istanza viene eliminata.
    • on-permanent-instance-deletion: elimina il disco stateful quando la rispettiva istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o la dimensione del gruppo è diminuita.

    Se omesso, viene impostato il valore predefinito per un nuovo disco stateful configuration; il valore rimane invariato in una configurazione esistente.

    A prescindere dal valore della regola di eliminazione, i dischi stateful sono sempre per le operazioni di riparazione automatica, aggiornamento e ricreazione dell'istanza.

  • MINIMAL_ACTION: esegui almeno il valore specificato quando applichi l'aggiornamento della configurazione per istanza all'istanza. Deve essere utilizzato insieme al flag --update-instance. Il valore deve essere uno di:

    • none: nessuna azione.
    • refresh: applica aggiornamenti che è possibile applicare senza l'arresto della VM.
    • restart: arresta la VM e riavviala.
    • replace: ricrea la VM.

    Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.

Esempio

I dati su un disco stateful attualmente collegato, data-disk-1, hanno ricevuto è danneggiato e vuoi ripristinarlo dall'ultimo backup. Hai creato un disco, data-disk-2, da uno snapshot per sostituire il disco danneggiato nell' istanza, db-instance-1, gestita da un gruppo di istanze gestite stateful, example-database-mig. Il disco originale data-disk-1 è collegato sotto il nome del dispositivo data-disk con una regola di eliminazione automatica per non eliminare mai disco.

Per sostituire data-disk-1 con data-disk-2, esegui il seguente comando:

gcloud compute instance-groups managed instance-configs update example-database-mig \
  --instance db-instance-1 \
  --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \
  --update-instance \
  --instance-update-minimal-action restart

Il comando esegue queste operazioni:

  1. Aggiorna la configurazione per istanza per db-instance-1:
    1. Aggiorna l'origine del disco con il nome del dispositivo data-disk da data-disk-1 (ultima configurazione) a data-disk-2 (nuova configurazione).
    2. Conserva la regola di eliminazione automatica in modo che non elimini mai il disco perché Parametro auto-delete omesso nel flag --stateful-disk e, per impostazione predefinita, la regola di eliminazione è never.
  2. Applica l'aggiornamento della configurazione per istanza alla VM db-instance-1 perché è incluso il flag --update-instance. Il gruppo di istanze gestite scollega data-disk-1 e collega data-disk-2 sotto lo stesso nome di dispositivo, data-disk.
  3. Poiché l'azione minima è impostata su restart, il gruppo di istanze gestite riavvia la db-instance-1 per aggiornare la VM. Ciò consente alle per iniziare a utilizzare il nuovo disco.

Terraform

Per configurare i dischi stateful singolarmente per una VM in un gruppo di istanze gestite, aggiungi configurazione del disco stateful nella risorsa per istanza associata configurazione. Aggiorna quindi l'istanza per applicare la configurazione.

Per aggiungere la configurazione per istanza di una VM, utilizza la risorsa google_compute_per_instance_config e includi il blocco preserved_state come mostrato nell'esempio seguente.

resource "google_compute_per_instance_config" "default" {
  instance_group_manager = google_compute_instance_group_manager.default.name
  zone                   = google_compute_instance_group_manager.default.zone
  name                   = "db-instance"
  preserved_state {
    disk {
      device_name = "data-disk"
      source      = google_compute_disk.default.id
      delete_rule = "NEVER"
    }
  }
}

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

REST

Per configurare i dischi stateful singolarmente per le VM in un gruppo di istanze gestite, aggiungi aggiorna la configurazione del disco stateful nella risorsa per istanza associata configurazioni. Quindi, aggiorna le istanze in applicare la configurazione.

Se non esistono ancora configurazioni per istanza per le VM specificate, utilizza Metodo instanceGroupManagers.updatePerInstanceConfigs o Metodo regionInstanceGroupManagers.updatePerInstanceConfigs con la configurazione stateful per uno o più dischi:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Se esistono già configurazioni per istanza per le VM specificate, utilizza Metodo instanceGroupManagers.patchPerInstanceConfigs o Metodo regionInstanceGroupManagers.patchPerInstanceConfigs con la configurazione stateful per uno o più dischi:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per la richiesta.
  • ZONE: il 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 specificare la regione il gruppo di istanze gestite.
  • NAME: il nome del gruppo di istanze gestite.
  • VM_NAME: il nome del per la quale configurare i dischi stateful.
  • DEVICE_NAME: il nome del dispositivo utilizzato per collegare il disco.
  • DISK: l'URI di un oggetto permanente esistente disco da collegare nel campo DEVICE_NAME specificato, nel formato projects/project-id/zones/zone/disks/disk-name per un disco a livello di zona projects/project-id/regions/region/disks/disk-name per un disco a livello di regione.

    Il campo "source": "DISK" è facoltativo se dispositivo è già definito nella configurazione per istanza dell'istanza. In caso contrario, è obbligatorio.

    Se il campo source viene omesso, l'URI del disco attualmente configurato rimangono invariati.

  • MODE: (facoltativo) Specifica la modalità del disco. mode può essere specificato solo se è specificato source. Supportato sono:

    • READ_ONLY: sola lettura.
    • READ_WRITE: (opzione predefinita). Lettura/scrittura.

    Se omesso, viene impostato il valore predefinito per un nuovo disco stateful configuration; il valore rimane invariato in una configurazione esistente.

  • DELETE_RULE: (facoltativo) Un valore che indica cosa dovrebbe accadere a un disco stateful quando una VM viene eliminata. La le opzioni disponibili sono le seguenti:

    • mai: (opzione predefinita). Non eliminare mai il disco. scollega del disco quando la rispettiva istanza viene eliminata.
    • on-permanent-instance-deletion: elimina il disco stateful quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.

    Se il campo autoDelete viene omesso, il valore predefinito viene impostato per una nuova configurazione del disco stateful. Il valore rimane invariato in una configurazione esistente.

    A prescindere dal valore della regola di eliminazione, i dischi stateful sono sempre per le operazioni di riparazione automatica, aggiornamento e ricreazione dell'istanza.

  • FINGERPRINT: (facoltativo). L'impronta per la configurazione specificata, se esistente. Utilizzato per il blocco ottimistico. Per vedere l'impronta più recente, effettua una richiesta get() per recuperare la risorsa.

Aggiornamento dei metodi updatePerInstanceConfigs e patchPerInstanceConfigs le configurazioni per istanza specificate, ma non applicare gli aggiornamenti della configurazione alle VM gestite associate. Le modifiche vengono applicate a un'istanza quando al gruppo di istanze gestite viene chiesto di ricrearla o aggiornarla. Puoi anche aggiornare selettivamente l'istanza per applicare le modifiche.

Esempio

I dati su un disco stateful attualmente collegato, data-disk-1, hanno ricevuto è danneggiato e vuoi ripristinarlo dall'ultimo backup. Hai creato un il disco data-disk-2 da uno snapshot per sostituire il disco danneggiato in istanza, db-instance-1, gestita da un MIG stateful, example-database-mig. Il disco originale data-disk-1 è collegato sotto il nome del dispositivo data-disk con una regola di eliminazione automatica per non eliminare mai disco.

Per aggiornare la configurazione per istanza di db-instance-1 con il nuovo disco, chiama il metodo patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "db-instance-1",
      "preservedState" : {
        "disks": {
          "data-disk" : {
            "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2"
          }
        }
      }
    }
  ]
}

Il metodo applica patch alla configurazione per istanza per db-instance-1:

  1. Aggiorna source per un disco con nome dispositivo data-disk da Da data-disk-1 (ultima configurazione) a data-disk-2 (nuova configurazione).
  2. Mantiene invariati i parametri mode e autoDelete perché vengono omessi nella richiesta.

L'aggiornamento della configurazione non è ancora stato applicato alla VM db-instance-1. Il MIG applica l'aggiornamento della configurazione quando ricrei o aggiorni l'istanza.

Per applicare l'aggiornamento della configurazione per istanza alla VM db-instance-1, chiama il metodo Metodo instanceGroupManagers.applyUpdatesToInstances per l'istanza:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances
{
  "instances": ["/zones/us-east1-c/instances/db-instance-1"],
  "minimalAction": "RESTART"
}

Il metodo aggiorna lo stato conservato dell'istanza gestita, scollegando data-disk-1 e collegamento di data-disk-2 sotto lo stesso nome del dispositivo data-disk. Poiché il valore minimalAction è impostato su RESTART, il metodo riavvia la VM db-instance-1, consentendo all'applicazione di database iniziare a utilizzare il nuovo disco.

Scollegamento o dichiarazione di un disco stateful per una singola VM

Potresti dover scollegare un disco stateful o configurarlo affinché venga trattato stateless per una singola VM. Ad esempio:

  • Se riarchitetti l'app per spostare lo stato dal disco.
  • Se configuri il disco in modo che sia stateful per errore e vuoi ripristinarla.

Scollega un disco stateful o rendilo stateless per una singola VM rimuovendo la configurazione stateful del disco dalla risorsa per istanza associata o eliminando l'intera configurazione per istanza. Quando applica la modifica:

  • Se il disco non è definito nel modello di istanza, il gruppo di istanze gestite si scollega sul disco.
    • Il gruppo di istanze gestite non elimina il disco quando ne elimini il configurazione a livello di istanza dalla configurazione per istanza, indipendentemente di eliminazione automatica nella configurazione.
  • Se il disco viene definito dal modello di istanza, il gruppo di istanze gestite lo considera come stateless, il che significa che il gruppo di istanze gestite ricrea il disco dalla sua origine il modello di istanza alla successiva creazione, aggiornamento di riparazione automatica.

La rimozione di una configurazione del disco da una configurazione per istanza non riavvia un'istanza VM in esecuzione, a meno che tu non scelga esplicitamente di farlo.

Per ulteriori informazioni, vedi Applicare gli aggiornamenti delle configurazioni per istanza.

gcloud

Per scollegare i dischi con stato o dichiararli senza stato singolarmente per una VM in un gruppo di istanze gestite, rimuovi la configurazione dei dischi con stato dalla configurazione per istanza associata o elimina l'intera configurazione per istanza se non contiene altri stati. Aggiorna l'istanza per applicare configurazione.

Per rimuovere una configurazione di disco stateful dalla risorsa per istanza associata utilizza Comando gcloud compute instance-groups managed instance-configs update con il flag --remove-stateful-disks. Il flag --update-instance (impostazione predefinita) applica immediatamente le modifiche all'istanza. Se utilizzi --no-update-instance, le modifiche non verranno applicate e verranno applicato quando ricrei o aggiorni l'istanza.

gcloud compute instance-groups managed instance-configs update NAME \
  --instance VM_NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \
  [--no-update-instance | --update-instance] \
  [--instance-update-minimal-action MINIMAL_ACTION]

Sostituisci quanto segue:

  • NAME: il nome del gruppo di istanze gestite.
  • VM_NAME: nome della VM da che rimuove la configurazione stateful.
  • DEVICE_NAME: il nome del dispositivo utilizzato per collegare il disco.
  • MINIMAL_ACTION: esegui almeno l'azione specificata quando aggiorni la VM con la relativa configurazione per istanza. Lattina da utilizzare solo insieme a --update-instance. Il valore deve essere uno le seguenti:

    • none: nessuna azione.
    • refresh: applica aggiornamenti che è possibile applicare senza l'arresto della VM.
    • restart: arresta la VM e riavviala.
    • replace: ricrea la VM.

    Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.

Esempio

Esegui un'applicazione legacy su un gruppo di istanze gestite denominato example-legacy-group. Ogni VM nel gruppo di istanze gestite memorizza i dati dell'applicazione su un disco di avvio con il nome dispositivo boot-disk. Utilizzando le configurazioni per istanza, hai configurato ogni disco di avvio come stateful. Hai spostato l'applicazione su un disco aggiuntivo e vuoi rendere il disco di avvio stateless ogni VM per facilitare l'aggiornamento alle nuove immagini.

Per ogni istanza, ad esempio per node-1, esegui il comando:

gcloud compute instance-groups managed instance-configs update example-legacy-group \
  --instance node-1 \
  --remove-stateful-disks boot-disk \
  --update-instance

Il comando esegue queste operazioni:

  1. Rimuove la configurazione del disco con il nome del dispositivo boot-disk dalla configurazione per istanza per node-1.
  2. L'aggiornamento della configurazione per istanza viene applicato immediatamente alla VM node-1 perché è incluso il flag --update-instance. Il gruppo di istanze gestite il disco di avvio dall'istanza gestita preservedStateFromConfig e considera il disco di avvio come stateless, il che significa che il ricrea il disco dalla sua immagine di avvio nel modello di istanza successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.

REST

Per scollegare i dischi con stato o dichiararli senza stato singolarmente per una VM in un gruppo di istanze gestite, rimuovi la configurazione dei dischi con stato dalla configurazione per istanza associata o elimina l'intera configurazione per istanza se non contiene altri stati. Poi aggiorna l'istanza in applicare la configurazione.

Per rimuovere una configurazione di disco stateful dall'istanza per istanza associata config, utilizza Metodo instanceGroupManagers.patchPerInstanceConfigs o Metodo regionInstanceGroupManagers.patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : null
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
      ...
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per la richiesta.
  • ZONE: il 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.
  • VM_NAME: il nome della VM da cui rimuovere la configurazione con stato.
  • DEVICE_NAME: il nome del dispositivo utilizzato per collegare il disco.
  • FINGERPRINT: l'impronta digitale per la configurazione specificata, se esiste già. Utilizzato per il blocco ottimistico. Per vedere l'impronta più recente, effettua una richiesta get() per recuperare la risorsa.

Il metodo patchPerInstanceConfigs applica una patch per l'istanza per istanza specificata configurazioni, ma non applica le modifiche alle VM associate. La vengono applicate a una VM quando ricrei o aggiorni l'istanza. Puoi applicare le modifiche manualmente o usa automatico in sequenza.

Esempio

Esegui un'applicazione legacy su un gruppo di istanze gestite denominato example-legacy-group. Ciascuna La VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivo boot-disk. Hai configurato il disco di avvio come stateful nel configurazioni per istanza durante la migrazione delle VM autonome nel gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora vuoi apportare il disco di avvio stateless per ogni VM per semplificare l'aggiornamento in formato Docker.

  1. Chiama il metodo patchPerInstanceConfigs per le istanze, ad esempio: per node-1 con un valore null per il disco di avvio:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs
    
    {
      "perInstanceConfigs": [
        {
          "name": "node-1",
          "preservedState" : {
            "disks": {
              "boot-disk" : null
            }
          }
        }
      ]
    }
    

    Il metodo rimuove la configurazione del disco con nome dispositivo boot- disk dalla configurazione per istanza di node-1. L'aggiornamento della configurazione non ancora applicato all'istanza VM node-1. L'aggiornamento della configurazione applicata al successivo aggiornamento o ricreazione dell'istanza.

  2. Per applicare l'aggiornamento della configurazione per istanza all'istanza VM node-1, chiama il metodo instanceGroupManagers.applyUpdatesToInstances per l'istanza:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances
    {
      "instances": ["/zones/us-east1-c/instances/node-1"]
    }
    

    Il gruppo di istanze gestite rimuove il disco di avvio preservedStateFromConfig per node-1 e considera il disco come stateless. Ciò significa che il gruppo di istanze gestite ricrea il disco dalla sua immagine di avvio nel modello di istanza di ricreazione, aggiornamento o riparazione automatica dell'istanza.

Feedback

Vogliamo conoscere i tuoi casi d'uso, le sfide e il feedback sulla gruppi di istanze gestite. Condividi il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.

Passaggi successivi