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


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

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

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

Per applicare una configurazione aggiornata alle VM esistenti, puoi impostare una configurazione aggiornamento, noto anche come "opportunistico" tipo di aggiornamento. Questo tipo di offerte di aggiornamento i seguenti vantaggi:

  • Puoi selezionare le VM da aggiornare.
  • Puoi controllare la tempistica e la sequenza degli aggiornamenti.
  • Puoi utilizzare gcloud CLI o REST per aggiornare tutti delle VM immediatamente.

In alternativa, se vuoi automatizzare l'implementazione di una nuova configurazione a tutte le VM in un gruppo di istanze gestite o a un sottoinsieme casuale, consulta Applica 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 già fatto, configura l'autenticazione. Autenticazione è la procedura 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. REST

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci 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.

Applica la configurazione aggiornata alle VM selezionate

Assicurati che il tipo di criterio di aggiornamento del gruppo sia impostato su "opportunistico" per evitare al gruppo di istanze gestite in modo che non applichi automaticamente una nuova configurazione VM alle VM esistenti. Per ulteriori informazioni, vedi Controlla il tipo di criterio di aggiornamento del gruppo.

Poi utilizza gcloud CLI o REST per aggiornare il e applicare la configurazione più recente a VM specifiche nel o a tutte le VM nel gruppo.

gcloud

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

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

Applica la configurazione a VM specifiche

Per applicare la configurazione aggiornata a VM specifiche, utilizza 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 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 modello in
  • DISRUPTION_LEVEL: il valore minimo o massimo livello di interruzione: 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 tuo gruppo, chiama il metodo patch su un a livello di zona o regionale gruppo di istanze gestite e aggiorna il campo versions.instanceTemplate. Per evitare il deployment del nuovo modello su tutte le VM del gruppo, imposta 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",
  }]
}

Applica la configurazione a VM specifiche

Per applicare la configurazione aggiornata a VM specifiche, chiama il metodo applyUpdatesToInstances metodo per a livello di zona o regionale gruppo di istanze gestite e specificare 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 valore allInstances campo a 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 aggiorna
  • DISRUPTION_LEVEL: il valore minimo o massimo livello di interruzione: NONE, REFRESH, RESTART o REPLACE
    • Il valore predefinito di minimalAction è NONE.
    • Il valore predefinito di mostDisruptiveAllowedAction è REPLACE.

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

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

Controllare il livello di interruzione durante gli aggiornamenti selettivi

A seconda della natura di un aggiornamento, potrebbe interrompere stato. Ad esempio, la modifica di un di avvio dell'istanza richiede la sostituzione dell'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 di applicare un'azione più invasiva 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 eseguire aggiornamento.
    • Per applicare un'azione più invasiva di quanto sia strettamente necessario, imposta il valore azione minima per RESTART o REPLACE. Ad esempio: Compute Engine non deve riavviare una VM per modificarne metadati. Ma se la tua applicazione legge i metadati dell'istanza solo quando una VM viene riavviato, puoi impostare l'azione minima su RESTART per scegliere modifiche ai metadati.
  • Azione consentita per la maggior parte dei disturbi: utilizza questa opzione per impedire un aggiornamento se richiede più interruzioni di quanto ti puoi permettere. Se l'aggiornamento richiede un 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, un tentativo di aggiornamento dell'immagine disco di avvio non va a buon fine perché l'aggiornamento richiede una ricreazione dell'istanza, un'azione più invasiva rispetto al riavvio.

Durante l'aggiornamento delle VM selezionate, entrambe le opzioni accettano quanto segue valori:

ValoreDescrizioneQuali proprietà dell'istanza possono essere aggiornate?
NONENon interrompere del tutto l'istanza.Nessuno
REFRESHNon arrestare l'istanza.Dischi aggiuntivi, metadati dell'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 più invasiva consentita non può essere meno invasiva di quella minima. un'azione.

Quando aggiorni selettivamente le VM, vengono applicate le seguenti impostazioni predefinite:

  • L'azione minima predefinita è NONE, che limita le interruzioni tanto quanto possibile.
  • L'azione predefinita più invasiva consentita è REPLACE. Se non riesci tollerare tali interruzioni, impostare l'azione consentita più invasiva a meno dirompente.

Passaggi successivi