Questo documento descrive come migliorare l'affidabilità delle istanze di macchine virtuali (VM) creando e applicando loro policy di posizionamento distribuito. Per scoprire di più sulle norme di posizionamento, incluse le limitazioni e i prezzi, consulta Panoramica delle norme di posizionamento.
Una policy di posizionamento spread specifica che le VM devono essere distribuite in domini di disponibilità diversi. Questa distribuzione contribuisce a mitigare interruzioni specifiche della località, come errori hardware, ed è utile quando si eseguono carichi di lavoro distribuiti e replicati 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 è
il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle 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
-
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.
- Set a default region and zone.
-
Per creare policy di posizionamento:
compute.resourcePolicies.create
sul progetto -
Per applicare una policy di posizionamento alle 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 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 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 un template di istanza:
compute.instanceTemplates.create
sul progetto -
Per creare un gruppo di istanze gestite (MIG):
compute.instanceGroupManagers.create
sul progetto POLICY_NAME
: il nome della policy di posizionamento spread.DOMAIN_COUNT
: il numero distinto di domini di disponibilità in cui inserire le VM. Il valore deve essere compreso tra1
e8
.REGION
: la regione in cui creare la policy di posizionamento.PROJECT_ID
: l'ID del progetto in cui creare il criterio di posizionamento.REGION
: la regione in cui creare la policy di posizionamento.POLICY_NAME
: il nome della policy di posizionamento spread.DOMAIN_COUNT
: il numero distinto di domini di disponibilità in cui inserire le VM. Il valore deve essere compreso tra1
e8
.- Applica il criterio a una VM esistente.
- Applica il criterio durante la creazione di una VM.
- Applica il criterio durante la creazione collettiva delle VM.
- Applica il criterio durante la creazione di un modello di istanza.
- Applica la norma alle VM in un MIG.
Se la policy di posizionamento distribuito specifica più domini di disponibilità, puoi applicarla a una VM senza arrestarla. Tuttavia, la VM potrebbe dover essere spostata in un altro dominio di disponibilità. Durante questo processo, Compute Engine arresta o esegue la migrazione live della VM in base alla normativa di manutenzione dell'host.
La VM e i criteri di posizionamento spread 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 dius-central1
. Se devi migrare una VM in un'altra regione, consulta Sposta una VM tra zone o regioni.VM_NAME
: il nome di una VM esistente.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.ZONE
: la zona in cui si trova la VM.PROJECT_ID
: l'ID del progetto in cui si trovano la norma di posizionamento spread 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 norma di posizionamento di distribuzione.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.VM_NAME
: il nome della VM da creare.MACHINE_TYPE
: il tipo di macchina per la VM.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.ZONE
: la zona in cui creare la VM.PROJECT_ID
: l'ID del progetto in cui si trova la policy di posizionamento della distribuzione.ZONE
: 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 del criterio di posizionamento spread.VM_NAME
: il nome della VM da creare.MACHINE_TYPE
: il tipo di macchina per la VM.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-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
. Specifica 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 norma di posizionamento di distribuzione.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.Puoi creare VM in blocco che specificano una policy di posizionamento distribuito nella stessa regione della policy di posizionamento.
Quando crei VM in blocco con una policy di posizionamento distribuito, puoi specificare facoltativamente il dominio di disponibilità in cui creare le VM. Evita di creare tutte le VM in un unico dominio. In caso contrario, non mitighi il rischio che un singolo errore hardware influisca su tutte le tue VM.
COUNT
: il numero di VM da creare.MACHINE_TYPE
: il tipo di macchina per le VM.NAME_PATTERN
: il pattern del nome delle VM. Per sostituire una sequenza di numeri in un nome VM, utilizza una sequenza di caratteri cancelletto (#
). Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con nomi che iniziano convm-1
,vm-2
e continuano fino al numero di VM specificato daCOUNT
.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.ZONE
: la zona in cui creare le VM in blocco.PROJECT_ID
: l'ID del progetto in cui si trova la policy di posizionamento della distribuzione.ZONE
: la zona in cui creare le VM in blocco.COUNT
: il numero di VM da creare.NAME_PATTERN
: il pattern del nome delle VM. Per sostituire una sequenza di numeri in un nome VM, utilizza una sequenza di caratteri cancelletto (#
). Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con nomi che iniziano convm-1
,vm-2
e continuano fino al numero di VM specificato daCOUNT
.MACHINE_TYPE
: il tipo di macchina per le VM.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-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
. Specifica 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 spread esistente.Se vuoi creare un modello di istanza regionale, crea il modello nella stessa regione della policy di posizionamento spread. In caso contrario, la creazione del modello di istanza non andrà a buon fine.
Quando crei un modello di istanza, puoi specificare facoltativamente il dominio di disponibilità in cui creare le VM. Evita di creare tutte le VM in un unico dominio. In caso contrario, non mitighi il rischio che un singolo errore hardware influisca su tutte le tue VM.
INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.MACHINE_TYPE
: il tipo di macchina per le VM create utilizzando il modello di istanza.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.Per creare un modello di istanza globale: metodo
instanceTemplates.insert
.Per creare un modello di istanza regionale: metodo
regionInstanceTemplates.insert
.PROJECT_ID
: l'ID del progetto in cui si trova la policy di posizionamento della distribuzione.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-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
. Specifica 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 VM create utilizzando il modello di istanza.POLICY_NAME
: il nome di una policy di posizionamento spread esistente.INSTANCE_GROUP_NAME
: il nome del MIG da creare.SIZE
: la dimensione del MIG.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza globale esistente che specifica una policy di posizionamento spread.ZONE
: la zona in cui creare il MIG, che deve trovarsi all'interno della regione in cui si trova il criterio di posizionamento spread.Per creare un MIG a livello di zona: metodo
instanceGroupManagers.insert
.Per creare un MIG a livello di regione: metodo
regionInstanceGroupManagers.insert
.PROJECT_ID
: l'ID del progetto in cui si trovano il criterio di posizionamento spread e il modello di istanza che specifica il criterio di posizionamento.ZONE
: la zona in cui creare il MIG, che deve trovarsi all'interno della regione in cui si trova la norma di posizionamento spread.INSTANCE_GROUP_NAME
: il nome del MIG da creare.SIZE
: la dimensione del MIG.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza globale esistente che specifica una policy di posizionamento spread.INSTANCE_GROUP_NAME
: il nome di un MIG esistente.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza globale esistente che specifica una policy di posizionamento spread.ZONE
: la zona in cui si trova il MIG. Puoi applicare la policy di posizionamento distribuito solo a un MIG che si trova nella stessa regione della policy di posizionamento.Per aggiornare un MIG a livello di zona: metodo
instanceGroupManagers.insert
.Per aggiornare un MIG a livello di regione: metodo
regionInstanceGroupManagers.insert
.PROJECT_ID
: l'ID del progetto che hai utilizzato per creare un MIG esistente, la policy di posizionamento spread e il modello di istanza che specifica la policy di posizionamento spread.ZONE
: la zona in cui si trova il MIG. Puoi applicare la policy di posizionamento distribuito solo a un MIG che si trova nella stessa regione della policy di posizionamento.INSTANCE_GROUP_NAME
: il nome di un MIG esistente.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza globale esistente che specifica una policy di posizionamento spread.Scopri come visualizzare le norme 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.
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 spread alle VM, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) nel 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 VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e applicare un criterio di posizionamento distribuito alle VM sono necessarie le seguenti autorizzazioni:
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 VM, 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 VM siano interessate da un singolo errore hardware. Per saperne di più, consulta Informazioni sulle norme di posizionamento spread.
Per creare una policy di posizionamento spread, seleziona una delle seguenti opzioni:
gcloud
Per creare una policy di posizionamento spread, utilizza il comando
gcloud compute resource-policies create group-placement
con il flag--availability-domain-count
.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGION
Sostituisci quanto segue:
REST
Per creare una policy di posizionamento distribuito, invia una richiesta
POST
al 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:
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 VM, modelli di istanza o MIG.
Per applicare una policy di posizionamento distribuito a una risorsa Compute Engine, seleziona uno dei seguenti metodi:
Dopo aver applicato una policy di posizionamento distribuito a una VM, puoi verificare il dominio di disponibilità in cui si trova la VM visualizzandone i dettagli e controllando il valore del campo
availabilityDomain
.Applica il criterio a una VM esistente
Prima di applicare una policy di posizionamento distribuito a una VM esistente, tieni presente quanto segue:
Se vuoi specificare il dominio di disponibilità in cui inserire la VM, applica la policy di posizionamento alla VM aggiornandone le proprietà. Quando aggiorni le proprietà della VM, assicurati di includere i campi
resourcePolicies
escheduling.availabilityDomain
.Per applicare una 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=ZONE
Sostituisci quanto segue:
REST
Per applicare una policy di posizionamento distribuito a una VM esistente, invia una richiesta
POST
al 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:
Applica il criterio durante la creazione di una VM
Puoi creare una VM che specifica una policy di posizionamento distribuito 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 create
con il flag--resource-policies
.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Sostituisci quanto segue:
Se vuoi specificare il dominio di disponibilità in cui creare la VM, includi il flag
--availability-domain
.gcloud compute instances create VM_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME \ --zone=ZONE
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui inserire la VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento della diffusione. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.REST
Per creare una VM che specifica una policy di posizionamento distribuito, invia una richiesta
POST
al 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:
(Facoltativo) Per specificare il dominio di disponibilità in cui creare la VM, includi il campo
availabilityDomain
nel corpo della richiesta.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } }
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui inserire la VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento della diffusione. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.Per saperne di più sulle opzioni di configurazione per creare una VM, consulta Crea e avvia un'istanza VM.
Applica il criterio durante la creazione collettiva delle VM
Prima di creare VM collettivamente che specificano una policy di posizionamento distribuito, assicurati di quanto segue:
Per creare in blocco VM che specificano una policy di posizionamento distribuito, seleziona una delle seguenti opzioni:
gcloud
Per creare più VM in blocco che specificano una policy di posizionamento distribuito, utilizza il comando
gcloud compute instances bulk create
con il flag--resource-policies
.Ad esempio, per creare VM collettivamente in una singola zona e specificare un pattern di nomi per le VM, esegui il seguente comando:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Sostituisci quanto segue:
Se vuoi specificare il dominio di disponibilità in cui creare le VM 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=ZONE
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui inserire la VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento della diffusione. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.REST
Per creare più VM contemporaneamente che specificano una policy di posizionamento distribuito, invia una richiesta
POST
al metodoinstances.bulkInsert
. Nel corpo della richiesta, includi il camporesourcePolicies
.Ad esempio, per creare VM collettivamente in una singola zona e specificare un pattern di nomi per le VM, invia una richiesta
POST
come segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": "COUNT", "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ] } }
Sostituisci quanto segue:
In alternativa, per specificare il dominio di disponibilità in cui creare le VM in blocco, includi il campo
availabilityDomain
nel corpo della richiesta.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": "COUNT", "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } } }
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui inserire la VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento della diffusione. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.Per saperne di più sulle opzioni di configurazione per creare VM in blocco, consulta Crea più VM in blocco.
Applica il criterio durante la creazione di un modello di istanza
Prima di creare un modello di istanza che specifica una policy di posizionamento spread, assicurati di quanto segue:
Dopo aver creato un modello di istanza che specifica una norma di posizionamento spread, puoi utilizzarlo per:
Per creare un modello di istanza che specifica una policy di posizionamento spread, seleziona una delle seguenti opzioni:
gcloud
Per creare un modello di istanza che specifica una policy di posizionamento spread, utilizza il comando
gcloud compute instance-templates create
con il flag--resource-policies
.Ad esempio, per creare un modello di istanza globale che specifica una policy di posizionamento spread, esegui questo comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Sostituisci quanto segue:
Se vuoi specificare il dominio di disponibilità in cui creare le VM, includi il flag
--availability-domain
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --availability-domain=DOMAIN_NUMBER \ --machine-type=MACHINE_TYPE \ --resource-policies=POLICY_NAME
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui creare le VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.REST
Per creare un modello di istanza che specifica una policy di posizionamento spread, effettua una richiesta
POST
con uno dei seguenti metodi:Nel corpo della richiesta, specifica il campo
resourcePolicies
.Ad esempio, per creare un modello di istanza globale che specifica una policy di posizionamento spread, invia una richiesta
POST
come segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ] } }
Sostituisci quanto segue:
(Facoltativo) Per specificare il dominio di disponibilità in cui creare le VM, includi il campo
availabilityDomain
nel corpo della richiesta.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "resourcePolicies": [ "POLICY_NAME" ], "scheduling": { "availabilityDomain": DOMAIN_NUMBER } } }
Sostituisci
DOMAIN_NUMBER
con il numero del dominio di disponibilità in cui creare le VM. Il valore deve essere compreso tra1
e il numero di domini specificati nelle norme di posizionamento. Per verificare il numero di domini in una norma di posizionamento spread, visualizza i dettagli della norma di posizionamento.Per saperne di più sulle opzioni di configurazione per creare un modello di istanza, consulta Creare modelli di istanza.
Applica il criterio alle VM in un MIG
Dopo aver creato un modello di istanza che specifica una normativa di posizionamento spread, puoi utilizzare il modello per:
Applica il criterio durante la creazione di un MIG
Puoi creare VM che specificano una policy di posizionamento distribuito solo se le VM si trovano nella stessa regione della policy di posizionamento.
Per creare un MIG utilizzando un modello di istanza che specifica una policy di posizionamento spread, seleziona una delle seguenti opzioni:
gcloud
Per creare un MIG utilizzando un modello di istanza che specifica una policy di posizionamento spread, utilizza il comando
gcloud compute instance-groups managed create
.Ad esempio, per creare un MIG a livello di zona utilizzando un modello di istanza globale che specifica una policy di posizionamento spread, esegui il seguente comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Sostituisci quanto segue:
REST
Per creare un MIG utilizzando un modello di istanza che specifica una policy di posizionamento spread, effettua una richiesta
POST
a uno dei seguenti metodi:Ad esempio, per creare un MIG a livello di zona utilizzando un modello di istanza globale che specifica una policy di posizionamento spread, invia una richiesta
POST
come segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "versions": [ { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" } ] }
Sostituisci quanto segue:
Per saperne di più sulle opzioni di configurazione per creare i gruppi di istanze gestite, consulta Scenari di base per la creazione di gruppi di istanze gestite.
Applica il criterio a un MIG esistente
Puoi applicare una policy di posizionamento spread a un MIG esistente solo se il MIG 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 modello di istanza che specifica una policy di posizionamento spread, seleziona una delle seguenti opzioni:
gcloud
Per aggiornare un MIG in modo che utilizzi un modello di istanza che specifica una policy di posizionamento spread, 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 modello di istanza che specifica una policy di posizionamento spread e sostituire le VM esistenti del MIG con nuove VM che specificano le proprietà del modello, esegui il seguente comando:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE
Sostituisci quanto segue:
REST
Per aggiornare un MIG in modo che utilizzi un modello di istanza che specifica una policy di posizionamento spread e applicare automaticamente le proprietà del modello 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 modello di istanza globale che specifica una policy di posizionamento spread e sostituire le VM esistenti del MIG con nuove VM che specificano le proprietà del modello, invia 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:
Per ulteriori informazioni sulle opzioni di configurazione per aggiornare le VM in un MIG, consulta Aggiorna e applica nuove configurazioni alle VM in un MIG.
Passaggi successivi
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 2025-07-09 UTC.
-