Crea un gruppo di istanze gestite con VM in più zone all'interno di una regione

Questo documento descrive come creare un gruppo di istanze gestite con le sue VM distribuite in più zone in una regione. La distribuzione del carico dell'applicazione in più zone protegge il tuo carico di lavoro da errori a livello di zona. In caso di errore a livello di zona, l'applicazione può continuare a gestire le istanze in esecuzione nelle restanti zone disponibili della stessa regione.

Questo tipo di gruppo di istanze gestite è noto anche come gruppo di istanze gestite a livello di regione. Per ulteriori informazioni, consulta la pagina Informazioni sui gruppi di istanze gestite a livello di regione.

Puoi anche leggere altri scenari di base per la creazione di un gruppo di istanze gestite.

Prima di iniziare

  • Crea un modello di istanza, necessario per creare un gruppo di istanze gestite.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    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. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Per utilizzare gli esempi di Terraform su questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Installa Google Cloud CLI.
      2. Per initialize gcloud CLI, esegui questo comando:

        gcloud init
      3. Crea credenziali di autenticazione locali per il tuo Account Google:

        gcloud auth application-default login

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      REST

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per maggiori informazioni, consulta Autenticazione per REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

Per visualizzare l'elenco completo delle limitazioni dei gruppi di istanze gestite, che varia in base alla configurazione utilizzata, consulta Limitazioni dei gruppi di istanze gestite.

Crea un gruppo di istanze gestite con VM in più zone all'interno di una regione

Utilizza la console Google Cloud, gcloud CLI, Terraform o REST.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

    I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.

  2. Fai clic su Crea gruppo di istanze per creare un nuovo gruppo di istanze.
  3. Seleziona una delle opzioni per i nuovi gruppi di istanze gestite:
  4. Assegna un nome e, facoltativamente, una descrizione al gruppo di istanze.
  5. Scegli un modello di istanza per il gruppo di istanze o creane uno nuovo.
  6. In Numero di istanze o in Scalabilità automatica, specifica il numero di istanze per questo gruppo. Ricorda di eseguire il provisioning di un numero sufficiente di VM per supportare la tua applicazione in caso di errore della zona.
  7. In Località, seleziona Più zone.
  8. Scegli una regione e seleziona le zone che vuoi utilizzare. Se hai scelto un modello di istanza regionale, viene selezionata automaticamente l'opzione Regione in base alla regione del modello.
  9. In Forma di distribuzione di destinazione, seleziona Uniforme. Se vuoi selezionare una forma diversa, consulta l'articolo Imposta una forma di distribuzione di destinazione per le VM in un gruppo di istanze gestite a livello di regione.
  10. Se vuoi disabilitare la ridistribuzione proattiva delle istanze, in Ridistribuzione delle istanze, deseleziona la casella di controllo Consenti ridistribuzione istanze.
  11. Continua con il resto della procedura di creazione del gruppo di istanze gestite.
  12. Per creare il gruppo di istanze gestite, fai clic su Crea.

gcloud

Tutti i gruppi di istanze gestite richiedono un modello di istanza. Se non ne hai uno, crea un modello di istanza. Ad esempio, il seguente comando crea un modello di istanza di base con proprietà predefinite:

gcloud compute instance-templates create example-template

Quindi, utilizza il comando instance-groups managed create con il flag --region. Ad esempio, il seguente comando crea un gruppo di istanze gestite a livello di regione in tre zone all'interno della regione us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Se vuoi selezionare zone specifiche che il gruppo deve utilizzare, fornisci il flag --zones:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Se vuoi disabilitare la ridistribuzione proattiva delle istanze, consulta Disattivare la ridistribuzione proattiva delle istanze.

Terraform

Se non hai già creato un modello di istanza in cui specifichi il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà delle VM che vuoi utilizzare per ogni VM nel tuo gruppo di istanze gestite, crea un modello di istanza.

Per creare un gruppo di istanze gestite a livello di regione, puoi utilizzare la risorsa google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST

Tutti i gruppi di istanze gestite richiedono un modello di istanza. Se non ne hai uno, crea un modello di istanza.

Quindi, crea una richiesta POST per il metodo regionInstanceGroupManagers.insert. Nel corpo della richiesta, specifica il nome e la dimensione del gruppo e l'URL del modello di istanza. (Facoltativo) Specifica altri campi, ad esempio il nome base per le istanze nel gruppo.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta.
  • REGION: la regione del gruppo.
  • BASE_INSTANCE_NAME: (facoltativo) nome dell'istanza per ogni istanza VM creata come parte del gruppo. Ad esempio, il nome di istanza di base example-instance crea istanze con nomi come example-instance-[RANDOM_STRING], in cui [RANDOM_STRING] viene generato dal server.
  • INSTANCE_TEMPLATE_NAME: il modello di istanza da utilizzare. Per un modello di istanza a livello di regione, devi specificare l'URL completo o parziale del modello. Un esempio di URL completo è https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template e un URL parziale è projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • TARGET_SIZE: il numero di VM target per il gruppo.

Se vuoi selezionare zone specifiche o se stai creando VM in una regione con meno di tre zone, includi la proprietà distributionPolicy nella richiesta e fornisci un elenco di zone. Sostituisci ZONE con il nome di una zona in cui creare le VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Ad esempio, quanto segue crea un gruppo di istanze gestite a livello di regione denominato example-rmig con 10 istanze gestite distribuite nelle zone us-east1-b e us-east1-c:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

A seconda di come configuri e agisci su un gruppo di istanze gestite, vari criteri e azioni possono influire sulle istanze nel gruppo. Per determinare quali istanze gestite sono in esecuzione, consulta Controllo dello stato delle istanze gestite.

Se in ogni zona la capacità non è sufficiente per supportare VM per il gruppo, Compute Engine crea il maggior numero possibile di VM e continua a tentare di creare le VM rimanenti quando diventa disponibile capacità aggiuntiva.

Se non specifichi esplicitamente singole zone nella richiesta, Compute Engine sceglie automaticamente tre zone in cui creare le VM. Se devi creare VM in più o meno di tre zone oppure vuoi scegliere le zone da utilizzare, puoi fornire un elenco di zone nella richiesta. Per maggiori informazioni, consulta Selezione della zona.

Distribuzione delle VM tra le zone

Per impostazione predefinita, un gruppo di istanze gestite a livello di regione distribuisce le VM in modo uniforme tra le zone selezionate. Poiché stai creando un gruppo di istanze gestite a livello di regione, tieni presente che alcune risorse operano a livello di zona, ad esempio GPU e dischi permanenti esistenti. Se il modello di istanza del gruppo di istanze gestite specifica le risorse di zona, devi assicurarti che siano presenti in tutte le zone selezionate, in modo che possano essere collegate alle VM create dal gruppo di istanze gestite a livello di regione. In alternativa, se vuoi che il gruppo verifichi l'esistenza di risorse di zona, puoi impostare la forma di distribuzione di destinazione del gruppo di istanze gestite in modo da creare istanze solo nelle zone che contengono quelle risorse.

Per ulteriori informazioni, consulta i seguenti documenti:

Ridistribuzione proattiva delle istanze

La ridistribuzione proattiva delle istanze è abilitata per impostazione predefinita. Se devi gestire manualmente il numero di VM in ogni zona o se devi impostare la forma di distribuzione di destinazione del gruppo di istanze gestite su BALANCED o ANY_SINGLE_ZONE, devi disabilitare la ridistribuzione proattiva delle istanze.

Per ulteriori informazioni, consulta i seguenti documenti:

Passaggi successivi