Disattivare e riattivare la ridistribuzione proattiva delle VM in un gruppo di istanze gestite regionale


In un gruppo di istanze gestite regionale, per mantenere un numero pari di istanze di macchine virtuali (VM) nelle zone selezionate della regione, utilizza la ridistribuzione proattiva delle istanze. Questa opzione di configurazione massimizza la disponibilità dell'applicazione in caso di guasto a livello di zona.

La ridistribuzione proattiva delle istanze è attiva per impostazione predefinita per i gruppi di istanze gestite a livello di regione. Quando la ridistribuzione proattiva delle istanze è disattivata, il gruppo non tenta di ridistribuire in modo proattivo le VM tra le zone. La disattivazione della ridistribuzione proattiva delle istanze è utile se devi:

  • Elimina o abbandona le VM dal gruppo senza influire sulle altre VM in esecuzione. Ad esempio, puoi eliminare una VM worker batch al termine del job senza influire sugli altri worker.
  • Proteggi le VM con carichi di lavoro stateful dall'eliminazione automatica indesiderata a causa della ridistribuzione proattiva.
  • Imposta la forma di distribuzione di destinazione del gruppo di istanze gestite su BALANCED o ANY_SINGLE_ZONE.

Puoi disattivare la ridistribuzione proattiva delle istanze quando crei un MIG regionale. Puoi anche attivarlo o disattivarlo per un gruppo di istanze gestite a livello di regione esistente.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi 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, then initialize it by running the following command:

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

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Creazione di un gruppo con la ridistribuzione proattiva delle istanze disattivata

Per creare un gruppo di istanze gestite regionale con la ridistribuzione proattiva delle istanze disattivata, utilizza la console Google Cloud, l'interfaccia a riga di comando gcloud, Terraform o REST.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze per creare un nuovo gruppo di istanze.
  3. Assegna un nome e, facoltativamente, una descrizione al gruppo di istanze.
  4. Scegli un modello di istanza per il gruppo di istanze o creane uno nuovo.
  5. Specifica il numero di VM per questo gruppo. Per i carichi di lavoro ad alta disponibilità, ricordati di eseguire il provisioning di un numero sufficiente di VM per supportare la tua applicazione in caso di errore della zona.
  6. In Località, seleziona Più zone.
  7. Scegli un'area geografica e seleziona le zone che vuoi utilizzare.
  8. Per disattivare la ridistribuzione proattiva delle istanze, in Ridistribuzione delle istanze, deseleziona la casella di controllo Consenti ridistribuzione istanze.
  9. Continua con il resto della procedura di creazione del gruppo di istanze gestite.

gcloud

Per creare un nuovo gruppo di istanze gestite a livello di regione senza la ridistribuzione proattiva delle istanze, utilizza il comando gcloud compute instance-groups managed create con il flag --instance-redistribution-type impostato su NONE.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite
  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza da utilizzare per il gruppo
  • TARGET_SIZE: la dimensione target del gruppo
  • ZONES: l'elenco delle zone in un'unica regione in cui vuoi eseguire il deployment delle VM

Ad esempio:

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

Terraform

Se non hai ancora creato un modello di istanza che specifichi il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà della VM che vuoi 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, utilizza la risorsa google_compute_region_instance_group_manager.

Per disattivare la ridistribuzione proattiva delle istanze in un gruppo di istanze gestite regionale, includi il blocco update_policy e imposta il campo instance_redistribution_type su NONE.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  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

Per creare un gruppo di istanze gestite a livello di regione senza scalabilità automatica senza la ridistribuzione proattiva delle istanze, invia una richiesta POST al metodo regionInstanceGroupManagers.insert. Nel corpo della richiesta, includi la proprietà updatePolicy e imposta il relativo campo instanceRedistributionType su NONE.

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

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione per il gruppo di istanze
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite
  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza da utilizzare per il gruppo
  • TARGET_SIZE: la dimensione target del gruppo di istanze
  • ZONE: il nome di una zona nella singola regione in cui vuoi implementare le VM

Disattivazione della ridistribuzione proattiva delle istanze

Per disattivare o riattivare la ridistribuzione proattiva delle istanze, utilizza la console Google Cloud, la CLI gcloud o REST.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze da modificare.
  3. Fai clic su Modifica per modificare questo gruppo di istanze gestite.
  4. In Ridistribuzione delle istanze, deseleziona la casella di controllo Consenti ridistribuzione istanze.
  5. Fai clic su Salva.

gcloud

Per disattivare la ridistribuzione proattiva delle istanze, utilizza il comando compute instance-groups managed update e imposta il flag --instance-redistribution-type su NONE come segue:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --instance-redistribution-type NONE \
    --region REGION

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite
  • REGION: la regione del gruppo di istanze

REST

Per disattivare la ridistribuzione proattiva delle istanze, utilizza il metodo regionInstanceGroupManagers.patch e imposta il campo instanceRedistributionType su NONE come segue:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
  {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
  }

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione per il gruppo di istanze
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite

Attivazione della ridistribuzione proattiva delle istanze

Per attivare la ridistribuzione proattiva delle istanze, utilizza un comando simile a quello per la disattivazione della ridistribuzione proattiva delle istanze, ma imposta il tipo di ridistribuzione delle istanze su PROACTIVE.

Se hai eliminato o abbandonato manualmente alcune istanze gestite, con una conseguente distribuzione non uniforme delle VM nella regione, prima di poter riattivare la ridistribuzione proattiva delle istanze, devi riequilibrare manualmente il gruppo. La differenza nel numero di VM tra due zone non deve superare 1 VM.

Un gruppo di istanze gestite a livello di area geografica non consente di attivare la ridistribuzione proattiva delle istanze quando le VM sono distribuite in modo non uniforme tra le zone (la differenza nel numero di VM tra due zone è pari o superiore a 2 VM). Questo serve a evitare un'eliminazione automatica indesiderata delle VM dalle zone con più VM, che verrebbe attivata per ottenere una distribuzione uniforme.

Passaggi successivi