Riduci la latenza utilizzando le policy di posizionamento compatto

Questo documento descrive come ridurre la latenza di rete tra le istanze Compute Engine 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 istanze devono essere posizionate fisicamente più vicine tra loro. Questo può contribuire a migliorare le prestazioni e ridurre la latenza di rete tra le istanze, 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 verifica la tua identità per l'accesso a Google Cloud servizi e API. 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. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

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

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta 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 istanze di Compute, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare e applicare una policy di posizionamento compatto alle istanze di computing. 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 istanze di computing sono necessarie le seguenti autorizzazioni:

  • Per creare policy di posizionamento: compute.resourcePolicies.create sul progetto
  • Per applicare una policy di posizionamento a istanze esistenti: compute.instances.addResourcePolicies sul progetto
  • Per creare istanze:
    • 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 viene utilizzata 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 da utilizzare per la VM: 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 un'istanza: 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 un'istanza di calcolo diversa da N2 o N2D, ti consigliamo di specificare un valore di distanza massima.

  • Puoi applicare policy di posizionamento compatto solo alle istanze A4 o A3 Ultra di cui è stato eseguito il deployment utilizzando il modello di provisioning con prenotazione. Per maggiori informazioni, consulta Panoramica della gestione dei cluster nella documentazione di AI Hypercomputer.

  • Per impostazione predefinita, non è possibile applicare policy di posizionamento compatto con un valore di distanza massima alle istanze 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 istanze N2 o N2D, crea la policy 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 istanza 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 istanze. Il valore deve essere compreso tra 1, che specifica la collocazione delle istanze nello stesso rack per la latenza di rete più bassa possibile, e 3, che specifica la collocazione delle istanze in cluster adiacenti. Se vuoi applicare la policy di posizionamento compatto a una prenotazione o a un'istanza 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 istanze 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 istanza 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 istanze. Il valore deve essere compreso tra 1, che specifica la collocazione delle istanze nello stesso rack per la latenza di rete più bassa possibile, e 3, che specifica la collocazione delle istanze in cluster adiacenti. Se vuoi applicare la policy di posizionamento compatto a una prenotazione o a un'istanza A4 o A3 Ultra, non puoi specificare il valore 1.

Applica una policy di posizionamento compatto

Puoi applicare una policy di posizionamento compatto a un'istanza di calcolo o a un gruppo di istanze gestite (MIG) esistente oppure quando crei istanze, modelli di istanza, MIG o prenotazioni di istanze.

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 un'istanza, puoi verificare la posizione fisica dell'istanza in relazione ad altre istanze per le quali è specificata la stessa policy di posizionamento.

Applica la policy a un'istanza esistente

Prima di applicare una policy di posizionamento compatto a un'istanza di calcolo esistente, assicurati di quanto segue:

In caso contrario, l'applicazione della policy di posizionamento compatto all'istanza non va a buon fine. Se l'istanza specifica già una policy di posizionamento che vuoi sostituire, vedi Sostituisci una policy di posizionamento in un'istanza.

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

gcloud

  1. Arresta l'istanza.

  2. Per applicare una policy di posizionamento compatto a un'istanza esistente, utilizza il comando gcloud compute instances add-resource-policies.

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome di un'istanza esistente

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

    • ZONE: la zona in cui si trova l'istanza

  3. Riavvia l'istanza.

REST

  1. Arresta l'istanza.

  2. Per applicare una policy di posizionamento compatto a un'istanza esistente, invia una richiesta POST al metodo instances.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_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 l'istanza.

    • ZONE: la zona in cui si trova l'istanza

    • INSTANCE_NAME: il nome di un'istanza 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 l'istanza.

Applica la policy durante la creazione di un'istanza

Puoi creare un'istanza di Compute che specifica una policy di posizionamento compatto solo nella stessa regione della policy di posizionamento.

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

gcloud

Per creare un'istanza 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 INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza da creare.

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

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host dell'istanza. 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 l'istanza

REST

Per creare un'istanza 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": "INSTANCE_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 l'istanza e in cui si trova il tipo di macchina. Puoi specificare solo una zona nella regione della policy di posizionamento compatto.

  • INSTANCE_NAME: il nome dell'istanza 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, consulta 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 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 la policy di posizionamento compatto.

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

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host dell'istanza. 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 un'istanza, vedi Crea e avvia un'istanza.

Applica la policy durante la creazione di istanze in blocco

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

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

gcloud

Per creare in blocco istanze 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 istanze in blocco in un'unica zona e specificare un pattern del nome per le istanze, 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 istanze da creare, che non può essere superiore al numero massimo di istanze 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 dell'istanza. 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 per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di vm-# per il pattern del nome genera istanze 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 istanze in blocco.

REST

Per creare in blocco istanze 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ù istanze in un'unica zona e specificare un pattern di nomi per le istanze, invia una richiesta POST nel modo seguente:

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 istanze in blocco.

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

  • NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo di vm-# per il pattern del nome genera istanze 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, consulta 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 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 la policy di posizionamento compatto.

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

  • MAINTENANCE_POLICY: la policy di manutenzione dell'host dell'istanza. 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 istanze in blocco, vedi Creare istanze 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 istanze per consumare la prenotazione, assicurati di quanto segue:

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

  • Per poter consumare la prenotazione, quest'ultima deve essere un target specifico delle istanze. Per maggiori informazioni, vedi Utilizza istanze da 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_INSTANCES \
    --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_INSTANCES: il numero di istanze da prenotare, che non può essere superiore al numero massimo di istanze supportate previsto dalla policy di posizionamento compatto specificata.

  • ZONE: la zona in cui prenotare le istanze. Puoi prenotare le istanze solo in una zona 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_INSTANCES",
    "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 istanze. Puoi prenotare le istanze solo in una zona 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_INSTANCES: il numero di istanze da prenotare, che non può essere superiore al numero massimo di istanze 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 dell'istanza. 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, consulta 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 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: 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 dell'istanza. 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 istanze 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 istanze di computing che specificano una policy di posizionamento compatto solo se le istanze 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 gruppo di istanze gestite 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 trovarsi 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 trovarsi nella regione in cui si trova la policy di posizionamento compatto.

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite 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 istanze esistenti del MIG con nuove istanze 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 istanze 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 istanze esistenti del MIG con nuove istanze 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 gruppo di istanze gestite 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 istanze in un MIG, vedi Aggiorna e applica nuove configurazioni alle istanze in un MIG.

Verifica la posizione fisica di un'istanza

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

  • Verificare che la policy sia stata applicata correttamente.

  • Identificare le istanze più vicine tra loro.

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

gcloud

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

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome di un'istanza esistente che specifica una policy di posizionamento compatto.

  • ZONE: la zona in cui si trova l'istanza

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 l'istanza.

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

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

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

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

REST

Per visualizzare la posizione fisica di un'istanza 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/INSTANCE_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova l'istanza

  • ZONE: la zona in cui si trova l'istanza

  • INSTANCE_NAME: il nome di un'istanza 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 l'istanza.

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

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

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

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

Passaggi successivi