Riparare una VM in una zona alternativa

Questo documento descrive come consentire a un gruppo di istanze gestite (MIG) regionale di riparare un'istanza di macchina virtuale (VM) in una zona alternativa quando il MIG non riesce a riparare la VM nella zona originale. Per scoprire di più sulle riparazioni in un MIG, consulta Informazioni sulla riparazione delle VM per l'alta affidabilità.

Quando crei un MIG regionale, selezioni una o più zone in cui il MIG distribuisce le VM. Per impostazione predefinita, se una VM nel MIG non funziona, il MIG tenta di ripararla nella zona originale. Se vuoi, puoi consentire al MIG di riparare la VM in una delle altre zone selezionate, il che è utile nei casi in cui il MIG non può riparare la VM nella zona originale. Il MIG sceglie la zona alternativa in base alla capacità e alla quota disponibili.

Limitazioni

Quando configuri un MIG a livello di regione per riparare una VM in una zona alternativa, si applicano le seguenti limitazioni:

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:

    Console

    Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • Terraform

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

    1. Installa Google Cloud CLI.

    2. Configura gcloud CLI per utilizzare la tua identità federata.

      Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.

    3. Crea le credenziali di autenticazione locali per il tuo account utente:

      gcloud auth application-default login

      Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

    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 accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .

Consenti le riparazioni in una zona alternativa

Per consentire a un gruppo di istanze gestite di riparare una VM in una zona alternativa, seleziona una delle seguenti opzioni:

Console

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

    Vai a Gruppi di istanze

  2. Se hai già un MIG, segui questi passaggi:

    1. Fai clic sul nome del MIG.
    2. Fai clic su Modifica.
  3. Se non hai ancora un MIG, segui questi passaggi:

    1. Fai clic su Crea gruppo di istanze.
    2. Inserisci un Nome.
    3. Seleziona un Template di istanza
    4. Nella sezione Località, seleziona Più zone, quindi seleziona una regione e le zone.
    5. Nel menu a discesa Forma di distribuzione target, seleziona Bilanciata o Qualsiasi.

      • Se selezioni Bilanciato, nella finestra di dialogo visualizzata fai clic su Disabilita ridistribuzione istanze.

      • Se vuoi selezionare Qualsiasi, devi prima eliminare la configurazione della scalabilità automatica. Per eliminare la scalabilità automatica, fai clic su Elimina configurazione della scalabilità automatica nel menu a discesa Modalità di scalabilità automatica.

  4. Nella sezione Ciclo di vita di un'istanza VM, assicurati che i seguenti campi siano impostati come segue:

    1. L'elenco Azione predefinita in caso di errore è impostato su Ripara istanza.

    2. L'opzione Aggiornamenti durante la riparazione delle istanze VM è impostata su Aggiorna la configurazione dell'istanza.

    3. Nella sezione Cambia zona durante la riparazione dell'istanza VM, seleziona la casella di controllo Consenti la riparazione delle VM in una zona alternativa.

  5. Per le altre impostazioni, puoi utilizzare i valori predefiniti o modificare i campi.

  6. Al termine, fai clic su Salva per un MIG esistente o su Crea per un nuovo MIG.

gcloud

Per configurare un MIG esistente per riparare la VM in una zona alternativa, utilizza il comando beta update:

gcloud beta compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

Per creare un MIG in grado di riparare la VM in una zona alternativa, utilizza il comando beta create:

gcloud beta compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

Sostituisci quanto segue:

  • MIG_NAME: il nome del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
  • SIZE: la dimensione target del MIG.
  • ZONES: l'elenco delle zone in una regione in cui vuoi creare le VM nel MIG.
  • SHAPE: la forma di distribuzione target. Questo valore può essere balanced o any.
  • REGION: la regione in cui si trova il MIG.

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 in grado di riparare la VM in una zona alternativa, utilizza la risorsa google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

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

REST

Per configurare un MIG esistente per riparare la VM in una zona alternativa, utilizza il metodo beta regionInstanceGroupManagers.patch:

PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

Per creare un MIG in grado di riparare la VM in una zona alternativa, utilizza il metodo beta regionInstanceGroupManagers.insert:

POST https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui si trova il MIG.
  • MIG_NAME: il nome del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
  • SIZE: la dimensione target del MIG.
  • SHAPE: la forma di distribuzione target. Questo valore può essere BALANCED o ANY.

Non consentire le riparazioni in una zona alternativa

Se hai configurato un MIG per riparare la VM in una zona alternativa, puoi ripristinare l'impostazione predefinita in cui il MIG ripara la VM nella zona originale.

Per non consentire le riparazioni in una zona alternativa, seleziona una delle seguenti opzioni:

Console

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

    Vai a Gruppi di istanze

  2. Fai clic sul nome del MIG.

  3. Fai clic su Modifica.

  4. Vai alla sezione Ciclo di vita di un'istanza VM.

  5. Nella sezione Cambia zona durante la riparazione dell'istanza VM, deseleziona la casella di controllo Consenti la riparazione delle VM in una zona alternativa.

  6. Fai clic su Salva.

gcloud

Per non consentire le riparazioni in una zona alternativa, utilizza il comando beta update:

gcloud beta compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

Sostituisci quanto segue:

  • MIG_NAME: il nome del MIG.
  • REGION: la regione in cui si trova il MIG.

REST

Per non consentire le riparazioni in una zona alternativa, utilizza il metodo beta regionInstanceGroupManagers.patch:

PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui si trova il MIG.
  • MIG_NAME: il nome del MIG.

Passaggi successivi