Creare e applicare criteri di posizionamento della diffusione alle VM


Questo documento descrive come migliorare l'affidabilità delle istanze di macchine virtuali (VM) creando e applicando criteri di posizionamento distribuito. Per approfondire i criteri di posizionamento, incluse le relative limitazioni e i prezzi, consulta la Panoramica dei criteri di posizionamento.

Un criterio di posizionamento distribuito specifica che le VM devono essere distribuite in diversi domini di disponibilità. Questa distribuzione contribuisce a mitigare le interruzioni specifiche per località, come gli errori hardware, ed è utile per l'esecuzione di carichi di lavoro distribuiti, replicati e su larga scala come Hadoop Distributed File System (HDFS), Cassandra o Kafka.

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:

    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 ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e applicare un criterio di posizionamento distribuito alle VM, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e applicare un criterio di posizionamento distribuito alle VM. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare e applicare un criterio di posizionamento distribuito alle VM sono necessarie le seguenti autorizzazioni:

  • Per creare i criteri di posizionamento: compute.resourcePolicies.create nel progetto
  • Per applicare un criterio di posizionamento alle VM esistenti: compute.instances.addResourcePolicies nel progetto
  • Per creare le VM:
    • compute.instances.create sul progetto
    • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
    • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly nello snapshot
    • Per utilizzare un modello di istanza per creare la VM: compute.instanceTemplates.useReadOnly nel modello di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use nel progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use nel progetto
    • Per assegnare un indirizzo IP esterno alla VM quando nel progetto viene utilizzata una rete precedente: compute.networks.useExternalIp
    • Per specificare una subnet per la VM: compute.subnetworks.use nel progetto o nella subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp nel progetto o nella subnet scelta
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata nel progetto
    • Per impostare i tag per la VM: compute.instances.setTags sulla VM
    • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
    • Per impostare un account di servizio per l'utilizzo di: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create nel progetto
    • Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura: compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco
  • Per creare un modello di istanza: compute.instanceTemplates.create nel progetto
  • Per creare un gruppo di istanze gestite (MIG): compute.instanceGroupManagers.create nel progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea un criterio di posizionamento distribuito

A meno che tu non voglia testare l'applicazione del criterio di posizionamento distribuito alle VM, Google Cloud consiglia di creare criteri di posizionamento distribuito con due o più domini di disponibilità. In questo modo si riduce il rischio che tutte le VM siano interessate da un singolo errore hardware. Per saperne di più, consulta Informazioni sulle norme relative al posizionamento delle schede.

Per creare un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per creare un criterio di posizionamento distribuito, utilizza il comando gcloud compute resource-policies create group-placement con il flag --availability-domain-count.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count=DOMAIN_COUNT \
    --region=REGION

Sostituisci quanto segue:

  • POLICY_NAME: il nome del criterio di posizionamento distribuito.

  • DOMAIN_COUNT: il numero distinto di domini di disponibilità in cui posizionare le VM. Il valore deve essere compreso tra 1 e 8.

  • REGION: la regione in cui creare il criterio di posizionamento.

REST

Per creare un criterio di posizionamento della diffusione, effettua una richiesta POST al metodo resourcePolicies.insert. Nel corpo della richiesta, includi il campo availabilityDomainCount.

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

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare la norma sul posizionamento.

  • REGION: la regione in cui creare il criterio di posizionamento.

  • POLICY_NAME: il nome del criterio di posizionamento distribuito.

  • DOMAIN_COUNT: il numero distinto di domini di disponibilità in cui posizionare le VM. Il valore deve essere compreso tra 1 e 8.

Applicare un criterio di posizionamento distribuito

Puoi applicare un criterio di posizionamento distribuito a una VM o a un gruppo di istanze gestite esistenti oppure durante la creazione di VM, modelli di istanze o gruppi di istanze gestite.

Per applicare un criterio di posizionamento distribuito a una risorsa Compute Engine, seleziona uno dei seguenti metodi:

Dopo aver applicato un criterio di posizionamento distribuito a una VM, puoi verificare il dominio di disponibilità in cui si trova la VM visualizzando i dettagli della VM e controllando il valore del campo availabilityDomain.

Applica il criterio a una VM esistente

Prima di applicare un criterio di posizionamento della diffusione a una VM esistente, tieni presente quanto segue:

  • Se il criterio di posizionamento distribuito specifica più domini di disponibilità, puoi applicarlo a una VM senza arrestarla. Tuttavia, la VM potrebbe dover essere spostata in un altro dominio di disponibilità. Durante questo processo, Compute Engine arresta o esegue la migrazione live della VM in base alle sue norme di manutenzione dell'host.

  • La VM e i criteri di posizionamento distribuito devono trovarsi nella stessa regione. Ad esempio, se il criterio di posizionamento si trova nella regione us-central1, la VM deve trovarsi in una zona in us-central1. Se devi eseguire la migrazione di una VM in un'altra regione, consulta Spostare una VM tra zone o regioni.

Se vuoi specificare il dominio di disponibilità in cui posizionare la VM, applica il criterio di posizionamento alla VM aggiornandone le proprietà. Quando aggiorni le proprietà della VM, assicurati di includere i campi resourcePolicies e scheduling.availabilityDomain.

Per applicare un criterio di posizionamento distribuito a una VM esistente, seleziona una delle seguenti opzioni:

gcloud

Per applicare un criterio di posizionamento distribuito a una VM esistente, utilizza il comando gcloud compute instances add-resource-policies.

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome di una VM esistente.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

  • ZONE: la zona in cui si trova la VM.

REST

Per applicare un criterio di posizionamento distribuito a una VM esistente, invia una richiesta POST al metodo instances.addResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trovano il criterio di posizionamento distribuito e la VM.

  • ZONE: la zona in cui si trova la VM.

  • VM_NAME: il nome di una VM esistente.

  • REGION: la regione in cui si trova il criterio di posizionamento distribuito.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

Applicare il criterio durante la creazione di una VM

Puoi creare una VM che specifichi un criterio di posizionamento distribuito solo nella stessa regione del criterio di posizionamento.

Per creare una VM che specifica un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per creare una VM che specifica un criterio di posizionamento distribuito, utilizza il comando gcloud compute instances create con il flag --resource-policies.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome della VM da creare.

  • MACHINE_TYPE: il tipo di macchina per la VM.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

  • ZONE: la zona in cui creare la VM.

Se vuoi, per specificare il dominio di disponibilità in cui creare la VM, includi il flag --availability-domain.

gcloud compute instances create VM_NAME \
    --availability-domain=DOMAIN_NUMBER \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento della diffusione. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

REST

Per creare una VM che specifichi un criterio di posizionamento della diffusione, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi il campo resourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il criterio di posizionamento della diffusione.

  • ZONE: la zona in cui creare la VM e dove si trova il tipo di macchina. Puoi specificare solo una zona all'interno della regione del criterio di posizionamento della diffusione.

  • VM_NAME: il nome della VM da creare.

  • MACHINE_TYPE: il tipo di macchina per la VM.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • REGION: la regione in cui si trova il criterio di posizionamento distribuito.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

Se vuoi, per specificare il dominio di disponibilità in cui creare la VM, includere il campo availabilityDomain nel corpo della richiesta.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "availabilityDomain": DOMAIN_NUMBER
  }
}

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento della diffusione. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

Per ulteriori informazioni sulle opzioni di configurazione per creare una VM, consulta Creare e avviare un'istanza VM.

Applica il criterio durante la creazione collettiva delle VM

Prima di creare collettivamente VM che specificano un criterio di posizionamento distribuito, assicurati di quanto segue:

  • Puoi creare in blocco solo VM che specificano un criterio di posizionamento distribuito nella stessa regione del criterio di posizionamento.

  • Quando crei più VM contemporaneamente con un criterio di posizionamento distribuito, puoi facoltativamente specificare il dominio di disponibilità in cui creare le VM. Evita di creare tutte le VM in un unico dominio. In caso contrario, non riduci il rischio che un singolo errore hardware influisca su tutte le tue VM.

Per creare collettivamente VM che specificano un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per creare collettivamente VM che specificano un criterio di posizionamento distribuito, utilizza il comando gcloud compute instances bulk create con il flag --resource-policies.

Ad esempio, per creare più VM contemporaneamente in un'unica zona e specificare un pattern di nomi per le VM, esegui il seguente comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare.

  • MACHINE_TYPE: il tipo di macchina per le VM.

  • NAME_PATTERN: il pattern del nome delle VM. Per sostituire una sequenza di numeri nel nome di una VM, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di vm-# per il pattern del nome genera VM con nomi che iniziano con vm-1, vm-2 e continuano fino al numero di VM specificato da COUNT.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

  • ZONE: la zona in cui creare le VM collettivamente.

Se vuoi, per specificare il dominio di disponibilità in cui creare le VM collettivamente, includi il flag --availability-domain.

gcloud compute instances bulk create \
    --availability-domain=DOMAIN_NUMBER \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento della diffusione. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

REST

Per creare collettivamente VM che specificano un criterio di posizionamento distribuito, esegui un POST al metodo instances.bulkInsert. Nel corpo della richiesta, includi il campo resourcePolicies.

Ad esempio, per creare più VM in un'unica zona e specificare un pattern di nomi per le VM, invia una richiesta POST come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il criterio di posizionamento della diffusione.

  • ZONE: la zona in cui creare le VM collettivamente.

  • COUNT: il numero di VM da creare.

  • NAME_PATTERN: il pattern del nome delle VM. Per sostituire una sequenza di numeri nel nome di una VM, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di vm-# per il pattern del nome genera VM con nomi che iniziano con vm-1, vm-2 e continuano fino al numero di VM specificato da COUNT.

  • MACHINE_TYPE: il tipo di macchina per le VM.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

Se vuoi, per specificare il dominio di disponibilità in cui creare le VM collettivamente, includi il campo availabilityDomain nel corpo della richiesta.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento della diffusione. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

Per ulteriori informazioni sulle opzioni di configurazione per la creazione collettiva di VM, consulta Creare VM collettivamente.

Applicare il criterio durante la creazione di un modello di istanza

Prima di creare un modello di istanza che specifica un criterio di posizionamento distribuito, verifica quanto segue:

  • Se vuoi creare un modello di istanza regionale, crealo nella stessa regione del criterio di posizionamento della diffusione. In caso contrario, la creazione del modello di istanza non andrà a buon fine.

  • Quando crei un modello di istanza, puoi specificare facoltativamente il dominio di disponibilità in cui creare le VM. Evita di creare tutte le VM in un singolo dominio. In caso contrario, non riduci il rischio che un singolo errore hardware influisca su tutte le tue VM.

Dopo aver creato un modello di istanza che specifica un criterio di posizionamento della diffusione, puoi utilizzarlo per:

Per creare un modello di istanza che specifica un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per creare un modello di istanza che specifica un criterio di posizionamento distribuito, utilizza il comando gcloud compute instance-templates create con il flag --resource-policies.

Ad esempio, per creare un modello di istanza globale che specifica un criterio di posizionamento distribuito, esegui il seguente comando:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • MACHINE_TYPE: il tipo di macchina per le VM create utilizzando il modello di istanza.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

Se vuoi, per specificare il dominio di disponibilità in cui creare le VM, includi il flag --availability-domain.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --availability-domain=DOMAIN_NUMBER  \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui creare le VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

REST

Per creare un modello di istanza che specifichi un criterio di posizionamento della diffusione, invia una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, specifica il campo resourcePolicies.

Ad esempio, per creare un modello di istanza globale che specifichi un criterio di posizionamento distribuito, effettua una richiesta POST come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il criterio di posizionamento della diffusione.

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • MACHINE_TYPE: il tipo di macchina per le VM create utilizzando il modello di istanza.

  • POLICY_NAME: il nome di un criterio di posizionamento della scheda esistente.

Se vuoi, per specificare il dominio di disponibilità in cui creare le VM, includere il campo availabilityDomain nel corpo della richiesta.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

Sostituisci DOMAIN_NUMBER con il numero del dominio di disponibilità in cui creare le VM. Il valore deve essere compreso tra 1 e il numero di domini specificati nel criterio di posizionamento. Per verificare il numero di domini in un criterio di posizionamento della diffusione, visualizza i dettagli del criterio di posizionamento.

Per saperne di più sulle opzioni di configurazione per creare un modello di istanza, consulta Creare modelli di istanze.

Applica il criterio alle VM in un gruppo di istanze gestite

Dopo aver creato un modello di istanza che specifica un criterio di posizionamento distribuito, puoi utilizzare il modello per:

Applicare il criterio durante la creazione di un gruppo di istanze gestite

Puoi creare VM che specificano un criterio di posizionamento distribuito solo se le VM si trovano nella stessa regione del criterio di posizionamento.

Per creare un gruppo di istanze gestite utilizzando un modello di istanza che specifica un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per creare un gruppo di istanze gestite utilizzando un modello di istanza che specifica un criterio di posizionamento distribuito, utilizza il comando gcloud compute instance-groups managed create.

Ad esempio, per creare un gruppo di istanze gestite zonale utilizzando un modello di istanza globale che specifica un criterio di posizionamento distribuito, esegui il seguente comando:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creare.

  • SIZE: la dimensione del gruppo di istanze gestite.

  • INSTANCE_TEMPLATE_NAME: il nome di un modello di istanza globale esistente che specifica un criterio di posizionamento distribuito.

  • ZONE: la zona in cui creare il gruppo di istanze gestite, che deve trovarsi all'interno della regione in cui si trova il criterio di posizionamento distribuito.

REST

Per creare un gruppo di istanze gestite utilizzando un modello di istanza che specifica un criterio di posizionamento distribuito, invia una richiesta POST a uno dei seguenti metodi:

Ad esempio, per creare un gruppo di istanze gestite a livello di zona utilizzando un modello di istanza globale che specifica un criterio di posizionamento distribuito, invia una richiesta POST come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trovano il criterio di posizionamento distribuito e il modello di istanza che specifica il criterio di posizionamento.

  • ZONE: la zona in cui creare il gruppo di istanze gestite, che deve rientrare nella regione in cui si trova il criterio di posizionamento distribuito.

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creare.

  • SIZE: la dimensione del gruppo di istanze gestite.

  • INSTANCE_TEMPLATE_NAME: il nome di un modello di istanza globale esistente che specifica un criterio di posizionamento distribuito.

Per ulteriori informazioni sulle opzioni di configurazione per la creazione di gruppi di istanze gestite, consulta Scenari di base per la creazione di gruppi di istanze gestite.

Applica il criterio a un gruppo di istanze gestite esistente

Puoi applicare un criterio di posizionamento compatto a un gruppo di istanze gestite esistente solo se il gruppo di istanze gestite si trova nella stessa regione del criterio di posizionamento o, per i gruppi di istanze gestite zonali, in una zona all'interno della stessa regione del criterio di posizionamento.

Per aggiornare un gruppo di istanze gestite in modo che utilizzi un modello di istanza che specifica un criterio di posizionamento distribuito, seleziona una delle seguenti opzioni:

gcloud

Per aggiornare un gruppo di istanze gestite in modo che utilizzi un modello di istanza che specifica un criterio di posizionamento distribuito, utilizza il comando gcloud compute instance-groups managed rolling-action start-update.

Ad esempio, per aggiornare un gruppo di istanze gestite zonale in modo che utilizzi un modello di istanza che specifica un criterio di posizionamento distribuito e per sostituire le VM esistenti del gruppo di istanze gestite con nuove VM che specificano le proprietà del modello, esegui il seguente comando:

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite esistente.

  • INSTANCE_TEMPLATE_NAME: il nome di un modello di istanza globale esistente che specifica un criterio di posizionamento distribuito.

  • ZONE: la zona in cui si trova il gruppo di istanze gestite. Puoi applicare il criterio di posizionamento distribuito solo a un gruppo MIG situato nella stessa regione del criterio di posizionamento.

REST

Per aggiornare un gruppo di istanze gestite in modo che utilizzi un modello di istanza che specifica un criterio di posizionamento distribuito e applica automaticamente le proprietà del modello e del criterio di posizionamento alle VM esistenti nel gruppo di istanze gestite, invia una richiesta PATCH a uno dei seguenti metodi:

Ad esempio, per aggiornare un gruppo di istanze gestite zonale in modo che utilizzi un modello di istanza globale che specifica un criterio di posizionamento distribuito e per sostituire le VM esistenti del gruppo di istanze gestite con nuove VM che specificano le proprietà del modello, effettua la seguente richiesta PATCH:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto utilizzato per creare un gruppo di istanze gestite esistente, il criterio di posizionamento distribuito e il modello di istanza che specifica il criterio di posizionamento distribuito.

  • ZONE: la zona in cui si trova il gruppo di istanze gestite. Puoi applicare il criterio di posizionamento distribuito solo a un gruppo MIG situato nella stessa regione del criterio di posizionamento.

  • INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite esistente.

  • INSTANCE_TEMPLATE_NAME: il nome di un modello di istanza globale esistente che specifica un criterio di posizionamento distribuito.

Per ulteriori informazioni sulle opzioni di configurazione per aggiornare le VM in un gruppo di istanze gestite, consulta la pagina relativa all'aggiornamento e all'applicazione di nuove configurazioni alle VM in un gruppo di istanze gestite.

Passaggi successivi