Riduci la latenza utilizzando le policy di posizionamento compatto


Questo documento descrive come ridurre la latenza di rete tra le istanze di macchine virtuali (VM) creando e applicando a queste istanze policy di posizionamento compatto. Per scoprire di più sulle policy di posizionamento, tra cui le serie di macchine supportate, le limitazioni e i prezzi, vedi Panoramica delle policy di posizionamento.

Una policy di posizionamento compatto specifica che le VM devono essere posizionate fisicamente più vicine tra loro. Questo può contribuire a migliorare le prestazioni e ridurre la latenza di rete tra le VM, ad esempio durante l'esecuzione di workload di computing ad alte prestazioni (HPC), machine learning (ML) o server di database.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai servizi e alle 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:

    gcloud

      1. After installing the Google Cloud CLI, initialize it 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.
      3. 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.

          After installing the Google Cloud CLI, initialize it 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.

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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e applicare una policy di posizionamento compatto alle VM, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sull'assegnazione dei ruoli, vedi Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti comprendono le autorizzazioni necessarie per creare e applicare una policy di posizionamento compatto alle VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare e applicare una policy di posizionamento compatto alle VM sono necessarie le seguenti autorizzazioni:

  • Per creare policy di posizionamento: compute.resourcePolicies.create sul progetto
  • Per applicare una policy di posizionamento a VM esistenti: compute.instances.addResourcePolicies sul 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 sullo snapshot
    • Per utilizzare un template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
    • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
    • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
    • Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy: compute.networks.useExternalIp sul progetto
    • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
    • Per assegnare un indirizzo IP esterno alla VM quando si utilizza una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
    • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul 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 service account che la VM possa utilizzare: compute.instances.setServiceAccount sulla VM
    • Per creare un nuovo disco per la VM: compute.disks.create sul progetto
    • Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura: compute.disks.use sul disco
    • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco
  • Per creare una prenotazione: compute.reservations.create sul progetto
  • Per creare un template di istanza: compute.instanceTemplates.create sul progetto
  • Per creare un gruppo di istanze gestite (MIG): compute.instanceGroupManagers.create sul progetto
  • Per visualizzare i dettagli di una VM: compute.instances.get sul progetto

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

Crea una policy di posizionamento compatto

Prima di creare una policy di posizionamento compatto, considera quanto segue:

  • Se vuoi applicare una policy di posizionamento compatto a una VM che non sia N2 o N2D, ti consigliamo di specificare un valore di distanza massima.

  • È possibile applicare policy di posizionamento compatto solo alle VM A4 o A3 Ultra di cui è stato eseguito il deployment utilizzando le funzionalità fornite da Cluster Director. Per saperne di più, vedi Cluster Director nella documentazione di AI Hypercomputer.

  • Per impostazione predefinita, non è possibile applicare policy di posizionamento compatto con un valore di distanza massima alle VM A3 Mega, A3 High o A3 Edge. Per richiedere l'accesso a questa funzionalità, contatta il tuo Technical Account Manager (TAM) di riferimento o il team di vendita.

Per creare una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

  • Per applicare la policy di posizionamento compatto a VM N2 o N2D, creala utilizzando il comando gcloud compute resource-policies create group-placement con il flag --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy di posizionamento compatto.

    • REGION: la regione in cui creare la policy di posizionamento.

  • Per applicare la policy di posizionamento compatto a qualsiasi altra VM supportata, crea la policy utilizzando il comando gcloud beta compute resource-policies create group-placement con i flag --collocation=collocated e --max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy di posizionamento compatto.

    • MAX_DISTANCE: la configurazione della distanza massima per le VM. Il valore deve essere compreso tra 1, che specifica la collocazione delle VM nello stesso rack per la latenza di rete più bassa possibile, e 3, che specifica la collocazione delle VM in cluster adiacenti. Se vuoi applicare la policy di posizionamento compatto a una prenotazione o a una VM A4 o A3 Ultra, non puoi specificare il valore 1.

    • REGION: la regione in cui creare la policy di posizionamento.

REST

  • Per applicare la policy di posizionamento compatto a VM N2 o N2D, creala inviando una richiesta POST al metodo resourcePolicies.insert. Nel corpo della richiesta, includi il campo collocation e impostalo su COLLOCATED.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui vuoi creare la policy di posizionamento.

    • REGION: la regione in cui creare la policy di posizionamento.

    • POLICY_NAME: il nome della policy di posizionamento compatto.

  • Per applicare la policy di posizionamento compatto a qualsiasi altra VM supportata, crea la policy inviando una richiesta POST al metodo beta.resourcePolicies.insert. Nel corpo della richiesta, includi quanto segue:

    • Il campo collocation impostato su COLLOCATED.

    • Il campo maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui vuoi creare la policy di posizionamento.

    • REGION: la regione in cui creare la policy di posizionamento.

    • POLICY_NAME: il nome della policy di posizionamento compatto.

    • MAX_DISTANCE: la configurazione della distanza massima per le VM. Il valore deve essere compreso tra 1, che specifica la collocazione delle VM nello stesso rack per la latenza di rete più bassa possibile, e 3, che specifica la collocazione delle VM in cluster adiacenti. Se vuoi applicare la policy di posizionamento compatto a una prenotazione o a una VM A4 o A3 Ultra, non puoi specificare il valore 1.

Applica una policy di posizionamento compatto

Puoi applicare una policy di posizionamento compatto a una VM o a un MIG esistente oppure quando crei VM, template di istanza, MIG o prenotazioni di VM.

Per applicare una policy di posizionamento compatto a una risorsa Compute Engine, seleziona uno dei seguenti metodi:

Dopo aver applicato una policy di posizionamento compatto a una VM, puoi verificare la posizione fisica della VM in relazione ad altre VM per le quali è specificata la stessa policy di posizionamento.

Applica la policy a una VM esistente

Prima di applicare una policy di posizionamento compatto a una VM esistente, assicurati di quanto segue:

In caso contrario, l'applicazione della policy di posizionamento compatto alla VM non va a buon fine. Se per la VM è già specificata una policy di posizionamento che vuoi sostituire, vedi Sostituisci una policy di posizionamento in una VM.

Per applicare un policy di posizionamento compatto a una VM esistente, seleziona una delle seguenti opzioni:

gcloud

  1. Arresta la VM.

  2. Per applicare una policy di posizionamento compatto 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 una policy di posizionamento compatto esistente.

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

  3. Riavvia la VM.

REST

  1. Arresta la VM.

  2. Per applicare una policy di posizionamento compatto 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 la policy di posizionamento compatto 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 la policy di posizionamento compatto.

    • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  3. Riavvia la VM.

Applica la policy durante la creazione di una VM

Puoi creare una VM che specifica una policy di posizionamento compatto solo nella stessa regione della policy di posizionamento.

Per creare una VM che specifica una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per creare una VM che specifica una policy di posizionamento compatto, utilizza il comando gcloud compute instances create con i flag --maintenance-policy e --resource-policies.

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

Sostituisci quanto segue:

  • VM_NAME: il nome della VM da creare.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • ZONE: la zona in cui creare la VM.

REST

Per creare una VM che specifica una policy di posizionamento compatto, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi i campi onHostMaintenance e 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"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento compatto.

  • ZONE: la zona in cui creare la VM e in cui si trova il tipo di macchina. Puoi specificare solo una zona che si trovi all'interno della regione della policy di posizionamento compatto.

  • VM_NAME: il nome della VM da creare.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

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

  • IMAGE: specifica una delle seguenti opzioni:

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

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo, viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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 la policy di posizionamento compatto.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

Per saperne di più sulle opzioni di configurazione per la creazione di una VM, vedi Crea e avvia un'istanza VM.

Applica la policy durante la creazione di VM in blocco

Puoi creare le VM in blocco con una policy di posizionamento compatto solo all'interno della stessa regione della policy di posizionamento.

Per creare in blocco più VM che specificano una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per creare in blocco più VM che specificano una policy di posizionamento compatto, utilizza il comando gcloud compute instances bulk create con i flag --maintenance-policy e --resource-policies.

Ad esempio, per creare in blocco più VM in un'unica zona e specificare un pattern del nome per le VM, esegui il seguente comando:

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

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare, che non può essere superiore al numero massimo di VM supportate previsto dalla policy di posizionamento compatto specificata.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

  • 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 via di seguito fino al numero di VM specificato da COUNT.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

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

REST

Per creare in blocco più VM che specificano una policy di posizionamento compatto, invia una richiesta POST al metodo instances.bulkInsert. Nel corpo della richiesta, includi i campi onHostMaintenance e resourcePolicies.

Ad esempio, per creare in blocco più VM in un'unica zona e specificare un pattern di nomi per le VM, invia una richiesta POST formulata nel seguente modo:

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": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento compatto.

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

  • COUNT: il numero di VM da creare, che non può essere superiore al numero massimo di VM supportate previsto dalla policy di posizionamento compatto specificata.

  • 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 via di seguito fino al numero di VM specificato da COUNT.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

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

  • IMAGE: specifica una delle seguenti opzioni:

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

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo, viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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 la policy di posizionamento compatto.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

Per saperne di più sulle opzioni di configurazione per la creazione di VM in blocco, vedi Creare VM in blocco.

Applica la policy durante la creazione di una prenotazione

Se vuoi creare una prenotazione on demand per un singolo progetto che specifichi una policy di posizionamento compatto, devi creare una prenotazione con target specifico. Quando crei le VM per consumare la prenotazione, assicurati di quanto segue:

  • Le VM devono specificare la stessa policy di posizionamento compatto applicata alla prenotazione.

  • Per poter consumare la prenotazione, quest'ultima deve essere un target specifico delle VM. Per saperne di più, vedi Consuma VM associate a una prenotazione specifica.

Per creare una prenotazione per un singolo progetto con una policy di posizionamento compatto, seleziona uno dei seguenti metodi:

Per creare una prenotazione per un singolo progetto con una policy di posizionamento compatto specificando direttamente le proprietà, seleziona una delle seguenti opzioni:

gcloud

Per creare una prenotazione di un singolo progetto con una policy di posizionamento compatto specificando direttamente le proprietà, utilizza il comando gcloud compute reservations create con i flag --require-specific-reservation e --resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • NUMBER_OF_VMS: il numero di VM da prenotare, che non può essere superiore al numero massimo di VM supportate previsto dalla policy di posizionamento compatto specificata.

  • ZONE: la zona in cui prenotare le VM. Puoi prenotare le VM solo in una zona che si trova all'interno della regione della policy di posizionamento compatto specificata.

REST

Per creare una prenotazione per un singolo progetto con una policy di posizionamento compatto specificando direttamente le proprietà, invia una richiesta POST al metodo reservations.insert. Nel corpo della richiesta, includi il campo resourcePolicies e il campo specificReservationRequired impostato su true.

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

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento compatto.

  • ZONE: la zona in cui prenotare le VM. Puoi prenotare le VM solo in una zona che si trova all'interno della regione della policy di posizionamento compatto specificata.

  • RESERVATION_NAME: il nome della prenotazione.

  • REGION: la regione in cui si trova la policy di posizionamento compatto.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • NUMBER_OF_VMS: il numero di VM da prenotare, che non può essere superiore al numero massimo di VM supportate previsto dalla policy di posizionamento compatto specificata.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

Per saperne di più sulle opzioni di configurazione per la creazione di prenotazioni per un singolo progetto, vedi Crea una prenotazione per un singolo progetto.

Applica la policy durante la creazione di un template di istanza

Se vuoi creare un template di istanza regionale, devi crearlo nella stessa regione della policy di posizionamento compatto. In caso contrario, la creazione del template di istanza non andrà a buon fine.

Dopo aver creato un template di istanza che specifica una policy di posizionamento compatto, puoi utilizzarlo per eseguire le seguenti operazioni:

Per creare un template di istanza che specifica una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per creare un template di istanza che specifica una policy di posizionamento compatto, utilizza il comando gcloud compute instance-templates create con i flag --maintenance-policy e --resource-policies.

Ad esempio, per creare un template di istanza globale che specifica una policy di posizionamento compatto, esegui il seguente comando:

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

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

  • MACHINE_TYPE: un tipo di macchina supportato per le policy di posizionamento compatto.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

REST

Per creare un template di istanza che specifichi una policy di posizionamento compatto, invia una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, includi i campi onHostMaintenance e resourcePolicies.

Ad esempio, per creare un template di istanza globale che specifichi una policy di posizionamento compatto, 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"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento compatto.

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

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

  • IMAGE: specifica una delle seguenti opzioni:

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

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo, viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione nella 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: un tipo di macchina supportato per le policy di posizionamento compatto.

  • POLICY_NAME: il nome di una policy di posizionamento compatto esistente.

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host della VM. Se la policy di posizionamento compatto che specifichi utilizza un valore di distanza massima pari a 1 o 2 oppure il tipo di macchina scelto non supporta la migrazione live, puoi specificare soltanto TERMINATE. In caso contrario, puoi specificare MIGRATE o TERMINATE.

Per saperne di più sulle opzioni di configurazione per creare un template di istanza, vedi Crea template di istanza.

Applica la policy alle VM in un MIG

Dopo aver creato un template di istanza che specifica una policy di posizionamento compatto, puoi utilizzarlo per eseguire le seguenti operazioni:

Applica la policy durante la creazione di un MIG

Puoi creare VM che specificano una policy di posizionamento compatto solo se le VM si trovano nella stessa regione della policy di posizionamento.

Per creare un MIG utilizzando un template di istanza che specifica una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per creare un MIG utilizzando un template di istanza che specifica una policy di posizionamento compatto, utilizza il comando gcloud compute instance-groups managed create.

Ad esempio, per creare un MIG a livello di zona utilizzando un template di istanza globale che specifica una policy di posizionamento compatto, 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 MIG da creare.

  • SIZE: la dimensione del MIG.

  • INSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento compatto.

  • ZONE: la zona in cui creare il MIG, che deve rientrare nella regione in cui si trova la policy di posizionamento compatto.

REST

Per creare un MIG utilizzando un template di istanza che specifica una policy di posizionamento compatto, invia una richiesta POST a uno dei seguenti metodi:

Ad esempio, per creare un MIG a livello di zona utilizzando un template di istanza globale che specifica una policy di posizionamento compatto, effettua 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 la policy di posizionamento compatto e il template di istanza che la specifica.

  • ZONE: la zona in cui creare il MIG, che deve rientrare nella regione in cui si trova la policy di posizionamento compatto.

  • INSTANCE_GROUP_NAME: il nome del MIG da creare.

  • INSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento compatto.

  • SIZE: la dimensione del MIG.

Per saperne di più sulle opzioni di configurazione per la creazione di MIG, vedi Scenari di base per la creazione di gruppi di istanze gestite (MIG).

Applica la policy a un MIG esistente

Puoi applicare una policy di posizionamento compatto a un MIG esistente solo se quest'ultimo si trova nella stessa regione della policy di posizionamento o, per i MIG a livello di zona, in una zona all'interno della stessa regione della policy di posizionamento.

Per aggiornare un MIG in modo che utilizzi un template di istanza che specifica una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per aggiornare un MIG in modo che utilizzi un template di istanza che specifica una policy di posizionamento compatto, utilizza il comando gcloud compute instance-groups managed rolling-action start-update.

Ad esempio, per aggiornare un MIG a livello di zona in modo che utilizzi un template di istanza che specifica una policy di posizionamento compatto e sostituire le VM esistenti del MIG con nuove VM che specificano le proprietà del template, esegui il seguente comando:

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

Sostituisci quanto segue:

  • MIG_NAME: il nome di un MIG esistente.

  • INSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento compatto.

  • ZONE: la zona in cui si trova il MIG. Puoi applicare la policy di posizionamento compatto solo a un MIG che si trova nella sua stessa regione.

REST

Per aggiornare un MIG in modo che utilizzi un template di istanza che specifica una policy di posizionamento compatto e applicare automaticamente le proprietà del template e della policy di posizionamento alle VM esistenti nel MIG, invia una richiesta PATCH a uno dei seguenti metodi:

Ad esempio, per aggiornare un MIG a livello di zona in modo che utilizzi un template di istanza globale che specifica una policy di posizionamento compatto e sostituire le VM esistenti del MIG con nuove VM che specificano le proprietà del template, effettua la seguente richiesta PATCH:

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

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trovano il MIG, la policy di posizionamento compatto e il template di istanza che specifica la policy di posizionamento compatto.

  • ZONE: la zona in cui si trova il MIG. Puoi applicare la policy di posizionamento compatto solo a un MIG che si trova nella sua stessa regione.

  • MIG_NAME: il nome di un MIG esistente.

  • INSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento compatto.

Per saperne di più sulle opzioni di configurazione per aggiornare le VM in un MIG, vedi Aggiorna e applica nuove configurazioni alle VM in un MIG.

Verifica la posizione fisica di una VM

Dopo aver applicato una policy di posizionamento compatto a una VM, puoi visualizzare la posizione fisica della VM rispetto ad altre VM. Questo confronto è limitato alle VM che si trovano nel tuo progetto e che specificano la stessa policy di posizionamento compatto. La visualizzazione della posizione fisica di una VM ti consente di eseguire le seguenti operazioni:

  • Verificare che la policy sia stata applicata correttamente.

  • Individuare le VM più vicine tra loro.

Per visualizzare la posizione fisica di una VM in relazione ad altre VM che specificano la stessa policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per visualizzare la posizione fisica di una VM che specifica una policy di posizionamento compatto, utilizza il comando gcloud compute instances describe con il flag --format.

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento compatto.

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

L'output è simile al seguente:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

Il valore del campo PHYSICAL_HOST è formato da tre parti, che rappresentano rispettivamente il cluster, il rack e l'host in cui si trova la VM.

Quando confronti la posizione di due VM che utilizzano la stessa policy di posizionamento compatto all'interno del tuo progetto, più parti del campo PHYSICAL_HOST sono condivise dalle VM, più queste sono vicine fisicamente. Ad esempio, supponiamo che due VM specifichino entrambe uno dei seguenti valori di esempio per il campo PHYSICAL_HOST:

  • /CCCCCCC/xxxxxx/xxxx: le due VM si trovano nello stesso cluster, il che corrisponde a un valore di distanza massima pari a 2. Le VM posizionate nello stesso cluster presentano una bassa latenza di rete.

  • /CCCCCCC/BBBBBB/xxxx: le due VM si trovano nello stesso rack, il che corrisponde a un valore di distanza massima pari a 1. Le VM posizionate nello stesso rack presentano una latenza di rete inferiore rispetto alle VM posizionate nello stesso cluster.

  • /CCCCCCC/BBBBBB/AAAA: le due VM condividono lo stesso host. Le VM posizionate nello stesso host riducono la latenza di rete al minimo valore possibile.

REST

Per visualizzare la posizione fisica di una VM che specifica una policy di posizionamento compatto, invia una richiesta GET al metodo instances.get.

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la VM.

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

  • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento compatto.

L'output è simile al seguente:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

Il valore del campo physicalHost è formato da tre parti, che rappresentano rispettivamente il cluster, il rack e l'host in cui si trova la VM.

Quando confronti la posizione di due VM che utilizzano la stessa policy di posizionamento compatto all'interno del tuo progetto, più parti del campo physicalHost sono condivise dalle VM, più queste sono vicine fisicamente. Ad esempio, supponiamo che due VM specifichino entrambe uno dei seguenti valori di esempio per il campo physicalHost:

  • /CCCCCCC/xxxxxx/xxxx: le due VM si trovano nello stesso cluster, il che corrisponde a un valore di distanza massima pari a 2. Le VM posizionate nello stesso cluster presentano una bassa latenza di rete.

  • /CCCCCCC/BBBBBB/xxxx: le due VM si trovano nello stesso rack, il che corrisponde a un valore di distanza massima pari a 1. Le VM posizionate nello stesso rack presentano una latenza di rete inferiore rispetto alle VM posizionate nello stesso cluster.

  • /CCCCCCC/BBBBBB/AAAA: le due VM condividono lo stesso host. Le VM posizionate nello stesso host riducono la latenza di rete al minimo valore possibile.

Passaggi successivi