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 in cui le VM sono distribuite su più zone all'interno di 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 altre informazioni scenari di base per la creazione di un gruppo di istanze gestite.

Prima di iniziare

  • Crea un modello di istanza, necessario per creare un modello gruppo di istanze gestite.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è la procedura di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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 Terraform in 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 maggiori 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, utilizzi le credenziali che fornisci a gcloud CLI.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

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

Limitazioni

Per visualizzare l'elenco completo delle limitazioni del gruppo di istanze gestite, che varia in base alla configurazione che utilizzi, vedi Limitazioni del gruppo di istanze gestite.

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

Utilizzare la console Google Cloud , il 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 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 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 comando seguente crea un modello di istanza di base con proprietà predefinite:

gcloud compute instance-templates create example-template

Quindi, utilizza Comando instance-groups managed create con il flag --region. Ad esempio, il comando seguente 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 Disattivazione della ridistribuzione proattiva delle istanze.

Terraform

Se non hai già creato un modello di istanza, che specifica tipo di macchina, immagine disco di avvio, rete e altre proprietà VM per ogni VM nel gruppo di istanze gestite, crea un modello di istanza.

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

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 disponi Uno, crea un modello di istanza.

A questo punto, crea una richiesta POST Metodo regionInstanceGroupManagers.insert. Nel corpo della richiesta, specifica il nome, le dimensioni e l'URL del gruppo al modello di istanza. Facoltativamente, specifica altri campi, come il campo base delle 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.
  • BASE_INSTANCE_NAME: (facoltativo) il nome dell'istanza per ogni istanza VM creata come parte del gruppo. Ad esempio, un il nome istanza di base example-instance crea istanze con nomi come example-instance-[RANDOM_STRING], dove [RANDOM_STRING] è generate dal server.
  • INSTANCE_TEMPLATE_NAME: l'istanza modello da utilizzare. Per un modello di istanza regionale, 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 seleziona zone specifiche o se crei VM in una regione con meno di tre includi la proprietà distributionPolicy nella richiesta e fornisci un elenco di zone. Sostituisci ZONE con il nome di un 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 tra us-east1-b e us-east1-c zone:

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, vengono applicati vari criteri e azioni possono influire sulle istanze del gruppo. Per determinare quali account sono operative, consulta Verifica dello stato delle istanze gestite.

Se la capacità in ciascuna zona non è sufficiente per supportare le VM per Compute Engine crea il maggior numero possibile di VM e continua a tentare di creare le VM rimanenti quando la capacità di archiviazione di Google Cloud.

Se non specifichi esplicitamente singole zone nella tua richiesta, Compute Engine sceglie automaticamente tre zone per creare VM in. Se devi creare VM in più o meno di tre zone, vuoi scegliere quali zone utilizzare, puoi fornire un elenco di zone nella richiesta. Per ulteriori informazioni, vedi Selezione 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 come GPU e dischi permanenti esistenti. Se il modello di istanza del gruppo di istanze gestite risorse a livello di zona, devi assicurarti che tutte queste risorse siano presenti in tutte le zone selezionate in modo che possano essere associate alle VM create gruppo di istanze gestite In alternativa, se vuoi che il gruppo verifichi l'esistenza di reti per te, puoi impostare la forma di distribuzione di destinazione del gruppo di istanze gestite per creare di istanze VM solo nelle zone che contengono quelle risorse.

Per ulteriori informazioni, consulta i seguenti documenti:

Ridistribuzione proattiva delle istanze

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

Per ulteriori informazioni, consulta i seguenti documenti:

Passaggi successivi