Questo documento descrive come migliorare l'affidabilità delle istanze di macchine virtuali (VM) creando e applicando policy di posizionamento distribuito. Per saperne di più sulle policy di posizionamento, incluse le relative limitazioni e i prezzi, vedi la rispettiva panoramica.
Una policy di posizionamento distribuito specifica che le istanze 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 workload 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 verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e applicare una policy di posizionamento distribuito alle istanze, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e applicare una policy di posizionamento distribuito alle istanze. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e applicare una policy di posizionamento distribuito alle istanze, sono necessarie le seguenti autorizzazioni:
-
Per creare policy di posizionamento:
compute.resourcePolicies.createsul progetto -
Per applicare una policy di posizionamento a istanze esistenti:
compute.instances.addResourcePoliciessul progetto -
Per creare istanze:
compute.instances.createsul progetto- Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnlysull'immagine - Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnlysullo snapshot - Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnlysul template di istanza - Per assegnare una rete legacy alla VM:
compute.networks.usesul progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.usesul progetto - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy:
compute.networks.useExternalIpsul progetto - Per specificare una subnet per la VM:
compute.subnetworks.usesul progetto o sulla subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC:
compute.subnetworks.useExternalIpsul progetto o sulla subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadatasul progetto - Per impostare i tag per la VM:
compute.instances.setTagssulla VM - Per impostare le etichette per la VM:
compute.instances.setLabelssulla VM - Per impostare un service account da utilizzare per la VM:
compute.instances.setServiceAccountsulla VM - Per creare un nuovo disco per la VM:
compute.disks.createsul progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura:
compute.disks.usesul disco - Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnlysul disco
-
Per creare un template di istanza:
compute.instanceTemplates.createsul progetto -
Per creare un gruppo di istanze gestite (MIG):
compute.instanceGroupManagers.createsul progetto
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Crea una policy di posizionamento distribuito
A meno che tu non voglia testare l'applicazione della policy di posizionamento distribuito alle tue istanze, Google Cloud consiglia di creare policy di posizionamento distribuito con due o più domini di disponibilità. In questo modo si riduce il rischio che tutte le istanze siano interessate da un singolo errore hardware. Per saperne di più, vedi le informazioni sulle policy di posizionamento distribuito.
Per creare una policy di posizionamento distribuito, seleziona una delle seguenti opzioni:
gcloud
Per creare una policy di posizionamento distribuito, utilizza il comando
gcloud compute resource-policies create group-placementcon il flag--availability-domain-count.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGIONSostituisci quanto segue:
POLICY_NAME: il nome della policy di posizionamento distribuitoDOMAIN_COUNT: il numero distinto di domini di disponibilità in cui posizionare le istanze. Il valore deve essere compreso tra1e8.REGION: la regione in cui creare la policy di posizionamento
REST
Per creare una policy di posizionamento distribuito, effettua una richiesta
POSTal metodoresourcePolicies.insert. Nel corpo della richiesta, includi il campoavailabilityDomainCount.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 policy di posizionamentoREGION: la regione in cui creare la policy di posizionamentoPOLICY_NAME: il nome della policy di posizionamento distribuitoDOMAIN_COUNT: il numero distinto di domini di disponibilità in cui posizionare le istanze. Il valore deve essere compreso tra1e8.
Applica una policy di posizionamento distribuito
Puoi applicare una policy di posizionamento distribuito a una VM o a un MIG esistente oppure durante la creazione di istanze, template di istanze o MIG.
Per applicare una policy di posizionamento distribuito a una risorsa Compute Engine, seleziona uno dei seguenti metodi:
- Applica la policy a una VM esistente.
- Applica la policy durante la creazione di una VM.
- Applica la policy durante la creazione di istanze in blocco.
- Applica la policy durante la creazione di un template di istanza.
- Applica la policy alle istanze in un MIG.
Dopo aver applicato una policy 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 la policy a una VM esistente
Prima di applicare una policy di posizionamento distribuito a una VM esistente, tieni presente quanto segue:
Se la policy di posizionamento distribuito specifica più domini di disponibilità, puoi applicarla a una VM senza che quest'ultima debba essere arrestata. 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 policy di manutenzione dell'host.
La VM e la policy di posizionamento distribuito devono trovarsi nella stessa regione. Ad esempio, se la policy di posizionamento si trova nella regione
us-central1, la VM deve trovarsi in una zona all'interno dius-central1. Se devi eseguire la migrazione di una VM in un'altra regione, vedi Sposta una VM tra zone o regioni.
Se vuoi specificare il dominio di disponibilità in cui posizionare la VM, applica la policy di posizionamento alla VM aggiornandone le proprietà. Quando aggiorni le proprietà della VM, assicurati di includere i campi
resourcePoliciesescheduling.availabilityDomain.Per applicare un policy di posizionamento distribuito a una VM esistente, seleziona una delle seguenti opzioni:
gcloud
Per applicare una policy 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=ZONESostituisci quanto segue:
VM_NAME: il nome di una VM esistente.POLICY_NAME: il nome di una policy di posizionamento distribuito esistenteZONE: la zona in cui si trova la VM
REST
Per applicare una policy di posizionamento distribuito a una VM esistente, invia una richiesta
POSTal metodoinstances.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 distribuito e la VMZONE: la zona in cui si trova la VMVM_NAME: il nome di una VM esistente.REGION: la regione in cui si trova la policy di posizionamento distribuitoPOLICY_NAME: il nome di una policy di posizionamento distribuito esistente
Applica la policy durante la creazione di una VM
Puoi creare una VM che specifica una policy di posizionamento distribuito solo nella stessa regione della policy di posizionamento.
Per creare una VM che specifica una policy di posizionamento distribuito, seleziona una delle seguenti opzioni:
gcloud
Per creare una VM che specifica una policy di posizionamento distribuito, utilizza il comando
gcloud compute instances createcon il flag--resource-policies.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONESostituisci quanto segue:
VM_NAME: il nome della VM da creareMACHINE_TYPE: il tipo di macchina per la VMPOLICY_NAME: il nome di una policy di posizionamento distribuito esistenteZONE: 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=ZONESostituisci
DOMAIN_NUMBERcon il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento distribuito. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.REST
Per creare una VM che specifica una policy di posizionamento distribuito, invia una richiesta
POSTal metodoinstances.insert. Nel corpo della richiesta, includi il camporesourcePolicies.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 la policy di posizionamento distribuitoZONE: la zona in cui creare la VM e in cui si trova il tipo di macchina. Puoi specificare solo una zona all'interno della regione della policy di posizionamento distribuito.VM_NAME: il nome della VM da creareMACHINE_TYPE: il tipo di macchina per la VMIMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempiodebian-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 specifichifamily/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 distribuitoPOLICY_NAME: il nome di una policy di posizionamento distribuito esistente
Se vuoi, per specificare il dominio di disponibilità in cui creare la VM, includi il campo
availabilityDomainnel 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_NUMBERcon il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento distribuito. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.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 istanze in blocco
Prima di creare istanze in blocco che specificano una policy di posizionamento distribuito, assicurati di eseguire quanto segue:
Puoi creare in blocco solo istanze che specificano una policy di posizionamento distribuito nella stessa regione della policy di posizionamento.
Quando crei più istanze in blocco con una policy di posizionamento distribuito, puoi facoltativamente specificare il dominio di disponibilità in cui creare le istanze. Evita di creare tutte le istanze in un unico dominio. Altrimenti non sei in grado di ridurre il rischio che un singolo errore hardware influisca su tutte le tue istanze.
Per creare in blocco istanze che specificano una policy di posizionamento distribuito, seleziona una delle seguenti opzioni:
gcloud
Per creare in blocco istanze che specificano una policy di posizionamento distribuito, utilizza il comando
gcloud compute instances bulk createcon il flag--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 \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONESostituisci quanto segue:
COUNT: il numero di istanze da creare.MACHINE_TYPE: il tipo di macchina per le istanze.NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri nel nome di una VM, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo divm-#per il pattern del nome genera istanze con nomi che iniziano convm-1,vm-2e via di seguito fino al numero di istanze specificato daCOUNT.POLICY_NAME: il nome di una policy di posizionamento distribuito esistenteZONE: la zona in cui creare le istanze in blocco.
Se vuoi, per specificare il dominio di disponibilità in cui creare le istanze in blocco, 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=ZONESostituisci
DOMAIN_NUMBERcon il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento distribuito. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.REST
Per creare in blocco istanze che specificano una policy di posizionamento distribuito, esegui
POSTal metodoinstances.bulkInsert. Nel corpo della richiesta, includi il camporesourcePolicies.Ad esempio, per creare in blocco più istanze in un'unica zona e specificare un pattern di nomi per le istanze, invia una richiesta
POSTnel 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": [ "POLICY_NAME" ] } }Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento distribuitoZONE: la zona in cui creare le istanze in blocco.COUNT: il numero di istanze da creare.NAME_PATTERN: il pattern del nome per le istanze. Per sostituire una sequenza di numeri nel nome di una VM, utilizza una sequenza di caratteri hash (#). Ad esempio, l'utilizzo divm-#per il pattern del nome genera istanze con nomi che iniziano convm-1,vm-2e via di seguito fino al numero di istanze specificato daCOUNT.MACHINE_TYPE: il tipo di macchina per le istanze.IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempiodebian-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 specifichifamily/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.
POLICY_NAME: il nome di una policy di posizionamento distribuito esistente
Se vuoi, per specificare il dominio di disponibilità in cui creare le istanze in blocco, includi il campo
availabilityDomainnel 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_NUMBERcon il numero del dominio di disponibilità in cui posizionare la VM. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento distribuito. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.Per saperne di più sulle opzioni di configurazione per la creazione di istanze in blocco, vedi Crea istanze in blocco.
Applica la policy durante la creazione di un template di istanza
Prima di creare un template di istanza che specifica una policy di posizionamento distribuito, considera quanto segue:
Se vuoi creare un template di istanza regionale, il template e la policy di posizionamento distribuito devono trovarsi nella stessa regione. In caso contrario, la creazione del template di istanza non andrà a buon fine.
Evita di creare tutte le istanze all'interno di un unico dominio di disponibilità. Altrimenti non sei in grado di ridurre il rischio che un singolo errore hardware influisca su tutte le tue istanze.
Dopo aver creato un template di istanza che specifica una policy di posizionamento distribuito, puoi utilizzarlo per eseguire queste operazioni:
Per creare un template di istanza regionale e una nuova policy di posizionamento distribuito con otto domini di disponibilità, utilizza la console Google Cloud . Per creare un template di istanza globale o regionale e specificare una policy di posizionamento distribuito esistente, utilizza gcloud CLI o l'API REST:
Console
Nella console Google Cloud , vai alla pagina Template di istanza.
Fai clic su Crea modello istanza. Viene visualizzata la pagina Crea un template di istanza.
Nel campo Regione, specifica la regione in cui vuoi creare la policy di posizionamento distribuito e il template di istanza.
Nella sezione Configurazione macchina, specifica una serie e un tipo di macchina.
Nella sezione Placement policy (Policy di posizionamento), nell'elenco Placement policy (Policy di posizionamento), seleziona Spread (Distribuzione).
Fai clic su Crea.
gcloud
Per creare un template di istanza che specifica una policy di posizionamento distribuito, utilizza il comando
gcloud compute instance-templates createcon il flag--resource-policies.Ad esempio, per creare un template di istanza globale che specifica una policy di posizionamento distribuito, esegui questo comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAMESostituisci quanto segue:
INSTANCE_TEMPLATE_NAME: il nome del template di istanza.MACHINE_TYPE: il tipo di macchina per le istanze create utilizzando il modello di istanza.POLICY_NAME: il nome di una policy di posizionamento distribuito esistente
Se vuoi, per specificare il dominio di disponibilità in cui creare le istanze, includi il flag
--availability-domain.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAMESostituisci
DOMAIN_NUMBERcon il numero del dominio di disponibilità in cui creare le istanze. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.REST
Per creare un template di istanza che specifichi una policy di posizionamento distribuito, invia una richiesta
POSTa uno dei seguenti metodi:Per creare un template di istanza globale: metodo
instanceTemplates.insertPer creare un template di istanza regionale: metodo
regionInstanceTemplates.insert
Nel corpo della richiesta, specifica il campo
resourcePolicies.Ad esempio, per creare un template di istanza globale che specifichi una policy di posizionamento distribuito, effettua una richiesta
POSTcome 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 la policy di posizionamento distribuitoINSTANCE_TEMPLATE_NAME: il nome del template di istanzaIMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempiodebian-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 specifichifamily/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: il tipo di macchina per le istanze create utilizzando il modello di istanza.POLICY_NAME: il nome di una policy di posizionamento distribuito esistente
Se vuoi, per specificare il dominio di disponibilità in cui creare le istanze, includi il campo
availabilityDomainnel 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_NUMBERcon il numero del dominio di disponibilità in cui creare le istanze. Il valore deve essere compreso tra1e il numero di domini specificati nella policy di posizionamento. Per verificare il numero di domini in una policy di posizionamento distribuito, visualizza i dettagli della policy.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 distribuito, puoi utilizzare il template per:
Applica la policy durante la creazione di un MIG
Puoi creare istanze che specificano una policy di posizionamento distribuito 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 distribuito, seleziona una delle seguenti opzioni:
gcloud
Per creare un MIG utilizzando un template di istanza che specifica una policy di posizionamento distribuito, 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 distribuito, esegui questo comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONESostituisci quanto segue:
INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creareSIZE: la dimensione del gruppo di istanze gestiteINSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento distribuitoZONE: la zona in cui creare il gruppo di istanze gestite, che deve trovarsi all'interno della regione in cui si trova la policy di posizionamento distribuito
REST
Per creare un MIG utilizzando un template di istanza che specifica una policy di posizionamento distribuito, invia una richiesta
POSTa uno dei seguenti metodi:Per creare un gruppo di istanze gestite a livello di zona:
instanceGroupManagers.insertmetodo.Per creare un gruppo di istanze gestite a livello di regione:
regionInstanceGroupManagers.insertmetodo.
Ad esempio, per creare un MIG a livello di zona utilizzando un template di istanza globale che specifica una policy di posizionamento distribuito, invia una richiesta
POSTcome 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 distribuito e il template di istanza che specifica la policy di posizionamentoZONE: la zona in cui creare il gruppo di istanze gestite, che deve rientrare nella regione in cui si trova la policy di posizionamento distribuitoINSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creareSIZE: la dimensione del gruppo di istanze gestiteINSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento distribuito
Per saperne di più sulle opzioni di configurazione per la creazione di gruppi di istanze gestite, vedi Scenari di base per la creazione di gruppi di istanze gestite (MIG).
Applica la policy a un gruppo di istanze gestite esistente
Puoi applicare una policy di posizionamento distribuito 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 distribuito, seleziona una delle seguenti opzioni:
gcloud
Per aggiornare un MIG in modo che utilizzi un template di istanza che specifica una policy di posizionamento distribuito, 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 distribuito e sostituire le istanze esistenti del MIG con nuove istanze che specificano le proprietà del template, esegui questo comando:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_NAME \ --zone=ZONESostituisci quanto segue:
INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite esistenteINSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento distribuitoZONE: la zona in cui si trova il gruppo di istanze gestite Puoi applicare la policy di posizionamento distribuito 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 distribuito e applicare automaticamente le proprietà del template e della policy di posizionamento alle istanze esistenti nel MIG, invia una richiesta
PATCHa uno dei seguenti metodi:Per aggiornare un gruppo di istanze gestite a livello di zona: metodo
instanceGroupManagers.insertPer aggiornare un gruppo di istanze gestite a livello di regione: metodo
regionInstanceGroupManagers.insert
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 distribuito 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/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, la policy di posizionamento distribuito e il template di istanza che specifica la policy di posizione distribuitoZONE: la zona in cui si trova il gruppo di istanze gestite Puoi applicare la policy di posizionamento distribuito solo a un MIG che si trova nella sua stessa regione.INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite esistenteINSTANCE_TEMPLATE_NAME: il nome di un template di istanza globale esistente che specifica una policy di posizionamento distribuito
Per saperne di più sulle opzioni di configurazione per aggiornare le istanze in un MIG, consulta Aggiorna e applica nuove configurazioni alle istanze in un MIG.
Passaggi successivi
Scopri come visualizzare le policy di posizionamento.
Scopri come sostituire, rimuovere o eliminare le policy di posizionamento.
Scopri come eseguire le seguenti operazioni con una VM che specifica una policy di posizionamento:
Scopri di più sul processo di migrazione live durante gli eventi di manutenzione.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2026-02-14 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-02-14 UTC."],[],[]] -