Quando vuoi creare un numero elevato di istanze di macchine virtuali (VM) che sono identiche e indipendenti l'una dall'altra, crea le VM in blocco utilizzando Google Cloud CLI o l'API Compute Engine. Puoi creare queste VM zone di una regione o distribuite in determinate zone.
Per ulteriori dettagli e le limitazioni associate, consulta Informazioni sulla creazione collettiva di delle VM.
Prima di iniziare
- Per le VM e le eventuali risorse correlate che prevedi di creare, assicurati di avere una quota sufficiente e autorizzazioni richieste.
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
compute.instances.create
del 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 modello di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul modello di istanza -
Per assegnare una rete legacy alla VM:
compute.networks.use
del progetto -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
del progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy:
compute.networks.useExternalIp
del progetto -
Per specificare una subnet per la VM:
compute.subnetworks.use
nel progetto o nella subnet scelta -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
del progetto o della subnet scelta -
Per impostare i metadati di un'istanza VM per la VM:
compute.instances.setMetadata
del progetto -
Per impostare i tag per la VM:
compute.instances.setTags
sulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM -
Per impostare un account di servizio da utilizzare per la VM:
compute.instances.setServiceAccount
sulla VM -
Per creare un nuovo disco per la VM:
compute.disks.create
del 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 NAME_PATTERN: il pattern del nome delle VM. Utilizza un sequenza di caratteri hash (
#
) da sostituire a Compute Engine con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con nomivm-1
,vm-2
e così via, fino al numero VM specificate da--count
, che devono essere minori o uguali al numero di VM consentite dal pattern del nome.Quando si utilizza un pattern del nome, Compute Engine cerca di evitare in conflitto controllando i nomi delle VM esistenti create dalla precedente richieste.
PREDEFINED_NAMES: un elenco di nomi predefiniti per le VM da creare. Se usi questo flag e specifichi
COUNT
,COUNT
deve uguale al numero di nomi forniti.REGION: la regione in cui creare le VM.
COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzando--predefined-names
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.LOCATION_POLICY: le zone da includere o escludere all'interno di una regione. Utilizza un elenco di coppie chiave-valore, con la zona come chiave e il criterio come valore. I valori validi per il criterio sono
allow
, che è l'impostazione predefinita edeny
. Di seguito è riportato un valore di esempio per questa segnalazione:--location-policy=us-east1-b=allow,us-east1-c=deny
TARGET_SHAPE: la distribuzione delle VM su per le zone specificate. Utilizza il flag
--location-policy
per specificare diverse. La tabella seguente mostra i valori validi per questo flag:Valore Descrizione ANY_SINGLE_ZONE
Applica il posizionamento delle VM in una singola zona e assegna priorità all'utilizzo di prenotazioni inutilizzate. Utilizza questa impostazione per evitare il traffico di rete tra zone o per ridurre la latenza di rete. Questo è il valore predefinito. BALANCED
Tenta di distribuire le VM in modo uniforme in tutte le zone della regione. ANY
Consente la distribuzione delle VM su più zone all'interno di una regione. Scegli le zone con risorse disponibili e che massimizzano le prenotazioni zonali non utilizzate. PROJECT_ID: l'ID progetto.
REGION: la regione in cui creare le VM.
NAME_PATTERN: il pattern del nome delle VM. Specifica questo o
perInstanceProperties
. Utilizza una sequenza di hash (#
) di testo che Compute Engine deve sostituire con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern di nomi genera VM con nomivm-1
,vm-2
e così via, fino al numero di VM specificato da--count
, che deve essere inferiore o uguale al numero di VM consentito dal pattern di nomi.Quando utilizzi un pattern di nomi, Compute Engine cerca di evitare conflitti di nomi controllando i nomi delle VM esistenti create da richieste precedenti.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: un elenco di nomi predefiniti da creare per le VM. Specifica questo valore o
namePattern
. Se utilizzi questo e specificandoCOUNT
,COUNT
deve essere uguale al numero di nomi fornito.COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzandoperInstanceProperties
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.LOCATION_POLICY: le zone da includere o escludere all'interno di una regione. Utilizza un elenco di coppie chiave-valore, con la zona come chiave e il criterio come valore. I valori validi per il criterio sono
ALLOW
, che è l'impostazione predefinita eDENY
. Di seguito è riportato un esempio di valore per questo campo:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: la distribuzione delle VM su in specifiche zone. Utilizza il campo
locationPolicy
per specificare le zone. La la seguente tabella mostra i valori validi per questo campo:Valore Descrizione ANY_SINGLE_ZONE
Applica il posizionamento delle VM in una singola zona e assegna priorità all'utilizzo di prenotazioni inutilizzate. Utilizza questa impostazione per evitare il traffico di rete tra zone o per ridurre la latenza di rete. Questo è il valore predefinito. BALANCED
Tenta di distribuire le VM in modo uniforme in tutte le zone della regione. ANY
Consente la distribuzione delle VM su più zone all'interno di una regione. Sceglie zone con risorse disponibili e che massimizzano quelle inutilizzate a livello di zona. NAME_PATTERN: il pattern del nome delle VM. Utilizza un sequenza di caratteri hash (
#
) da sostituire a Compute Engine con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con nomivm-1
,vm-2
e così via, fino al numero VM specificate da--count
, che devono essere minori o uguali al numero di VM consentite dal pattern del nome.Quando si utilizza un pattern del nome, Compute Engine cerca di evitare in conflitto controllando i nomi delle VM esistenti create dalla precedente richieste.
PREDEFINED_NAMES: un elenco di nomi predefiniti per le VM da creare. Se usi questo flag e specifichi
COUNT
,COUNT
deve uguale al numero di nomi forniti.ZONE: la zona in cui creare le VM.
COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzando--predefined-names
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.PROJECT_ID: l'ID progetto.
ZONE: la zona in cui creare le VM.
NAME_PATTERN: il pattern del nome delle VM. Specifica questo o
perInstanceProperties
. Utilizza una sequenza di hash (#
) di testo che Compute Engine deve sostituire con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con i nomivm-1
,vm-2
e così via, fino al numero di VM specificato da--count
, che deve essere inferiore o uguale al numero di VM oggetto il pattern del nome consente.Quando utilizzi un pattern di nomi, Compute Engine cerca di evitare conflitti di nomi controllando i nomi delle VM esistenti create da richieste precedenti.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: un elenco di nomi predefiniti da creare per le VM. Specifica questo valore o
namePattern
. Se utilizzi questo e specificandoCOUNT
,COUNT
deve essere uguale al numero di nomi fornito.COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzandoperInstanceProperties
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.VM_NAME.c.PROJECT_ID.internal
quando abiliti il DNS globaleVM_NAME.ZONE.c.PROJECT_ID.internal
quando abiliti il DNS di zonaNAME_PATTERN: il pattern del nome delle VM. Utilizza un sequenza di caratteri hash (
#
) da sostituire a Compute Engine con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern del nome genera VM con nomivm-1
,vm-2
e così via, fino al numero VM specificate da--count
, che devono essere minori o uguali al numero di VM consentite dal pattern del nome.Quando si utilizza un pattern del nome, Compute Engine cerca di evitare in conflitto controllando i nomi delle VM esistenti create dalla precedente richieste.
PREDEFINED_NAMES: un elenco di nomi predefiniti per le VM da creare. Se usi questo flag e specifichi
COUNT
,COUNT
deve uguale al numero di nomi forniti.[VM_NAME=HOSTNAME, ...]: un l'elenco di coppie chiave-valore di nomi predefiniti per le VM e i nomi i nomi host di dominio che vuoi assegnare per le VM. I nomi host personalizzati devono conforme a RFC 1035 requisiti per i nomi host validi.
REGION: la zona in cui creare le VM.
COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzando--predefined-names
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.LOCATION_POLICY: le zone da includere o escludere all'interno di una regione. Utilizza un elenco di coppie chiave-valore, con la zona come chiave e il criterio come valore. I valori validi per il criterio sono
ALLOW
, che è l'impostazione predefinita eDENY
. Di seguito è riportato un esempio di valore per questo campo:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: la distribuzione delle VM su in specifiche zone. Utilizza il campo
locationPolicy
per specificare le zone. La la seguente tabella mostra i valori validi per questo campo:Valore Descrizione ANY_SINGLE_ZONE
Applica il posizionamento delle VM in una singola zona e assegna priorità all'utilizzo di prenotazioni inutilizzate. Utilizza questa impostazione per evitare il traffico di rete tra zone o per ridurre la latenza di rete. Questo è il valore predefinito. BALANCED
Tenta di distribuire le VM in modo uniforme in tutte le zone della regione. ANY
Consente la distribuzione delle VM su più zone all'interno di una regione. Scegli le zone con risorse disponibili e che massimizzano le prenotazioni zonali non utilizzate. PROJECT_ID: l'ID progetto.
REGION: la regione in cui creare le VM.
NAME_PATTERN: il pattern del nome delle VM. Specifica questo o
perInstanceProperties
. Utilizza una sequenza di hash (#
) di testo che Compute Engine deve sostituire con una sequenza di numeri. Ad esempio, l'utilizzo divm-#
per il pattern di nomi genera VM con nomivm-1
,vm-2
e così via, fino al numero di VM specificato da--count
, che deve essere inferiore o uguale al numero di VM consentito dal pattern di nomi.Quando utilizzi un pattern di nomi, Compute Engine cerca di evitare conflitti di nomi controllando i nomi delle VM esistenti create da richieste precedenti.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: un elenco di nomi predefiniti da creare per le VM. Specifica questo o
namePattern
. Se utilizzi questo e specificandoCOUNT
,COUNT
deve essere uguale al numero di nomi fornito.HOSTNAME_1, HOSTNAME_2, ...: dominio completo che vuoi assegnare alle VM. I nomi host personalizzati devono conforme a RFC 1035 requisiti per i nomi host validi.
Ad esempio, per creare due VM
vm-1
evm-2
con rispettivamentemy-host1234.example.com
etest.example.com
, specifica la proprietàhostname
inperInstanceProperties
come segue:{ ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ... },
COUNT: il numero di VM da creare. Deve essere inferiore o uguale al numero di VM consentite da
NAME_PATTERN
. Oppure, se utilizzandoperInstanceProperties
, non devi specificareCOUNT
, ma se deve essere uguale al numero di nomi forniti.MIN_COUNT: il numero minimo di VM da creare. La la seguente tabella descrive il comportamento della richiesta in base a come imposta questo flag:
Valore Descrizione Non impostato Il valore predefinito è COUNT
. Se Compute Engine non può creare il numero di VM specificato daCOUNT
, non riesce e non vengono create VM.1
Compute Engine crea il maggior numero possibile di VM fino a COUNT
.Più di 1
e meno diCOUNT
Compute Engine crea almeno MIN_COUNT
VM fino a un massimo diCOUNT
VM. SeMIN_COUNT
VM non può la richiesta non riesce e non vengono create VM.LOCATION_POLICY: le zone da includere o escludere all'interno di una regione. Utilizza un elenco di coppie chiave-valore, con la zona come chiave e il criterio come valore. I valori validi per il criterio sono
ALLOW
, che è l'impostazione predefinita eDENY
. Di seguito è riportato un esempio di valore per questo campo:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_SHAPE: la distribuzione delle VM su in specifiche zone. Utilizza il campo
locationPolicy
per specificare le zone. La la seguente tabella mostra i valori validi per questo campo:Valore Descrizione ANY_SINGLE_ZONE
Applica il posizionamento delle VM in una singola zona e assegna priorità all'utilizzo di prenotazioni inutilizzate. Utilizza questa impostazione per evitare il traffico di rete tra zone o per ridurre la latenza di rete. Questo è il valore predefinito. BALANCED
Tenta di distribuire le VM in modo uniforme in tutte le zone della regione. ANY
Consente la distribuzione delle VM su più zone all'interno di una regione. Sceglie zone con risorse disponibili e che massimizzano quelle inutilizzate a livello di zona. PROJECT_ID
: l'ID del progetto in cui ti trovi la creazione di VMREGION
: la regione in cui stai creando le VMZONE
: la zona in cui stai creando le VMOPERATION_ID
: l'ID dell'operazione di inserimento collettivostatus
: lo stato è uno dei seguenti:CREATING
: è in corso la creazione della VMROLLING_BACK
: la richiesta non è riuscita ed è in corso il rollbackDONE
: creazione o rollback della VM completato
targetVmCount
: il numero di VM da creare nella zona specificatacreatedVmCount
: il numero di VM già create nella zona specificatafailedToCreateVmCount
: il numero di VM che non è stato possibile creare nella zona specificatadeletedVmCount
: il numero di VM eliminate nell'ambito del rollback di un'operazione non riuscitaDa
Operation
restituito dalla richiesta, ottieni il valore dell'attributo proprietàoperationGroupId
.Utilizza la proprietà
operationGroupId
come filtro con il comandogcloud compute operations list
per cercare VM in tutte le operazioni e in tutte le zone del progetto associati alla richiesta a livello di regione o zona:gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID)
Per ottenere le altre proprietà della VM, esegui una delle seguenti operazioni:
Nell'elenco delle operazioni,
targetLink
rappresenta il percorso di la VM. Utilizza lagcloud compute instances describe
comando con questo percorso come nome della VM per recuperare le relative proprietà:gcloud compute instances describe VM_NAME
Utilizza la
gcloud compute instances list
comando con un filtro che include i nomi delle VM nell'elenco delle operazioni:gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Utilizza il
gcloud compute instances list
comando per recuperare le proprietà delle VM di tutte le zone e regioni e filtrare in base a un'etichetta univoca per le istanze o ai relativi nomi:gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Da
Operation
restituito dalla richiesta, ottieni il valore dell'attributo proprietàoperationGroupId
.Utilizza la proprietà
operationGroupId
per recuperare l'elenco delle VM operazioni associate alla richiesta a livello di regione o zona:Se hai inviato una richiesta a livello di regione, per eseguire una ricerca per tutte le operazioni e per tutte le zone del progetto, utilizza
globalOperations.aggregatedList
metodo e includi la proprietàoperationGroupId
come filtro:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID)
Se hai inviato una richiesta a livello di zona, per elencare le operazioni utilizza Metodo
zoneOperations.get
e includi la proprietàoperationGroupId
nel corpo della richiesta:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
Recupera le altre proprietà della VM in uno dei seguenti modi:
Nell'elenco delle operazioni,
targetLink
rappresenta il percorso VM. Utilizza lainstances.get
con questo percorso come nome della VM per recuperare tutte le relative proprietà:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME
Utilizza la
instances.get
metodo con un filtro che include i nomi delle VM nell'elenco delle operazioni:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Utilizza la
instances.aggregatedList
metodo per ottenere le proprietà delle VM in tutte le zone e regioni filtra in base a un'etichetta univoca per le istanze o alle relative nomi:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Specifica il numero di VM da creare all'interno di una zona.
nTarget = 1000
Designa le regioni in cui tentare di creare le VM.
acceptableRegions = ["us-central1", "us-east1", "us-west1"]
Esegui l'iterazione attraverso le regioni e prova a creare le VM in ogni regione fino all'esito positivo.
for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
Specifica il numero di VM da creare e la regione in cui crearle.
nTarget = 1000 region = "us-central1"
Specifica le famiglie di macchine su cui tentare di creare le VM.
acceptableMachineFamilies = ["n2","c2","e2","n1"]
Esegui l'iterazione attraverso l'insieme di tipi di macchina e prova a creare le VM sulla il tipo di macchina finché l'operazione non riesce.
for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
Specifica il numero di VM da creare, un contatore per tenere traccia del totale numero di VM create, la regione in cui creare le VM e una variabile e archiviare la zona in cui Compute Engine crea le VM.
nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
Esegui una richiesta iniziale per creare 5000 VM, salva la zona restituita dalla richiesta e aggiorna il contatore del numero di VM create.
call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
Continua a inviare richieste per creare fino a 5000 VM alla volta nella zona finché Compute Engine non crea il numero specificato di VM.
while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
Specifica il numero di VM da creare, la zona in cui crearle e un struttura di dati in cui archiviare i nomi.
nTarget = 1000 targetZone = "us-central-1a" names = []
Genera i nomi con pattern per le VM e aggiungi i nomi ai dati alla struttura del centro di costo.
for n in range(0, 1000): names.push("instance-%d".format(n))
Crea le VM e utilizza
perInstanceProperties
per specificare i nomi.call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
Ottieni i dettagli delle VM utilizzando
instances.list
con un filtro per i nomi delle VM per le quali restituire i dettagli.instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
Aggiungi le VM a un gruppo di istanze non gestite. Aggiunta di VM a un cluster gruppo di istanze consente di utilizzare Cloud Monitoring. Istanza non gestita gruppi non forniscono il bilanciamento del carico o la gestione della VM del ciclo di vita.
Utilizza le etichette. Le etichette consentono di organizzare le risorse utilizzando coppie chiave-valore coppie.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare le VM in blocco, chiedi all'amministratore di concederti Ruolo IAM Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per creare le VM in blocco. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare più VM contemporaneamente sono necessarie le seguenti autorizzazioni:
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.
Crea VM in blocco in una regione
Per creare collettivamente le VM in una regione, utilizza gcloud CLI o l'API Compute Engine.
Se specifichi un tipo di macchina o se supporti hardware aggiuntivo, come una GPU oppure un SSD locale, Compute Engine posiziona le VM in una zona all'interno che supporta il tipo di macchina e l'hardware aggiuntivo.
gcloud
Per creare collettivamente le VM in una regione, utilizza quanto segue
gcloud compute instances bulk create
comando:gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --region=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT \ ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_SHAPE ]
Sostituisci quanto segue:
REST
Per creare collettivamente le VM in una regione, utilizza quanto segue
instances.bulkInsert
:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_SHAPE" ... }
Sostituisci quanto segue:
Crea VM collettivamente in una zona
Per creare collettivamente le VM in una zona, utilizza gcloud CLI o l'API Compute Engine.
gcloud
Per creare collettivamente le VM in una zona specifica, utilizza quanto segue
gcloud compute instances bulk create
un comando kubectl.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]
Sostituisci quanto segue:
REST
Per creare collettivamente le VM in una zona, utilizza il seguente
instances.bulkInsert
gcloud.POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, ... }
Sostituisci quanto segue:
Creare collettivamente VM con nomi host personalizzati
Puoi creare collettivamente VM con nomi host personalizzati in una regione o in una zona con gcloud CLI o l'API Compute Engine.
Devi configurare manualmente il record DNS per il tuo nome host personalizzato. Per maggiori informazioni informazioni, consulta i limiti.
Se non specifichi un nome host, Compute Engine imposta il nome host per VM con uno dei seguenti criteri:
Per ulteriori informazioni, consulta i nomi DNS interni.
gcloud
Per creare VM in blocco con nomi host personalizzati in una regione specifica, utilizza seguendo comando
gcloud beta compute instances bulk create
.gcloud beta compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --per-instance-hostnames=[VM_NAME=HOSTNAME,...] \ --zone=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_SHAPE ]
Sostituisci quanto segue:
REST
Per creare collettivamente VM con nomi host personalizzati in una regione specifica, utilizza quanto segue Metodo
instances.bulkInsert
:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {"hostname": HOSTNAME_1}, "PREDEFINED_NAME_2": {"hostname": HOSTNAME_2}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_SHAPE" ... }
Sostituisci quanto segue:
Controllare lo stato di una richiesta per creare VM in blocco
Quando crei una richiesta di mutazione, Compute Engine restituisce un
operation
risorsa di cui puoi eseguire il polling per ottenere lo stato dell'operazione. Per maggiori informazioni consulta la sezione Gestione delle risposte dell'API.Per ottenere lo stato di una richiesta di inserimento collettivo, invia una richiesta
GET
HTTP alla risorsaoperation
:GET compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID
Per ottenere lo stato di una richiesta di inserimento collettivo a livello di regione, invia questa richiesta:
GET compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID
Sostituisci quanto segue:
L'oggetto
instancesBulkInsertOperationMetadata
nella risposta contiene seguenti dettagli dell'operazione:Il campo
progress
nella risposta rappresenta la percentuale di completamento dell'operazione.Lo stato dell'operazione di inserimento collettivo è
RUNNING
fino al giorno Compute Engine crea correttamente almeno il numero minimo VM e non viene più eseguito il rollback o la creazione di VM della richiesta.Quando è in corso l'operazione di inserimento collettivo, dovresti visualizzare una risposta simile al seguente:
{ "kind" : "compute#operation", "id": "4653028658507445766", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationType": "bulkInsert", "targetLink": "https://googleapis.com/compute/v1/projects/my-project" "targetId": 4653028658507445766, "status": "RUNNING", "progress": 2, "user": "example@google.com", "insertTime": "2023-04-23T09:57:13.474-07:00", "startTime": "2023-04-23T09:57:13.474-07:00", "selfLink": "https://googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "metadata": "instances_bulk_insert_operation_metadata": { "per_location_status": { "zones/us-central1-a": { "status": "CREATING", "targetVmCount": 50, "createdVmCount": 1 } } } }
In questo esempio, è stata creata un'istanza e l'operazione è completato al 2%.
L'operazione restituisce lo stato
DONE
quando Compute Engine crea correttamente almeno il numero minimo di VM specificato daminCount
, o quando Compute Engine completa il rollback della richiesta. Dopo aver creato correttamente il numero di VM richiesto, ricevi una risposta simile al seguente:{ "endTime": "2023-04-23T09:58:13.474-07:00", "id": "5053101474378293244", "insertTime": "2023-04-23T09:57:13.474-07:00", "instancesBulkInsertOperationMetadata": { "perLocationStatus": { "zones/us-central1-a": { "status": "DONE", "createdVmCount": 50, "targetVmCount": 50 } } }, "kind": "compute#operation", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "operationType": "bulkInsert", "progress": 100, "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "startTime": "2023-09-11T16:21:55.629-07:00", "status": "DONE", "targetId": "625521788110", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project", "user": "example@google.com", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a" }
Per saperne di più, consulta la documentazione per l'oggetto
instancesBulkInsertOperationMetadata
.Controllare lo stato di una singola VM
Per controllare lo stato di una singola VM creata da una richiesta di creazione di VM in blocco: usa gcloud CLI o l'API Compute Engine.
gcloud
REST
Esempi di pseudocodice
I seguenti esempi di pseudocodice mostrano come personalizzare le richieste per la creazione di VM in blocco.
Crea VM in blocco in una regione da un insieme di regioni
Il seguente pseudocodice descrive come creare 1000 VM in una regione da un insieme di regioni. Quando tenti di creare VM in blocco in una regione da un insieme delle regioni, la richiesta verifica innanzitutto la capacità. Se non è sufficiente capacità massima, la richiesta non riesce immediatamente e riprova con la regione successiva in l'insieme.
Crea VM collettivamente in una zona su un tipo di macchina
Il seguente pseudocodice descrive come creare più VM in una zona su il tipo di macchina specificato. Quando tenti di creare collettivamente le VM sulla stessa di tipo di macchina, la richiesta verifica innanzitutto la disponibilità di questi tipi di macchina. Se il tipo di macchina disponibile non è sufficiente, la richiesta non va a buon fine. immediatamente e riprova con il tipo di macchina successivo.
Crea più di 5000 VM in una zona
Quando crei le VM collettivamente, puoi creare solo 5000 VM con ogni richiesta. Il seguente pseudocodice descrive come creare più di 5000 VM in una zona l'invio di più richieste.
Creare VM in blocco e visualizzarne lo stato
La procedura seguente mostra come creare un gruppo di VM con nomi predefinite e visualizzarne lo stato:
Passaggi successivi
Dopo aver creato le VM in blocco, esegui una o entrambe le seguenti operazioni per semplificare per la gestione di queste VM:
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 2024-09-12 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -