Policy di estensione VM globali

Le policy di estensione globali consentono di gestire le estensioni in più zone e regioni all'interno di un progetto. Quando applichi una policy globale, VM Extension Manager garantisce che le VM in qualsiasi regione o zona che corrispondono ai criteri della policy abbiano le estensioni specificate installate e in esecuzione.

Il seguente diagramma illustra come utilizzare una policy di estensione globale per applicare le estensioni alle VM in diverse zone e regioni del progetto:

Diagramma dell'architettura del gestore di estensioni VM che mostra l'applicazione di una policy globale alle VM in zone e regioni diverse.

Come mostrato nel diagramma precedente, puoi definire una policy di estensione globale a livello di progetto. VM Extension Manager applica questa policy a tutte le VM che corrispondono ai criteri di selezione. Ad esempio, se selezioni le VM con l'etichetta env=prod in tutte le zone e le regioni del progetto, VM Extension Manager applica le estensioni specificate, come Ops Agent ed Extension for SAP, solo a queste VM.

Piani di implementazione per le policy globali

Le policy globali utilizzano piani di implementazione per gestire il deployment delle estensioni in zone e regioni. Un piano di implementazione ti consente di controllare l'implementazione delle estensioni, il che contribuisce a ridurre al minimo il rischio di problemi diffusi. Utilizzando un piano di implementazione, puoi definire l'ordine e la tempistica degli aggiornamenti per garantire un'implementazione graduale e controllata.

Quando crei o aggiorni una policy globale, puoi specificare uno dei seguenti piani di implementazione:

  • Implementazione lenta. Questo lancio implementa gradualmente le estensioni in diverse zone in un determinato periodo di tempo. Il periodo predefinito per questo lancio è di cinque giorni. Questo approccio è consigliato perché ti consente di identificare e risolvere potenziali problemi nelle implementazioni precedenti prima che influiscano sull'intera flotta.
  • Implementazione rapida. Questa implementazione distribuisce immediatamente le estensioni a tutte le VM di destinazione in tutte le zone e le regioni. Questo approccio è utile per le situazioni in cui devi eseguire rapidamente il deployment di un'estensione o di una patch in ambienti non di produzione.

Puoi anche definire piani di implementazione personalizzati per specificare le ondate di deployment in base a zone o regioni e il tempo di attesa tra le ondate. Per saperne di più, consulta il metodo rolloutPlans.insert.

Comportamento in caso di conflitto di implementazione

Quando crei o aggiorni una policy di estensione globale, potrebbe verificarsi un conflitto nelle seguenti situazioni:

  • Quando crei una policy globale. Si verifica un conflitto nel nome del criterio se in una zona esiste già un criterio zonale con lo stesso nome del criterio globale.
  • Quando aggiorni una policy globale. Si verifica un conflitto nei contenuti delle norme se una norma zonale esistente è stata modificata indipendentemente dall'implementazione delle norme globali. Ad esempio, se modifichi una policy a livello di zona utilizzando una chiamata API a livello di zona e un successivo rollout della policy globale tenta di modificare la stessa policy a livello di zona, si verifica un conflitto.

Per evitare questi conflitti, puoi specificare un comportamento di conflitto per l'implementazione, che determina se la policy globale deve sovrascrivere le policy di zona in conflitto durante un'implementazione. Puoi specificare uno dei seguenti comportamenti:

  • Non sovrascrivere (impostazione predefinita). Se non specifichi un comportamento di conflitto, l'implementazione della policy globale non sovrascrive le policy di zona in conflitto. La configurazione della policy di zona ha la precedenza in quella zona.
  • Sovrascrivi. Se imposti il comportamento in caso di conflitto su overwrite, la policy globale sovrascrive le policy di zona in conflitto e la configurazione della policy globale viene applicata in quella zona.

I conflitti di implementazione e la priorità dei criteri sono funzionalità distinte che funzionano in modo indipendente. Per saperne di più sulla priorità delle policy, consulta Priorità delle policy e risoluzione dei conflitti.

Per ulteriori informazioni sul conflitto di implementazione, consulta il parametro conflictBehavior nel metodo globalVmExtensionPolicies.insert.

Riprovare un'implementazione

Quando aggiorni o elimini una policy di estensione globale, VM Extension Manager avvia una nuova implementazione per applicare le modifiche in base al piano di implementazione. Se un'implementazione viene interrotta o se vengono aggiunte nuove zone, puoi riprovare l'operazione avviando una nuova implementazione per le stesse norme.

Riprova l'implementazione di una policy di aggiornamento

Il seguente elenco descrive gli scenari in cui potrebbe essere necessario riprovare l'implementazione di una norma di aggiornamento:

  • Aggiunta di nuove zone. Se nuove Google Cloud zone diventano disponibili dopo l'implementazione di una policy globale, VM Extension Manager non applica automaticamente le policy esistenti alle VM nella nuova zona. Puoi riprovare l'implementazione dell'aggiornamento per applicare la policy di estensione alle VM nelle nuove zone.
  • Ripristinare le modifiche alle norme zonali. Se le policy a livello di zona sono state modificate in modo indipendente, ad esempio utilizzando una chiamata API a livello di zona per modificare una policy a livello di zona, puoi riprovare a eseguire il rollout di un aggiornamento con conflictBehavior impostato su overwrite per riapplicare la configurazione della policy globale e sovrascrivere le modifiche alla policy a livello di zona.
  • Implementazione interrotta. Se un'implementazione precedente non va a buon fine prima del completamento, puoi avviare una nuova implementazione per riprovare l'aggiornamento.
  • Accelerare un'implementazione. Se un'implementazione in corso procede troppo lentamente, puoi avviarne una nuova utilizzando un piano FAST_ROLLOUT o un piano di implementazione personalizzato per accelerare il processo di aggiornamento.

Per saperne di più, consulta il parametro retryUuid nel metodo globalVmExtensionPolicies.update.

Quando riprovi a eseguire un rollout, devi fornire un identificatore univoco universale (UUID) per identificare la richiesta di ripetizione. Puoi utilizzare qualsiasi generatore di UUID per crearne uno. L'UUID deve utilizzare il formato esadecimale a 32 caratteri, ad esempio a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8.

Riprovare l'implementazione di un criterio di eliminazione

Il seguente elenco descrive gli scenari in cui potrebbe essere necessario riprovare a eseguire un rollout per eliminare una policy:

  • Implementazione interrotta. Se un'implementazione precedente per eliminare una policy è stata interrotta o non è stata completata correttamente, puoi avviare una nuova implementazione per riprovare l'operazione di eliminazione.
  • Accelerare un'implementazione. Se l'implementazione dell'eliminazione in corso procede troppo lentamente, puoi avviarne una nuova utilizzando un piano FAST_ROLLOUT o un piano di implementazione personalizzato per accelerare la procedura di eliminazione.

Per saperne di più, consulta il parametro retryUuid nel metodo globalVmExtensionPolicies.delete.

Passaggi successivi

Per saperne di più sulla gestione delle estensioni, consulta le seguenti risorse: