Applica selettivamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite

Questo documento descrive come applicare selettivamente gli aggiornamenti della configurazione alle istanze di macchine virtuali (VM) in un gruppo di istanze gestite.

Compute Engine gestisce le VM in un gruppo di istanze gestite in base ai componenti di configurazione utilizzati: modello di istanza, configurazione facoltativa di tutte le istanze e configurazione stateful facoltativa.

Ogni volta che aggiorni la configurazione della VM di un gruppo di istanze gestite modificando questi componenti, Compute Engine applica automaticamente la configurazione aggiornata alle nuove VM aggiunte al gruppo.

Per applicare una configurazione aggiornata alle VM esistenti, puoi impostare un aggiornamento selettivo, chiamato anche tipo di aggiornamento "opportunistico". Questo tipo di aggiornamento offre i seguenti vantaggi:

  • Puoi selezionare le VM che vuoi aggiornare.
  • Puoi controllare i tempi e la sequenza degli aggiornamenti.
  • Puoi utilizzare gcloud CLI o REST per aggiornare immediatamente tutte le VM.

In alternativa, se vuoi automatizzare l'implementazione di una nuova configurazione in tutte o in un sottoinsieme casuale delle VM in un gruppo di istanze gestite, consulta Applicare automaticamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite. Per aiutarti a decidere, consulta Metodi per applicare una nuova configurazione alle VM esistenti.

Prima di iniziare

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

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    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

Applica la configurazione aggiornata alle VM selezionate

Assicurati che il tipo di criterio di aggiornamento del gruppo sia impostato su "opportunistico" per impedire al gruppo di istanze gestite di applicare automaticamente una nuova configurazione della VM alle VM esistenti. Per ulteriori informazioni, consulta Controllare il tipo di criterio di aggiornamento del gruppo.

Quindi utilizza gcloud CLI o REST per aggiornare la configurazione del gruppo di istanze gestite e applicare la configurazione più recente a VM specifiche nel gruppo o a tutte le VM nel gruppo.

gcloud

Per configurare un nuovo modello di istanza per il gruppo, puoi utilizzare il comando set-instance-template.

gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \
    --template=INSTANCE_TEMPLATE

Applicare la configurazione a VM specifiche

Per applicare la configurazione aggiornata a VM specifiche, utilizza il comando update-instances con il flag --instances.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAMES \
    --most-disruptive-allowed-action DISRUPTION_LEVEL \
    --minimal-action DISRUPTION_LEVEL

Applica la configurazione a tutte le VM

Per applicare la configurazione aggiornata a tutte le VM, utilizza il comando update-instances con il flag --all-instances.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --all-instances \
    --most-disruptive-allowed-action DISRUPTION_LEVEL \
    --minimal-action DISRUPTION_LEVEL

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite
  • INSTANCE_TEMPLATE: nuovo modello di istanza
  • INSTANCE_NAMES: un elenco di VM a cui applicare il modello
  • DISRUPTION_LEVEL: il livello di interruzione minimo o massimo: none, refresh, restart o replace
    • L'azione minima predefinita è none
    • L'azione predefinita più invasiva consentita è replace

REST

Per configurare un nuovo modello di istanza per il gruppo, chiama il metodo patch in un gruppo di istanze gestite in modo che sia a livello di zona o regionale e aggiorna il campo versions.instanceTemplate. Per evitare di implementare automaticamente il nuovo modello in tutte le VM del gruppo, imposta il campo updatePolicy.type su OPPORTUNISTIC.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "updatePolicy": {
    "type": "OPPORTUNISTIC"
  },
  "versions": [{
    "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
  }]
}

Applicare la configurazione a VM specifiche

Per applicare la configurazione aggiornata a VM specifiche, chiama il metodo applyUpdatesToInstances per il tuo gruppo di istanze gestite a livello di zona o regionale e specifica un elenco di VM nella richiesta.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
  "instances": [
    "zones/ZONE/instances/INSTANCE_NAME_1",
    "zones/ZONE/instances/INSTANCE_NAME_2"
  ],
  "minimalAction": DISRUPTION_LEVEL,
  "mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}

Applica la configurazione a tutte le VM

Per applicare la configurazione aggiornata a tutte le VM esistenti, imposta il campo allInstances su true:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
  "allInstances": true,
  "minimalAction": DISRUPTION_LEVEL,
  "mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo
  • NEW_TEMPLATE: il nome del nuovo modello
  • ZONE: la zona di un'istanza da aggiornare
  • INSTANCE_NAME_1 e INSTANCE_NAME_2: i nomi delle VM da aggiornare
  • DISRUPTION_LEVEL: il livello di interruzione minimo o massimo: NONE, REFRESH, RESTART o REPLACE
    • Il valore predefinito di minimalAction è NONE.
    • Il valore predefinito di mostDisruptiveAllowedAction è REPLACE.

Analogamente ad altri metodi di gruppo di istanze gestite, applyUpdatesToInstances è basato sull'intent, il che significa che restituisce una risposta di un'operazione. Il completamento dell'operazione può richiedere del tempo.

Dopo aver effettuato una richiesta, puoi controllare lo stato per verificare che l'aggiornamento sia completo.

Controlla il livello di interruzione durante aggiornamenti selettivi

A seconda della natura di un aggiornamento, potrebbe interrompere lo state di un'istanza. Ad esempio, per modificare il disco di avvio di un'istanza è necessario sostituire l'istanza. Puoi controllare il livello di interruzione durante un aggiornamento selettivo impostando le seguenti opzioni:

  • Azione minima: utilizza questa opzione per ridurre al minimo le interruzioni il più possibile o per applicare un'azione più problematica del necessario.

    • Per limitare il più possibile le interruzioni, imposta l'azione minima su NONE. Se l'aggiornamento richiede un'azione più invasiva, Compute Engine esegue l'azione necessaria per eseguirlo.
    • Per applicare un'azione più invasiva di quella strettamente necessaria, imposta l'azione minima su RESTART o REPLACE. Ad esempio, Compute Engine non ha bisogno di riavviare una VM per modificarne i metadati. Tuttavia, se l'applicazione legge i metadati dell'istanza solo al riavvio di una VM, puoi impostare l'azione minima su RESTART per recuperare le modifiche ai metadati.
  • Azione consentita più di disturbo: utilizza questa opzione per evitare un aggiornamento se richiede più interruzioni di quanto puoi permetterti. Se l'aggiornamento richiede un'azione più invasiva rispetto a quella impostata con questo flag, la richiesta di aggiornamento non va a buon fine. Ad esempio, se imposti l'azione consentita più invasiva su RESTART, allora un tentativo di aggiornamento dell'immagine del disco di avvio non va a buon fine perché l'aggiornamento richiede la ricreazione dell'istanza, un'azione più invasiva rispetto al riavvio.

Durante l'aggiornamento delle VM selezionate, entrambe le opzioni accettano i seguenti valori:

ValoreDescrizioneQuali proprietà dell'istanza possono essere aggiornate?
NONENon interrompere affatto l'istanza.Nessuno
REFRESHNon arrestare l'istanza.Dischi aggiuntivi, metadati di istanza, etichette, tag
RESTARTArresta l'istanza e avviala di nuovo.Dischi aggiuntivi, metadati dell'istanza, etichette, tag, tipo di macchina
REPLACEElimina l'istanza e creala di nuovo.Tutte le proprietà dell'istanza archiviate nel modello di istanza o nella configurazione per istanza

L'azione consentita più di disturbo non può essere meno fastidiosa dell'azione minima.

Quando aggiorni selettivamente le VM, si applicano i seguenti valori predefiniti:

  • L'azione minima predefinita è NONE, che limita il più possibile le interruzioni.
  • L'azione predefinita più invasiva consentita è REPLACE. Se non puoi tollerare tali interruzioni, imposta l'azione consentita più di disturbo in modo che sia meno invasiva.

Passaggi successivi