Questo documento descrive come applicare in modo selettivo gli aggiornamenti di configurazione alle istanze di macchine virtuali (VM) in un gruppo di istanze gestite (MIG).
Compute Engine gestisce le VM in un gruppo di istanze gestite in base ai componenti di configurazione che utilizzi: modello di istanza, configurazione facoltativa per 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 configurare un aggiornamento selettivo, noto anche come tipo di aggiornamento "opportunistico". Questo tipo di aggiornamento offre i seguenti vantaggi:
- Puoi selezionare le VM da aggiornare.
- Puoi controllare la tempistica e la sequenza degli aggiornamenti.
- Puoi utilizzare l'interfaccia a riga di comando gcloud o REST per aggiornare immediatamente tutte le VM.
In alternativa, se vuoi automatizzare l'implementazione di una nuova configurazione su tutte le VM o su un sottoinsieme casuale delle VM in un gruppo di istanze gestite, consulta Applicare automaticamente gli aggiornamenti di configurazione delle VM in un gruppo di istanze gestite. Per aiutarti a decidere, consulta la pagina 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 la tua identità viene verificata per l'accesso a servizi e API. 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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 Google Cloud sull'autenticazione.
-
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 VM alle VM esistenti. Per maggiori informazioni, consulta Verificare il tipo di criteri di aggiornamento del gruppo.
Quindi, utilizza l'interfaccia a riga di comando gcloud o REST per aggiornare la configurazione del gruppo di istanze gestite e applicare la configurazione più recente a VM specifiche del gruppo o a tutte le VM del gruppo.
Autorizzazioni richieste per questa attività
Per eseguire questa attività, devi disporre delle seguenti autorizzazioni:
- Per i MIG zonali, tutte le autorizzazioni necessarie per chiamare il metodo
instanceGroupManagers.patch
- Per i gruppi di istanze gestite a livello di regione, tutte le autorizzazioni necessarie per chiamare il metodo
regionInstanceGroupManagers.patch
Per configurare un nuovo modello di istanza per il gruppo, puoi utilizzare il comando set-instance-template
.
gcloud compute instance-groups managed set-instance-templateINSTANCE_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-instancesINSTANCE_GROUP_NAME \ --instancesINSTANCE_NAMES \ --most-disruptive-allowed-actionDISRUPTION_LEVEL \ --minimal-actionDISRUPTION_LEVEL
Applicare 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-instancesINSTANCE_GROUP_NAME \ --all-instances \ --most-disruptive-allowed-actionDISRUPTION_LEVEL \ --minimal-actionDISRUPTION_LEVEL
Sostituisci quanto segue:
INSTANCE_GROUP_NAME
: il nome del gruppo di istanze gestiteINSTANCE_TEMPLATE
: nuovo modello di istanzaINSTANCE_NAMES
: un elenco di VM a cui applicare il modelloDISRUPTION_LEVEL
: il livello di interruzione minimo o massimo:none
,refresh
,restart
oreplace
- L'azione minima predefinita è
none
- L'azione predefinita più dannosa consentita è
replace
- L'azione minima predefinita è
Per configurare un nuovo modello di istanza per il gruppo, chiama il metodo patch
su un gruppo di istanze gestite a livello di zona o regionale e aggiorna il campo versions.instanceTemplate
. Per evitare di implementare automaticamente il nuovo modello su 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 gruppo di istanze gestite a livello di zona o a livello di regione 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 }
Applicare 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 gruppoNEW_TEMPLATE
: il nome del nuovo modelloZONE
: la zona di un'istanza da aggiornareINSTANCE_NAME_1
eINSTANCE_NAME_2
: i nomi delle VM da aggiornareDISRUPTION_LEVEL
: il livello di interruzione minimo o massimo:NONE
,REFRESH
,RESTART
oREPLACE
- Il valore predefinito di
minimalAction
èNONE
. - Il valore predefinito di
mostDisruptiveAllowedAction
èREPLACE
.
- Il valore predefinito di
Come altri metodi del gruppo di istanze gestite, applyUpdatesToInstances
si basa sull'intenzione, il che significa che
restituisce una risposta all'operazione.
Il completamento dell'operazione può richiedere del tempo.
Dopo aver inviato una richiesta, puoi controllare lo stato per verificare che l'aggiornamento sia stato completato.
Controllare il livello di interruzione durante gli aggiornamenti selettivi
A seconda della natura di un aggiornamento, lo stato di un'istanza potrebbe essere interrotto. Ad esempio, la modifica del disco di avvio di un'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 l'interruzione o per applicare un'azione più invasiva del necessario.
- Per limitare al massimo l'interruzione, imposta l'azione minima su
NONE
. Se l'aggiornamento richiede un'azione più invasiva, Compute Engine esegue l'azione necessaria per eseguire l'aggiornamento. - Per applicare un'azione più dannosa del necessario, imposta l'azione minima su
RESTART
oREPLACE
. Ad esempio, Compute Engine non deve riavviare una VM per modificarne i metadati. Tuttavia, se la tua applicazione legge i metadati dell'istanza solo quando viene riavviata una VM, puoi impostare l'azione minima suRESTART
per rilevare le modifiche ai metadati.
- Per limitare al massimo l'interruzione, imposta l'azione minima su
Azione consentita più invasiva: utilizza questa opzione per impedire un aggiornamento se richiede più interruzioni di quante tu possa permetterti. Se l'aggiornamento richiede un'azione più invasiva di quella impostata con questo flag, la richiesta di aggiornamento non va a buon fine. Ad esempio, se imposti l'azione consentita più dannosa su
RESTART
, un tentativo di aggiornare l'immagine del disco di avvio non va a buon fine perché l'aggiornamento richiede la ricreazione dell'istanza, un'azione più dannosa di un riavvio.
Quando aggiorni le VM selezionate, entrambe le opzioni accettano i seguenti valori:
Valore | Descrizione | Quali proprietà delle istanze possono essere aggiornate? |
---|---|---|
NONE | Non interrompere l'istanza. | Nessuno |
REFRESH | Non arrestare l'istanza. | Dischi aggiuntivi, metadati dell'istanza, etichette e tag |
RESTART | Arresta l'istanza e riavviala. | Dischi aggiuntivi, metadati dell'istanza, etichette, tag, tipo di macchina |
REPLACE | Elimina l'istanza e creane una nuova. | 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 dell'azione minima.
Quando aggiorni le VM in modo selettivo, si applicano i seguenti valori predefiniti:
- L'azione minima predefinita è
NONE
, che limita al massimo l'interruzione. - L'azione predefinita più dannosa consentita è
REPLACE
. Se non puoi tollerare questo tipo di interruzione, imposta l'azione consentita più invasiva in modo che sia meno invasiva.
Passaggi successivi
- Scopri di più su come visualizzare informazioni su MIG e VM gestite.
- Scopri di più sulla creazione di modelli di istanze.
- Scopri come utilizzare le famiglie di immagini e una sostituzione graduale per aggiornare l'immagine del sistema operativo su tutte le VM di un gruppo di istanze gestite (MIG).