Questo documento descrive come applicare in modo selettivo gli aggiornamenti della configurazione alle istanze di macchine virtuali (VM) in un gruppo di istanze gestite (MIG).
Compute Engine gestisce le VM in un MIG in base ai componenti di configurazione che utilizzi: template di istanza, configurazione facoltativa per tutte le istanze e configurazione stateful facoltativa.
Ogni volta che aggiorni la configurazione delle VM di un MIG 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 gcloud CLI o REST per aggiornare immediatamente tutte le VM.
In alternativa, se vuoi automatizzare l'implementazione di una nuova configurazione per tutte o per un sottoinsieme casuale di VM in un MIG, consulta Applica automaticamente gli aggiornamenti della configurazione alle VM in un MIG. 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 verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
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.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Applica la configurazione aggiornata alle VM selezionate
Assicurati che il tipo di policy di aggiornamento del gruppo sia impostato su "opportunistico" per impedire al MIG di applicare automaticamente una nuova configurazione delle VM alle VM esistenti. Per maggiori informazioni, consulta Controlla il tipo di policy di aggiornamento del gruppo.
Quindi, utilizza gcloud CLI o REST per aggiornare la configurazione del MIG e applicare la configurazione più recente a VM specifiche nel gruppo o a tutte le VM del gruppo.
gcloud
Per configurare un nuovo template 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
Applica 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 MIGINSTANCE_TEMPLATE: template di istanzaINSTANCE_NAMES: un elenco di VM a cui applicare il templateDISRUPTION_LEVEL: il livello di interruzione minimo o massimo:none,refresh,restartoreplace- L'azione minima predefinita è
none - L'azione più distruttiva consentita predefinita è
replace
- L'azione minima predefinita è
REST
Per configurare un nuovo template di istanza per il tuo gruppo, chiama il metodo patch su un MIG a livello di zona o di regione e aggiorna il campo versions.instanceTemplate. Per evitare di eseguire automaticamente il
rollout del nuovo modello a 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",
}]
}Applica la configurazione a VM specifiche
Per applicare la configurazione aggiornata a VM specifiche, chiama il metodo applyUpdatesToInstances per il tuo MIG 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
}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 gruppoNEW_TEMPLATE: il nome del nuovo templateZONE: la zona di un'istanza da aggiornareINSTANCE_NAME_1eINSTANCE_NAME_2: i nomi delle VM da aggiornareDISRUPTION_LEVEL: il livello di interruzione minimo o massimo:NONE,REFRESH,RESTARToREPLACE- Il valore predefinito
minimalActionèNONE. - Il valore predefinito
mostDisruptiveAllowedActionèREPLACE.
- Il valore predefinito
Analogamente ad altri metodi del gruppo di istanze gestite, applyUpdatesToInstances
è basato sull'intent, il che significa che
restituisce una risposta dell'operazione.
Il completamento dell'operazione può richiedere un po' di 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, potrebbe interrompere lo stato di un'istanza. 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 le interruzioni o per applicare un'azione più invasiva del necessario.
- Per limitare al massimo le interruzioni, 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ù invasiva del necessario, imposta l'azione
minima su
RESTARToREPLACE. 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 una VM viene riavviata, puoi impostare l'azione minima suRESTARTper rilevare le modifiche ai metadati.
- Per limitare al massimo le interruzioni, imposta l'azione minima su
Azione più invasiva consentita: utilizza questa opzione per impedire un aggiornamento se richiede un'interruzione maggiore di quella che puoi 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 più invasiva consentita 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ù invasiva di un riavvio.
Quando aggiorni le VM selezionate, entrambe le opzioni accettano i seguenti valori:
| Valore | Descrizione | Quali proprietà dell'istanza possono essere aggiornate? |
|---|---|---|
NONE |
Non interrompere l'istanza. | Nessuno |
REFRESH |
Non arrestare l'istanza. | Dischi aggiuntivi, interfacce di rete dinamiche (NIC), metadati dell'istanza, etichette, tag |
RESTART |
Arresta l'istanza e riavviala. | Dischi aggiuntivi, NIC dinamiche, metadati dell'istanza, etichette, tag, tipo di macchina |
REPLACE |
Elimina l'istanza e ricreala. | Tutte le proprietà dell'istanza archiviate nel template di istanza o nella configurazione per istanza |
L'azione più distruttiva consentita non può essere meno distruttiva dell'azione minima.
Quando aggiorni selettivamente le VM, vengono applicati i seguenti valori predefiniti:
- L'azione minima predefinita è
NONE, che limita al massimo le interruzioni. - L'azione più dirompente consentita per impostazione predefinita è
REPLACE. Se non puoi tollerare un'interruzione di questo tipo, imposta l'azione più invasiva consentita in modo che sia meno invasiva.
Passaggi successivi
- Scopri come visualizzare informazioni su VM e gruppi di istanze gestite.
- Scopri di più sulla creazione di modelli di istanza.
- Scopri come utilizzare le famiglie di immagini e una sostituzione in sequenza per aggiornare l'immagine sistema operativo su tutte le VM di un MIG.