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


Questo documento descrive come creare ungruppo di istanze gestite (MIG) in cui le VM siano distribuite in più zone all'interno di una regione. La distribuzione del carico dell'applicazione in più zone protegge il workload dagli errori a livello di zona. In caso di errore a livello di zona, l'applicazione può continuare a pubblicare dalle istanze in esecuzione nelle restanti zone disponibili nella stessa regione.

Questo tipo di MIG è noto anche come MIG a livello di regione. Per ulteriori informazioni, consulta le informazioni sui MIG a livello di regione.

Puoi anche leggere altri scenari di base per la creazione di un MIG.

Prima di iniziare

  • Crea un template di istanza, necessario per creare un gruppo di istanze gestite.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo di verifica dell'identità per poter accedere 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:

    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. Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    Terraform

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

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Per ulteriori informazioni, vedi 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.

      Install the Google Cloud CLI.

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Limitazioni

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

Crea un MIG con VM in più zone all'interno di una regione

Utilizza Google Cloud consolegcloud CLI, Terraform o REST.

Console

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

    Vai a Gruppi di istanze

    I passaggi rimanenti vengono visualizzati 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 template 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. Per Località, seleziona Più zone.
  8. Scegli un'area geografica e seleziona le zone che vuoi utilizzare. Se hai scelto un template di istanza a livello di regione, viene selezionata automaticamente l'opzione Regione in base alla regione del template.
  9. In Forma di distribuzione target, 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 MIG.
  12. Per creare il MIG, fai clic su Crea.

gcloud

Tutti i MIG richiedono un template di istanza. Se non lo hai, crea un template di istanza. Ad esempio, il comando seguente crea un template di istanza di base con proprietà predefinite:

gcloud compute instance-templates create example-template

Quindi, usa il comando instance-groups managed create con il flag --region. Ad esempio, il comando seguente crea un MIG 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 dovrà utilizzare, specifica 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 disattivare la ridistribuzione proattiva delle istanze, consulta la sezione Disattivazione della ridistribuzione proattiva delle istanze.

Terraform

Se non hai già creato un template di istanza che specifica il tipo di macchina, l'immagine disco di avvio, la rete e altre proprietà delle VM da applicare a ogni VM nel tuo MIG, crea un template di istanza.

Per creare un MIG 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, vedi Comandi Terraform di base.

REST

Tutti i MIG richiedono un template di istanza. Se non lo hai, crea un template di istanza.

Quindi, componi una richiesta POST al metodo regionInstanceGroupManagers.insert. Nel corpo della richiesta, specifica il nome del gruppo, la dimensione del gruppo e l'URL del template di istanza. Se vuoi, specifica altri campi, ad esempio il nome di base per le istanze del 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.
  • (Facoltativo) BASE_INSTANCE_NAME: il 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], dove [RANDOM_STRING] viene generato dal server.
  • INSTANCE_TEMPLATE_NAME: il template di istanza da utilizzare. Per un template di istanza a livello di regione, devi specificare l'URL completo o parziale del template. Un esempio di URL completo è https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template, mentre un URL parziale è projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: il nome del MIG.
  • TARGET_SIZE: il numero target di VM per il gruppo.

Se vuoi selezionare zone specifiche o se stai creando VM in una regione con meno o più 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, il seguente comando crea un MIG 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 intervieni su un MIG, varie policy e azioni possono influire sulle istanze del gruppo. Per determinare quali istanze gestite sono attive, consulta Controlla lo stato delle istanze gestite.

Se in ogni zona non è presente una capacità sufficiente per supportare le 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 una maggiore capacità.

Se non specifichi esplicitamente le 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 o se vuoi scegliere le zone da utilizzare, puoi fornire un elenco di zone nella richiesta. Per saperne di più, vedi Selezione delle zone.

Distribuzione delle VM tra più zone

Per impostazione predefinita, un MIG a livello di regione distribuisce le VM in modo uniforme tra le zone selezionate. Poiché stai creando un MIG a livello di regione, tieni presente che alcune risorse sono a livello di zona, come le GPU e i dischi permanenti esistenti. Se il template di istanza del MIG specifica delle risorse di zona, devi assicurarti che tutte queste risorse siano presenti in tutte le zone selezionate in modo che possano essere collegate alle VM create dal MIG a livello di regione. In alternativa, se vuoi che il gruppo verifichi automaticamente se esistono risorse a livello di zona, puoi impostare la forma di distribuzione target del MIG in modo da creare istanze solo nelle zone che contengono queste risorse.

Per saperne di più, 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 devi impostare la forma di distribuzione target del MIG su BALANCED o ANY_SINGLE_ZONE, devi disabilitare la ridistribuzione proattiva delle istanze.

Per saperne di più, consulta i seguenti documenti:

Passaggi successivi