Informazioni sui gruppi di istanze gestite a livello di regione

Un gruppo di istanze gestite che distribuisce le proprie VM tra più zone in un'area geografica è chiamato anche gruppo di istanze gestite a livello di regione. Un gruppo di istanze gestite limitato a una singola zona è anche noto come gruppo di istanze gestite a livello di zona.

Puoi usare un gruppo di istanze gestite a livello di regione per aumentare la resilienza del carico di lavoro basato su MIG. La distribuzione del carico di lavoro tra più zone all'interno di una regione ti aiuta a proteggerti dai casi estremi di guasti di tutte le istanze in una singola zona.

Questo documento contiene informazioni concettuali sui gruppi di istanze gestite a livello di regione:

Per scoprire come creare un gruppo di istanze gestite a livello di regione, consulta Creazione di un gruppo di istanze gestite in più zone.

Perché scegliere i gruppi di istanze gestite a livello di regione?

Google consiglia i gruppi di istanze gestite a livello di regione rispetto ai gruppi di istanze gestite a livello di zona per i seguenti motivi:

  • Puoi utilizzare i gruppi di istanze gestite a livello di regione per gestire fino a 2000 istanze, il doppio dei gruppi di istanze gestite di zona. Se hai bisogno di un numero maggiore di istanze, puoi aumentare ulteriormente il limite di dimensioni di un gruppo di istanze gestite a livello di regione fino a 4000 istanze.
  • Puoi utilizzare i gruppi di istanze gestite a livello di regione per distribuire il carico delle applicazioni su più zone, anziché limitare l'applicazione a un'unica zona o gestire più gruppi di istanze gestite a livello di zona in zone diverse.

L'utilizzo di più zone protegge da malfunzionamenti a livello di zona e da scenari imprevisti in cui un intero gruppo di istanze in una singola zona presenta un malfunzionamento. In tal caso, l'applicazione può continuare a gestire il traffico proveniente dalle istanze in esecuzione in un'altra zona nella stessa regione.

In caso di errore a livello di zona o se un gruppo di istanze in una zona smette di rispondere, un gruppo di istanze gestite a livello di regione continua a supportare le istanze come segue:

  • Il numero di istanze che fanno parte del gruppo di istanze gestite a livello di regione nelle zone rimanenti continuano a gestire il traffico. Non vengono aggiunte nuove istanze e nessuna istanza viene ridistribuita (a meno che non configuri la scalabilità automatica).

  • Una volta recuperata la zona che non è riuscita, il gruppo di istanze gestite riprende a gestire il traffico da quella zona.

Quando progetti per applicazioni solide e scalabili, utilizza i gruppi di istanze gestite a livello di regione.

Opzioni di configurazione aggiuntive per i gruppi di istanze gestite a livello di regione

La creazione di un gruppo di istanze gestite a livello di regione è simile alla creazione di un gruppo di istanze gestite a livello di zona, ma sono disponibili opzioni aggiuntive:

Queste opzioni sono descritte nelle sezioni seguenti.

Selezione zona

Per impostazione predefinita, un gruppo di istanze gestite a livello di regione distribuisce le proprie istanze gestite in modo uniforme tra tre zone. Per vari motivi, puoi selezionare zone specifiche per la tua applicazione. Ad esempio, se hai bisogno di GPU per le tue istanze, puoi selezionare solo zone che supportano le GPU oppure potresti avere prenotazioni o dischi permanenti esistenti disponibili solo in determinate zone.

Se vuoi scegliere il numero di zone o le zone specifiche in cui viene eseguito il gruppo, devi farlo durante la creazione del gruppo. Dopo aver scelto zone specifiche durante la creazione, non puoi modificarle o aggiornarle in seguito.

Se vuoi che il gruppo di istanze gestite utilizzi automaticamente le zone che supportano l'hardware specificato nella configurazione del gruppo di istanze gestite, puoi impostare la forma di distribuzione di destinazione del gruppo di istanze gestite su BALANCED, ANY o ANY_SINGLE_ZONE e selezionare tutte le zone in una regione. Il gruppo di istanze gestite verifica automaticamente la disponibilità delle risorse e pianifica le istanze solo nelle zone che dispongono delle risorse. Per maggiori informazioni, consulta Forma di distribuzione di destinazione.

  • Per selezionare più di tre zone all'interno di una regione, devi specificare esplicitamente le singole zone. Ad esempio, per selezionare tutte e quattro le zone all'interno di una regione, devi indicarle esplicitamente nella richiesta. In caso contrario, Compute Engine seleziona tre zone per impostazione predefinita.

  • Per selezionare due o meno zone in una regione, devi specificare esplicitamente le singole zone. Anche se la regione contiene solo due zone, devi comunque specificare esplicitamente le zone nella richiesta.

Google espande regolarmente la sua infrastruttura rendendo disponibile hardware specializzato in più zone. Un gruppo di istanze gestite a livello di regione controlla periodicamente la disponibilità dell'hardware e avvia automaticamente la pianificazione delle istanze nelle zone che supportano le macchine richieste. Se per qualsiasi motivo non vuoi eseguire le istanze in alcune zone, non selezionare quelle zone durante la creazione del gruppo.

Per scoprire come creare un gruppo di istanze gestite a livello di regione e selezionare le zone, consulta Creazione di un gruppo di istanze gestite a livello di regione.

Forma di distribuzione di destinazione

Per impostazione predefinita, un gruppo di istanze gestite a livello di regione distribuisce le proprie istanze gestite in modo uniforme tra le zone selezionate. Tuttavia, se hai bisogno di hardware che non è disponibile in tutte le zone o se hai bisogno di dare la priorità all'utilizzo delle prenotazioni a livello di zona, potresti preferire una distribuzione diversa.

Per configurare il modo in cui il gruppo di istanze gestite a livello di regione distribuisce le proprie istanze tra le zone selezionate all'interno di una regione, imposta la forma di distribuzione di destinazione del gruppo di istanze gestite. Sono disponibili le seguenti opzioni:

  • EVEN (impostazione predefinita): il gruppo crea ed elimina le VM per raggiungere e mantenere lo stesso numero di VM nelle zone selezionate. In una distribuzione EVEN, il numero di VM non differisce di più di 1 tra le due zone. Opzione consigliata per carichi di lavoro di gestione ad alta disponibilità.
  • Bilanciata: il gruppo dà la priorità alla creazione delle VM in zone in cui sono disponibili risorse, distribuendo le VM nel modo più uniforme possibile nelle zone selezionate per ridurre al minimo l'impatto degli errori a livello di zona. Opzione consigliata per carichi di lavoro in batch o di pubblicazione a disponibilità elevata.
  • ANY: il gruppo sceglie zone per creare istanze VM al fine di soddisfare il numero richiesto di VM all'interno dei vincoli delle risorse attuali e per massimizzare l'utilizzo delle prenotazioni a livello di zona inutilizzate. Opzione consigliata per i carichi di lavoro batch che non richiedono un'alta disponibilità.
  • QUALSIASI SINGOLA ZONA: il gruppo crea tutte le istanze VM all'interno di una singola zona. La zona viene scelta in base al supporto hardware, alla disponibilità attuale di risorse e quote e alle prenotazioni corrispondenti. Opzione consigliata in combinazione con un criterio di posizionamento delle istanze compatto per i carichi di lavoro che richiedono una comunicazione estesa tra le VM.

Quando crei il gruppo di istanze gestite, se ne imposti la forma su BALANCED, ANY o ANY_SINGLE_ZONE, non devi verificare manualmente quali zone supportano l'hardware specificato nella configurazione del gruppo di istanze gestite. Puoi selezionare tutte le zone di una regione e, con la forma impostata su BALANCED, ANY o ANY_SINGLE_ZONE, il gruppo di istanze gestite a livello di regione controlla automaticamente la disponibilità delle risorse e pianifica le istanze solo nelle zone che dispongono delle risorse.

Scegli un'opzione in base ai requisiti dei carichi di lavoro e alle funzionalità dei gruppi di istanze gestite di cui hai bisogno. Per ulteriori informazioni, consulta la tabella di confronto e i casi d'uso.

Per scoprire come configurare la forma di destinazione per un gruppo di istanze gestite nuovo o esistente, consulta Impostazione di un criterio per la distribuzione di istanze tra zone.

Ridistribuzione proattiva delle istanze

Per impostazione predefinita, un gruppo di istanze gestite a livello di regione tenta di mantenere una distribuzione uniforme delle istanze tra le zone all'interno della regione per massimizzare la disponibilità dell'applicazione in caso di errore a livello di zona.

Se elimini o rinunci alle istanze dal gruppo, causando una distribuzione non uniforme tra le zone, il gruppo ridistribuisce in modo proattivo le istanze per ristabilire una distribuzione uniforme.

Per ristabilire una distribuzione uniforme tra le zone, il gruppo elimina le istanze nelle zone con più istanze e le aggiunge alle zone con meno istanze. Il gruppo seleziona automaticamente le istanze da eliminare.

La ridistribuzione proattiva ristabilisce la distribuzione uniforme tra le zone.
Esempio di ridistribuzione proattiva

Ad esempio, supponi di avere un gruppo di istanze gestite a livello di regione con 12 istanze distribuite in tre zone: a, b e c. Se elimini 3 istanze gestite in c, il gruppo tenta di ribilanciare l'equilibrio in modo che le istanze vengano nuovamente distribuite in modo uniforme tra le zone. In questo caso, il gruppo elimina 2 istanze (una da a e una da b) e crea due istanze nella zona c, in modo che ogni zona abbia 3 istanze e si ottenga una distribuzione uniforme. Non c'è modo di determinare selettivamente quali istanze vengono eliminate. Il gruppo perde temporaneamente capacità durante l'avvio delle nuove istanze.

Per impedire la ridistribuzione automatica delle istanze, puoi disattivare la ridistribuzione proattiva delle istanze.

La disattivazione della ridistribuzione proattiva delle istanze è utile quando devi:

  • Elimina o abbandona le istanze dal gruppo senza influire sulle altre istanze in esecuzione. Ad esempio, puoi eliminare un'istanza worker batch dopo il completamento del job senza influire sugli altri worker.
  • Proteggi le istanze con carichi di lavoro stateful dall'eliminazione automatica indesiderata dovuta a una ridistribuzione proattiva.
  • Imposta la forma di distribuzione di destinazione del gruppo di istanze gestite su BALANCED o ANY_SINGLE_ZONE
La disabilitazione della ridistribuzione proattiva può influire sulla capacità durante un errore a livello di zona.
Distribuzione non uniforme dopo la disattivazione della ridistribuzione proattiva

Se disattivi la ridistribuzione proattiva delle istanze, un gruppo di istanze gestite non aggiunge né rimuove in modo proattivo le istanze per raggiungere l'equilibrio, ma converge comunque opportunità di equilibrio durante le operazioni di ridimensionamento, trattando ogni operazione di ridimensionamento come un'opportunità per bilanciare il gruppo. Ad esempio, durante lo scale in, il gruppo utilizza automaticamente il ridimensionamento come opportunità per rimuovere le istanze da zone più grandi; in caso di scale out, il gruppo sfrutta l'opportunità di aggiungere istanze a zone più piccole.

Differenze di comportamento rispetto ai gruppi di istanze gestite a livello di zona

La differenza principale tra un gruppo di istanze gestite a livello di zona e un gruppo di istanze gestite a livello di regione è che un gruppo di istanze gestite a livello di regione può utilizzare più di una zona.

Poiché le istanze gestite di un gruppo di istanze gestite a livello di regione sono distribuite tra le zone all'interno di una regione, le seguenti funzionalità del gruppo di istanze gestite a livello di regione si comportano in modo leggermente diverso.

Scalabilità automatica di un gruppo di istanze gestite a livello di regione

Compute Engine offre la scalabilità automatica per i gruppi di istanze gestite, che consente ai gruppi di aggiungere automaticamente VM (scale out) o rimuovere VM (fare lo scale in) in base agli incrementi o alle riduzioni del carico.

Se abiliti la scalabilità automatica per un gruppo di istanze gestite a livello di regione, la funzionalità si comporta come segue:

  • Il gestore della scalabilità automatica decide in quale zona creare le VM in base al più grande indicatore di scalabilità automatica in ciascuna zona. Ad esempio, se esegui la scalabilità in base all'utilizzo della CPU, il gestore della scalabilità automatica crea più VM nelle zone con utilizzo più elevato.

  • Se le zone hanno valori di indicatori diversi, la scalabilità automatica potrebbe creare una distribuzione non uniforme delle VM. In questi casi, il gestore della scalabilità automatica tenta di bilanciare il carico tra le zone creando altre VM in zone con meno VM. Quando le zone con VM aggiuntive assumono il carico del carico, il numero di VM nelle zone dovrebbe bilanciarsi.

  • Se il valore dell'indicatore in una zona attiva uno scale out, ma il valore dell'indicatore complessivo nel gruppo di istanze gestite a livello di regione non richiede una VM aggiuntiva o una VM aggiuntiva in una zona diversa, il gestore della scalabilità automatica potrebbe aggiungere una VM e poi eliminarla immediatamente da una delle zone.

  • Quando un indicatore di scalabilità automatica si applica a un gruppo di istanze gestite a livello di regione nel suo complesso, ad esempio pianificazioni di scalabilità o alcune metriche di monitoraggio, il gestore della scalabilità automatica distribuisce le VM nelle zone nel modo più uniforme possibile.

  • Con la forma di distribuzione di destinazione impostata su BALANCED, il gestore della scalabilità automatica è consapevole della disponibilità delle risorse nelle zone. Il gestore della scalabilità automatica crea in modo proattivo le VM solo nelle zone con quota e capacità sufficienti per le VM, in base a quanto specificato nella configurazione del gruppo di istanze gestite.

Aggiornamento di un gruppo di istanze gestite a livello di regione

Non puoi modificare o aggiornare le zone per un gruppo di istanze gestite a livello di regione dopo la creazione del gruppo. Tuttavia, puoi impostare la forma di distribuzione di destinazione del gruppo per dare la priorità all'utilizzo di zone diverse, ad esempio se hai risorse prenotate o hai bisogno di hardware che non è disponibile in tutte le zone.

Se vuoi implementare un nuovo modello in un gruppo di istanze gestite a livello di regione, consulta Aggiornamento di un gruppo di istanze gestite a livello di regione.

Se vuoi aggiungere o rimuovere istanze in un gruppo di istanze gestite, la procedura è simile per i gruppi di istanze gestite a livello di regione e zona. Consulta Aggiungere e rimuovere VM in un gruppo di istanze gestite.

Se vuoi configurare dischi stateful o metadati stateful in un gruppo di istanze gestite, consulta Configurazione di gruppi di istanze gestite stateful.

Come aumentare la disponibilità con il provisioning eccessivo

Una serie di eventi può causare la mancata disponibilità di una o più istanze e puoi contribuire a mitigare il problema utilizzando più servizi Google Cloud:

  • Utilizza un gruppo di istanze gestite a livello di regione con una forma di distribuzione di destinazione EVEN o BALANCED per distribuire la tua applicazione in più zone.
  • Utilizza la autohealing basata sulle applicazioni per ricreare le istanze con applicazioni in errore.
  • Utilizza il bilanciamento del carico per indirizzare automaticamente il traffico degli utenti da istanze non disponibili.

Tuttavia, anche se utilizzi questi servizi, gli utenti potrebbero comunque riscontrare problemi se troppe istanze non sono disponibili contemporaneamente.

Per prepararti al caso estremo in cui una zona non funziona o un intero gruppo di istanze smette di rispondere, Google consiglia vivamente di eseguire l'overprovisioning del gruppo di istanze gestite. A seconda delle esigenze dell'applicazione, il provisioning eccessivo del gruppo impedisce che il sistema riscontri problemi se una zona o un gruppo di istanze non risponde.

Google fornisce suggerimenti per l'overprovisioning con la priorità di mantenere l'applicazione disponibile per i tuoi utenti. Questi suggerimenti includono il provisioning e il pagamento per più istanze di quelle che possono essere necessarie su base giornaliera per l'applicazione. Basa le tue decisioni di overprovisioning sulle esigenze delle applicazioni e sulle limitazioni dei costi.

Puoi impostare le dimensioni del gruppo di istanze gestite al momento della creazione e puoi aggiungere o rimuovere istanze dopo averlo creato.

Puoi configurare un gestore della scalabilità automatica in modo che le istanze nel gruppo vengano aggiunte e rimosse automaticamente in base al carico.

Stima delle dimensioni del gruppo consigliate

Ti consigliamo di eseguire il provisioning di un numero sufficiente di istanze in modo che, qualora non siano più disponibili tutte le istanze di una zona, le istanze rimanenti soddisfino comunque il numero minimo di istanze richiesto.

Usa la seguente tabella per determinare la dimensione minima consigliata per il tuo gruppo:

Numero di zone Istanze VM aggiuntive Istanze VM totali consigliate
2 +100% 200%
3 +50% 150%
4 +33% Il 133%

Provisioning di un gruppo di istanze gestite a livello di regione in tre o più zone

Quando crei un gruppo di istanze gestite a livello di regione in una regione con almeno tre zone, Google consiglia di eseguire il provisioning eccessivo del tuo gruppo di almeno il 50%. Per impostazione predefinita, un gruppo di istanze gestite a livello di regione crea istanze in tre zone. Avere le istanze in tre zone già ti aiuta a preservare almeno 2/3 della capacità di gestione e, se una singola zona ha esito negativo, le altre due zone nella regione possono continuare a gestire il traffico senza interruzioni. Eseguendo l'overprovisioning al 150%, puoi assicurarti che, in caso di perdita di 1/3 della capacità, il 100% del traffico sia supportato dalle zone rimanenti.

Ad esempio, se hai bisogno di 20 istanze nel tuo gruppo di istanze gestite in tre zone, consigliamo almeno un ulteriore 50% delle istanze. In questo caso, il 50% di 20 corrisponde a 10 istanze in più, per un totale di 30 istanze nel gruppo. Se crei un gruppo di istanze gestite a livello di regione di 30, il gruppo distribuisce le VM nelle tre zone, in questo modo:

Zona Numero di istanze VM
esempio-zona-1 10
esempio-zona-2 10
esempio-zona-3 10

Se si verifica un errore in una singola zona, hai comunque 20 istanze che gestiscono il traffico.

Provisioning di un gruppo di istanze gestite a livello di regione in due zone

Per eseguire il provisioning delle istanze in due zone anziché in tre, Google consiglia di raddoppiare il numero di istanze. Ad esempio, se per il tuo servizio hai bisogno di 20 istanze, distribuite tra due zone, consigliamo di configurare un gruppo di istanze gestite a livello di regione con 40 istanze, in modo che ogni zona abbia 20 istanze. Se si verifica un errore in una singola zona, hai comunque 20 istanze che gestiscono il traffico.

Zona Numero di istanze VM
esempio-zona-1 20
esempio-zona-2 20

Se il numero di istanze nel gruppo non è equamente divisibile tra due zone, Compute Engine divide uniformemente il gruppo di VM e posiziona in modo casuale le istanze rimanenti in una delle zone.

Provisioning di un gruppo di istanze gestite a livello di regione in una zona

Puoi creare un gruppo di istanze gestite a livello di regione con una sola zona. Questa operazione è simile alla creazione di un gruppo di istanze gestite a livello di zona.

Non è consigliabile creare un gruppo di istanze gestite a livello di regione a zona singola perché offre la garanzia minima per le applicazioni ad alta disponibilità. Se la zona non funziona, l'intero gruppo di istanze gestite non è disponibile, con un potenziale impatto per gli utenti.

Passaggi successivi