Questa pagina descrive come creare e gestire i modelli di istanza. I modelli di istanza consentono di specificare il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà VM che vuoi utilizzare per la creazione di istanze di macchine virtuali (VM).
Puoi utilizzare i modelli di istanza per:
- Crea singole VM.
- Crea le VM in un gruppo di istanze gestite.
- Crea prenotazioni per le VM.
Prima di iniziare
- Leggi quando e perché creare modelli di istanza deterministici.
- Scopri di più sui modelli di istanza a livello di regione e globale.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Terraform
Per utilizzare gli esempi Terraform in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per utilizzare gli esempi Go in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi Node.js in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Limitazioni
- Il VPC condiviso su interfacce diverse da
nic0
per i modelli di istanza è supportato in gcloud CLI e REST, ma non nella console Google Cloud. - Non puoi aggiornare un modello di istanza esistente o modificare un modello di istanza dopo averlo creato. Se un modello di istanza non è aggiornato o devi apportare modifiche alla configurazione, creane uno nuovo.
- Se vuoi specificare una famiglia di immagini in un modello di istanza, non puoi utilizzare la console Google Cloud. Puoi usare Google Cloud CLI o REST.
- Se vuoi specificare un Persistent Disk a livello di regione in un modello di istanza, non puoi utilizzare la console Google Cloud. Puoi utilizzare Google Cloud CLI o REST.
Crea un modello di istanza
La maggior parte delle proprietà VM che puoi specificare in una richiesta di creazione di una singola istanza VM può essere specificata anche per un modello di istanza, inclusi metadati VM, script di avvio, dischi permanenti, account di servizio e così via. Devi specificare il tipo di macchina, il disco di avvio e la rete.
Crea un modello di istanza a livello di regione o globale tramite la console Google Cloud, Google Cloud CLI o l'API. Per creare un modello di istanza globale, puoi anche utilizzare Terraform o le librerie client di Cloud.
Console
Nella console Google Cloud, vai alla pagina Modelli di istanza.
I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.
- Fai clic su
Crea modello istanza . - Seleziona la Località come descritto di seguito:
- Se vuoi utilizzare il modello di istanza in più regioni, scegli Globale.
- Se vuoi ridurre la dipendenza tra regioni, scegli Regionale.
- Se hai scelto Regionale, seleziona la Regione in cui creare il modello di istanza.
Per i campi seguenti, accetta i valori predefiniti o modificali in base alle necessità. I valori predefiniti cambiano in base alla famiglia di macchine selezionata.
- Seleziona un
tipo di macchina . - Per aggiornare il tipo o l'immagine del disco di avvio, fai clic su Cambia nella sezione
Disco di avvio . - Per aggiornare l'interfaccia di rete o le impostazioni relative agli indirizzi IP, fai clic su
Opzioni avanzate , quindi su Networking e infine sull'interfaccia di rete da modificare.
- Seleziona un
(Facoltativo) Se hai scelto un'immagine che supporta la Shielded VM, modifica le impostazioni della VM schermata:
- Fai clic su Opzioni avanzate, quindi sulla scheda Sicurezza.
- Se vuoi disabilitare l'avvio protetto, deseleziona la casella di controllo Attiva l'avvio protetto. Avvio protetto consente di proteggere le istanze VM da rootkit e malware a livello di avvio e di kernel. Per maggiori informazioni, consulta Avvio protetto.
Se vuoi disabilitare il Virtual Trusted Platform Module (vTPM), deseleziona la casella di controllo Attiva vTPM. Il vTPM consente l'avvio con misurazioni, che convalida l'integrità in fase di pre-avvio e avvio della VM. Per maggiori informazioni, consulta Virtual Trusted Platform Module (vTPM).
Se vuoi disabilitare il monitoraggio dell'integrità, deseleziona la casella di controllo Attiva il monitoraggio dell'integrità. Il monitoraggio dell'integrità consente di monitorare l'integrità in fase di avvio delle istanze Shielded VM mediante Cloud Monitoring. Per maggiori informazioni, consulta Monitoraggio dell'integrità.
(Facoltativo) Nella sezione Opzioni avanzate, fai clic sulle schede per personalizzare ulteriormente il modello. Ad esempio, puoi aggiungere fino a 15 dischi non di avvio secondari.
(Facoltativo) Fai clic su REST equivalente per visualizzare il corpo della richiesta REST, che include la rappresentazione JSON del modello di istanza.
Fai clic su Crea per creare il modello.
gcloud
Per creare un modello di istanza a livello di regione o globale, utilizza il comando instance-templates create
.
Per un modello di istanza a livello di regione, devi utilizzare il flag --instance-template-region
per impostare la regione del modello.
Crea un modello di istanza a livello di regione utilizzando il comando seguente:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION
Crea un modello di istanza globale utilizzando il comando seguente:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME
Se non fornisci impostazioni esplicite per i modelli, gcloud compute
utilizza
i seguenti valori predefiniti:
- Tipo di macchina: il tipo di macchina, ad esempio
n1-standard-1
. - Immagine: l'immagine Debian più recente
- Disco di avvio: un nuovo disco di avvio standard denominato in base alla VM
- Rete: la rete VPC predefinita
- Indirizzo IP: un indirizzo IP esterno temporaneo
Puoi anche fornire esplicitamente queste impostazioni di configurazione. Ad esempio:
gcloud compute instance-templates create example-template-custom \ --machine-type=e2-standard-4 \ --image-family=debian-10 \ --image-project=debian-cloud \ --boot-disk-size=250GB
Puoi aggiungere fino a 15 dischi non di avvio secondari. Specifica il flag --create-disk
per ogni disco secondario che crei. Per creare dischi secondari da un'immagine pubblica o personalizzata, specifica le proprietà image
e image-project
per ogni disco nel flag --create-disk
. Per creare un disco vuoto, non includere queste proprietà. Se vuoi, includi le proprietà per il disco size
e type
. Per specificare i dischi permanenti a livello di regione, utilizza la proprietà replica-zones
.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --create-disk= \ image-family=DISK_IMAGE_FAMILY, \ image-project=DISK_IMAGE_PROJECT, \ size=SIZE_GB_DISK1 \ --create-disk= \ device-name=DISK_NAME,type=DISK_TYPE, \ size=SIZE_GB_DISK2 \ replica-zones=^:^ZONE:REMOTE_ZONE, \ boot=false
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
: il nome del modelloREGION
: la regione in cui vuoi creare il modello di istanza regionaleIMAGE_FAMILY
: una famiglia di immagini da usare come disco non di avvioPer ulteriori informazioni sulle famiglie di immagini, consulta le best practice per l'utilizzo delle famiglie di immagini su Compute Engine.
Puoi utilizzare invece il flag
--image=IMAGE
per specificare una versione specifica di un'immagine.Per i dischi vuoti, non specificare la proprietà
image-family
oimage
.DISK_IMAGE_PROJECT
: il progetto di immagini che contiene l'immaginePer i dischi vuoti, non specificare la proprietà
image-project
. Per scoprire di più sulle immagini pubbliche, consulta la sezione Immagini pubbliche.SIZE_GB_DISK1
eSIZE_GB_DISK2
: le dimensioni di ciascun disco secondarioDISK_NAME
: facoltativo: il nome del disco visualizzato al sistema operativo guest dopo la creazione della VM.DISK_TYPE
: (facoltativo) il tipo di disco da creare. Se non specificato, il valore predefinito èpd-standard
opd-balanced
, a seconda del tipo di macchina.ZONE
eREMOTE_ZONE
: la zona in cui creare il disco permanente a livello di regione e la zona in cui replicarlo.Per i dischi di zona, non includere la proprietà
replica-zones
.
Se hai scelto un'immagine che supporta una VM schermata, puoi eventualmente modificare le impostazioni della Shielded VM dell'istanza utilizzando uno dei seguenti flag:
--no-shielded-secure-boot
: disattiva Avvio protettoAvvio protetto aiuta a proteggere le istanze VM da rootkit e malware a livello di avvio e di kernel. Per maggiori informazioni, consulta Avvio protetto.
--no-shielded-vtpm
: disattiva il Virtual Trusted Platform Module (vTPM)Il vTPM abilita l'avvio con misurazioni, che convalida l'integrità in fase di pre-avvio e avvio della VM. Per maggiori informazioni, consulta Virtual Trusted Platform Module (vTPM).
--no-shielded-integrity-monitoring
: disattiva il monitoraggio dell'integritàIl monitoraggio dell'integrità consente di monitorare l'integrità in fase di avvio delle istanze Shielded VM mediante Cloud Monitoring. Per maggiori informazioni, consulta Monitoraggio dell'integrità.
Per un elenco di tutti i sottocomandi e flag disponibili, consulta il riferimento di instance-templates
.
Un modello con le impostazioni di configurazione predefinite potrebbe avere il seguente aspetto:
gcloud compute instance-templates describe example-template
creationTimestamp: '2019-09-10T16:18:32.042-07:00' description: '' id: '6057583701980539406' kind: compute#instanceTemplate name: example-template properties: canIpForward: false disks: - autoDelete: true boot: true initializeParams: sourceImage: https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-10 kind: compute#attachedDisk mode: READ_WRITE type: PERSISTENT machineType: e2-standard-2 networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat type: ONE_TO_ONE_NAT network: https://compute.googleapis.com/compute/v1/projects/myproject/global/networks/default scheduling: automaticRestart: true onHostMaintenance: MIGRATE serviceAccounts: - email: default scopes: - https://www.googleapis.com/auth/devstorage.read_only selfLink: https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-template
Terraform
Per creare un modello di istanza, puoi utilizzare la risorsa google_compute_instance_template
.
Il seguente esempio di Terraform è simile al seguente comando gcloud CLI:
gcloud compute instance-templates create my-instance-template \ --machine-type=e2-standard-4 \ --image-family=debian-9 \ --image-project=debian-cloud \ --boot-disk-size=250GB
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Go
Java
Node.js
Python
REST
Per creare un modello di istanza regionale, effettua una richiesta POST
al metodo regionInstanceTemplates.insert
come segue:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
Per creare un modello di istanza globale, effettua una richiesta POST
al metodo instanceTemplates.insert
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Puoi aggiungere fino a 15 dischi non di avvio secondari utilizzando la proprietà disks
, con un campo per ogni disco aggiuntivo. Per ogni disco aggiuntivo, puoi fare quanto segue:
- Crea dischi aggiuntivi con un'immagine pubblica o personalizzata.
- Per aggiungere un disco vuoto, definisci la voce
initializeParams
senza valoresourceImage
. - Per creare dischi permanenti a livello di regione, definisci la voce
initializeParams
con la proprietàreplicaZones
.
Nel corpo della richiesta, fornisci le proprietà del modello:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } }, { "type": "PERSISTENT", "boot": false, "deviceName": "DISK_NAME", "initializeParams": { "replicaZones": [ "projects/PROJECT_NAME/zones/ZONE", "projects/PROJECT_NAME/zones/REMOTE_ZONE" ] } } ] } }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoREGION
: la regione in cui vuoi creare il modello di istanza regionaleINSTANCE_TEMPLATE_NAME
: il nome del modello di istanzaZONE
: la zona in cui si trovano le VMMACHINE_TYPE
: il tipo di macchina delle VM-
IMAGE_PROJECT
: il progetto di immagini che contiene l'immaginePer ulteriori informazioni sulle immagini pubbliche, consulta la sezione Immagini pubbliche.
-
IMAGE
oIMAGE_FAMILY
: specifica una delle seguenti opzioni:-
IMAGE
: una versione specifica dell'immagineAd esempio:
"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
-
IMAGE_FAMILY
: una famiglia di immaginiViene creata la VM dall'immagine del sistema operativo più recente non deprecata. Ad esempio, se specifichi
"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
, Compute Engine crea una VM dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.Per maggiori informazioni sulle famiglie di immagini, consulta le best practice per l'utilizzo delle famiglie di immagini su Compute Engine.
-
DISK_NAME
: facoltativo: il nome del disco visualizzato al sistema operativo guest dopo la creazione della VM.PROJECT_NAME
: il progetto associato alla VMREMOTE_ZONE
: la zona in cui deve essere replicato il disco regionale
Puoi specificare una delle seguenti opzioni per la proprietà disks
:
Specifica
initializeParams
per creare dischi di avvio permanenti per ogni istanza. Puoi aggiungere fino a 15 dischi non di avvio secondari utilizzando la proprietàinitializeParams
per ogni disco aggiuntivo. Puoi creare dischi utilizzando immagini pubbliche o personalizzate (o famiglie di immagini) insourceImage
, come mostrato nell'esempio precedente. Per aggiungere dischi vuoti, non specificare unsourceImage
.Specifica
source
per collegare un disco di avvio permanente esistente. Se colleghi un disco di avvio esistente, puoi creare una sola istanza dal tuo modello.
Se vuoi, puoi specificare le proprietà diskSizeGb
, diskType
e labels
per initializeParams
e la proprietà diskSizeGb
per
source
.
Se hai scelto un'immagine che supporta una VM schermata, puoi scegliere di modificare le impostazioni della Shielded VM utilizzando i seguenti elementi del corpo della richiesta booleana:
enableSecureBoot
: attiva o disattiva Avvio protettoAvvio protetto aiuta a proteggere le istanze VM da rootkit e malware a livello di avvio e di kernel. Per maggiori informazioni, consulta Avvio protetto.
enableVtpm
: attiva o disattiva il Virtual Trusted Platform Module (vTPM)Il vTPM abilita l'avvio con misurazioni, che convalida l'integrità in fase di pre-avvio e avvio della VM. Per maggiori informazioni, consulta Virtual Trusted Platform Module (vTPM).
enableIntegrityMonitoring
: attiva o disattiva il monitoraggio dell'integritàIl monitoraggio dell'integrità consente di controllare e verificare l'integrità in fase di avvio runtime delle istanze Shielded VM mediante i report di Cloud Monitoring. Per maggiori informazioni, consulta Monitoraggio dell'integrità.
Per scoprire di più sui parametri della richiesta, consulta il metodo instanceTemplates.insert
.
Crea un modello di istanza basato su un'istanza esistente
Puoi utilizzare REST o gcloud CLI per salvare la configurazione di un'istanza VM esistente come modello di istanza. Facoltativamente, puoi eseguire l'override del modo in cui i dischi di origine sono definiti nel modello.
Se devi eseguire l'override di altre proprietà, crea prima un modello di istanza basato su un'istanza esistente, quindi crea un modello simile con override aggiuntivi.
gcloud
Utilizza il comando gcloud compute instance-templates create
con i flag --source-instance
e --source-instance-zone
. Se vuoi creare un modello di istanza a livello di regione, devi utilizzare anche il flag --instance-template-region
per specificare la regione del modello di istanza.
Per creare un modello di istanza a livello di regione, utilizza il comando seguente:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --source-instance=SOURCE_INSTANCE \ --source-instance-zone=SOURCE_INSTANCE_ZONE \ --instance-template-region=REGION
Per creare un modello di istanza globale, utilizza il comando seguente:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --source-instance=SOURCE_INSTANCE \ --source-instance-zone=SOURCE_INSTANCE_ZONE
Per eseguire l'override del modo in cui vengono definiti i dischi dell'istanza di origine, aggiungi uno o più flag --configure-disk
.
L'esempio seguente crea un modello di istanza globale da un'istanza esistente e sostituisce il disco dell'istanza di origine con le specifiche che fornisci.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --source-instance=SOURCE_INSTANCE \ --source-instance-zone=SOURCE_INSTANCE_ZONE \ --configure-disk= \ device-name=SOURCE_DISK, \ instantiate-from=INSTANTIATE_OPTIONS, \ auto-delete=AUTO_DELETE
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
è il nome del modello da creare.SOURCE_INSTANCE
è il nome dell'istanza da utilizzare come modello per il nuovo modello.SOURCE_INSTANCE_ZONE
è la zona che contiene l'istanza di origine.REGION
è la regione in cui vuoi creare il modello di istanza regionale.SOURCE_DISK
è il nome di un disco dell'istanza di origine di cui vuoi eseguire l'override all'interno del modello.INSTANTIATE_OPTIONS
consente di specificare se includere il disco e l'immagine da utilizzare. I valori validi dipendono dal tipo di disco:source-image
osource-image-family
(valido solo per l'avvio e altri dischi di lettura/scrittura permanenti). Specifica questa opzione se vuoi utilizzare la stessa immagine di origine o la stessa famiglia di immagini di origine utilizzate per creare il disco nell'istanza VM di origine.custom-image
(valido solo per l'avvio e altri dischi di lettura/scrittura permanenti). Se vuoi conservare le applicazioni e le impostazioni delle VM di origine nel modello di istanza, puoi creare un'immagine personalizzata e specificarla quando crei il modello. Se specificato, fornisci il percorso o l'URL dell'immagine personalizzata, come mostrato nell'esempio seguente. In alternativa, puoi specificare una famiglia di immagini nel seguente formato:--configure-disk=device-name=DATA_DISK_NAME,instantiate-from=custom-image,
custom-image=projects/PROJECT_ID/global/images/family/IMAGE_FAMILY_NAMEattach-read-only
(valido solo per i dischi di sola lettura).blank
(valido solo per dischi permanenti non di avvio e SSD locali). Se specificato, quando il modello viene utilizzato per creare una nuova istanza, il disco viene creato non formattato. Devi formattare e montare il disco in uno script di avvio prima di poterlo utilizzare in una configurazione scalabile.do-not-include
(valido solo per dischi permanenti non di avvio e dischi di sola lettura).
AUTO_DELETE
specifica se il disco viene eliminato automaticamente quando viene eliminata l'istanza. I valori validi sono:false
,no
,true
eyes
.
Ad esempio, il seguente comando crea un modello di istanza basato su my-source-instance
, con la possibilità di utilizzare l'immagine originale proveniente da data-disk-a
, ma impostare l'eliminazione automatica su true
e sostituire data-disk-b
con un'immagine personalizzata.
gcloud compute instance-templates create my-instance-template \ --source-instance=my-source-instance \ --configure-disk=device-name=data-disk-a,instantiate-from=source-image, \ auto-delete=true --configure-disk=device-name=data-disk-b,instantiate-from=custom-image, \ custom-image=projects/cps-cloud/global/images/cos-89-16108-403-15
Go
Java
Node.js
Python
REST
Per creare un modello di istanza regionale, utilizza il metodo regionInstanceTemplates.insert
oppure il metodo instanceTemplates.insert
per creare un modello di istanza globale.
Nella richiesta, devi specificare il campo sourceInstance
. Per eseguire l'override del modo in cui vengono definiti i dischi dell'istanza di origine, aggiungi uno o più campi diskConfigs
.
Ad esempio, effettua la chiamata seguente per creare un modello di istanza globale da un'istanza esistente.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "sourceInstance": "zones/SOURCE_INSTANCE_ZONE/instances/SOURCE_INSTANCE", "sourceInstanceParams": { "diskConfigs": [ { "deviceName": "SOURCE_DISK", "instantiateFrom": "INSTANTIATE_OPTIONS", "autoDelete": false } ] } }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoINSTANCE_TEMPLATE_NAME
: il nome del nuovo modelloSOURCE_INSTANCE_ZONE
: la zona dell'istanza di origineSOURCE_INSTANCE
: il nome dell'istanza di origine da utilizzare come modello per questo modello di istanzaSOURCE_DISK
: il nome di un disco dell'istanza di origine di cui vuoi eseguire l'override all'interno del modelloINSTANTIATE_OPTIONS
: specifica se includere il disco e l'immagine da utilizzareI valori validi dipendono dal tipo di disco:
source-image
osource-image-family
(valido solo per l'avvio e altri dischi di lettura/scrittura permanenti).custom-image
(valido solo per l'avvio e altri dischi di lettura/scrittura permanenti). Se vuoi conservare le applicazioni e le impostazioni delle VM di origine nel modello di istanza, puoi creare un'immagine personalizzata e specificarla quando crei il modello. Se specificato, fornisci il percorso o l'URL dell'immagine personalizzata, come mostrato nell'esempio seguente. In alternativa, puoi specificare una famiglia di immagini nel seguente formato:--configure-disk=device-name=DATA_DISK_NAME,instantiate-from=custom-image,
custom-image=projects/PROJECT_ID/global/images/family/IMAGE_FAMILY_NAMEattach-read-only
(valido solo per i dischi di sola lettura).blank
(valido solo per dischi permanenti non di avvio e SSD locali). Se specificato, quando il modello viene utilizzato per creare una nuova istanza, il disco viene creato non formattato. Devi formattare e montare il disco in uno script di avvio prima di poterlo utilizzare in una configurazione scalabile.do-not-include
(valido solo per dischi permanenti non di avvio e dischi di sola lettura).
L'esempio seguente crea un nuovo modello di istanza basato su my-source-instance
. Nel modello di istanza, l'immagine di data-disk-a
viene sostituita con projects/cos-cloud/global/images/cos-89-16108-403-15
.
POST https://compute.googleapis.com/compute/v1/projects/my_project/global/instanceTemplates { "name": "my-instance-template", "sourceInstance": "zones/us-central1-a/instances/my-source-instance", "sourceInstanceParams": { "diskConfigs": [ { "deviceName": "data-disk-a", "instantiateFrom": "custom-image", "customImage": "projects/cos-cloud/global/images/cos-89-16108-403-15" } ] } }
La seguente tabella mostra come sono definite le opzioni per l'override dei dischi nel modello.
Tipo di disco | Opzioni |
---|---|
Disco di avvio |
|
Altri dischi permanenti di lettura/scrittura |
|
Dischi di sola lettura |
|
SSD locali |
|
Per ogni disco, puoi anche eseguire l'override dell'attributo auto-delete
per specificare se il disco deve essere eliminato quando viene eliminata l'istanza associata.
Per impostazione predefinita, se non vengono specificate opzioni di override, la configurazione del disco nel modello corrisponde all'istanza di origine.
Crea un modello di istanza basato su un modello esistente
Non puoi aggiornare un modello di istanza esistente. Tuttavia, se un modello di istanza diventa obsoleto o se hai bisogno di apportare modifiche, puoi crearne un altro con proprietà simili utilizzando la console.
Vai alla pagina Modelli di istanza.
Fai clic sul modello di istanza che vuoi copiare e aggiornare.
Fai clic su Crea simile.
Aggiorna la configurazione nel nuovo modello.
Fai clic su Crea.
Crea un modello di istanza per le VM GPU
Quando crei un modello di istanza, puoi configurarlo per la creazione di VM con GPU collegate specificando quanto segue:
Un tipo di macchina che supporta il tipo di GPU desiderato. Se vuoi creare un modello di istanza regionale, il tipo di GPU specificato nel modello deve essere disponibile in almeno una zona della regione.
Un criterio di manutenzione che arresta le VM durante eventi di manutenzione dell'host.
Console
Per creare un modello di istanza per le VM GPU:
Nella console Google Cloud, vai alla pagina Modelli di istanza.
Fai clic su Crea modello istanza.
Nel campo Nome, inserisci un nome per il modello di istanza.
Nella sezione Posizione, seleziona una delle seguenti opzioni:
Per creare un modello di istanza globale, seleziona Globale (impostazione predefinita).
Per creare un modello di istanza regionale, seleziona A livello di regione, poi seleziona la regione in cui vuoi creare il modello di istanza.
Nella sezione Configurazione macchina, segui questi passaggi:
Fai clic sulla scheda GPU.
Nel menu Tipo di GPU, seleziona il tipo di GPU.
Nel menu Numero di GPU, seleziona il numero di GPU.
(Facoltativo) Se il tuo modello GPU supporta le workstation virtuali NVIDIA RTX (vWS) per i carichi di lavoro della grafica e prevedi di eseguire carichi di lavoro ad alta intensità di grafica, seleziona Abilita workstation virtuale (NVIDIA GRID).
Nella sezione Tipo di macchina, seleziona un tipo di macchina.
(Facoltativo) Per modificare il tipo o l'immagine del disco di avvio predefinito, nella sezione Disco di avvio, fai clic su Cambia. Poi, segui le istruzioni per cambiare il disco di avvio.
Fai clic su Crea.
gcloud
Per creare un modello di istanza per le VM GPU, utilizza il comando instance-templates create
con il flag --maintenance-policy
impostato su TERMINATE
.
Ad esempio, per creare un modello di istanza globale per le VM GPU, utilizza il seguente comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud
. Per ulteriori informazioni sui progetti di immagini supportati, consulta Immagini pubbliche.IMAGE
oIMAGE_FAMILY
: specifica una delle seguenti opzioni:IMAGE
: una versione specifica dell'immagine del sistema operativo, ad esempiodebian-10-buster-v20200309
.IMAGE_FAMILY
: una famiglia di immagini. Specifica l'immagine del sistema operativo più recente non deprecata. Ad esempio, se specifichidebian-10
, viene utilizzata l'ultima versione nella famiglia di immagini Debian 10. Per ulteriori informazioni sull'uso delle famiglie di immagini, consulta Best practice per le famiglie di immagini.
MACHINE_TYPE
: il tipo di macchina delle VM. Se specifichi un tipo di macchina N1, includi il flag--accelerator
per specificare il numero e il tipo di GPU da collegare alle VM.
Ad esempio, supponi di voler creare un modello di istanza globale per le VM GPU che specifichi le seguenti proprietà:
Un tipo di macchina predefinita N1 con 2 vCPU.
Una GPU NVIDIA T4 da collegare alle VM.
Debian come progetto per le immagini.
Debian 10 come famiglia di immagini.
Per creare il modello di istanza di esempio, utilizza il comando seguente:
gcloud compute instance-templates create instance-template-gpu \
--accelerator=count=1,type=nvidia-tesla-t4 \
--machine-type=n1-standard-2 \
--image-family=debian-10 \
--image-project=debian-cloud \
--maintenance-policy=TERMINATE
Terraform
Per creare un modello di istanza per le VM GPU, utilizza la risorsa google_compute_region_instance_template
.
Ad esempio, per creare un modello di istanza globale, che specifica un tipo di macchina predefinita N1 con due vCPU e una GPU NVIDIA T4 collegate, utilizza la risorsa seguente:
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per creare un modello di istanza per le VM GPU, effettua una richiesta POST
al metodo instanceTemplates.insert
.
Nel corpo della richiesta, includi il campo onHostMaintenance
e impostalo su TERMINATE
.
Ad esempio, per creare un modello di istanza globale per le VM GPU, effettua una richiesta POST
come segue:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-IP",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "global/networks/default"
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
}
}
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi creare il modello di istanza.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud
. Per ulteriori informazioni sui progetti di immagini supportati, consulta Immagini pubbliche.IMAGE
oIMAGE_FAMILY
: specifica una delle seguenti opzioni:IMAGE
: una versione specifica dell'immagine del sistema operativo, ad esempiodebian-10-buster-v20200309
.IMAGE_FAMILY
: una famiglia di immagini. Specifica l'immagine del sistema operativo più recente non deprecata. Ad esempio, se specifichidebian-10
, viene utilizzata l'ultima versione nella famiglia di immagini Debian 10. Per ulteriori informazioni sull'uso delle famiglie di immagini, consulta Best practice per le famiglie di immagini.
MACHINE_TYPE
: il tipo di macchina delle VM. Se specifichi un tipo di macchina N1, includi il campoguestAccelerators
per specificare il numero e il tipo di GPU da collegare alle VM.
Ad esempio, supponi di voler creare un modello di istanza globale per le VM GPU che specifichi le seguenti proprietà:
Un tipo di macchina predefinita N1 con 2 vCPU.
Una GPU NVIDIA T4 da collegare alle VM.
Debian come progetto per le immagini.
Debian 10 come famiglia di immagini.
Per creare il modello di istanza di esempio, effettua una richiesta POST
come segue:
POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates
{
"name": "instance-template-gpu",
"properties": {
"disks": [
{
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/debian-10"
}
}
],
"guestAccelerators": [
{
"acceleratorType": "nvidia-tesla-t4",
"acceleratorCount": 1
}
],
"machineType": "n1-standard-2",
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-IP",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "global/networks/default"
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
}
}
}
Per ulteriori opzioni di configurazione durante la creazione di un modello di istanza, consulta Creare un modello di istanza in questo documento.
Crea un modello di istanza con un'immagine container
Puoi specificare un'immagine container in un modello di istanza. Per impostazione predefinita, Compute Engine include anche nel modello un'immagine del sistema operativo ottimizzato per i container in cui è installato Docker. Quando utilizzi il modello per creare una nuova istanza, il container viene avviato automaticamente all'avvio dell'istanza.
Console
Vai alla pagina Modelli di istanza.
Fai clic su Crea modello istanza.
Nella sezione Contenitore, fai clic su Esegui il deployment del contenitore.
Nella finestra di dialogo Configura contenitore, specifica l'Immagine contenitore da utilizzare.
- Puoi specificare un'immagine da Container Registry o Artifact Registry.
Ad esempio:
gcr.io/cloud-marketplace/google/nginx1:TAG
, dove TAG è il tag definito per una versione specifica dell'immagine del container NGINX disponibile su Google Cloud Marketplace.us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
seleziona un'immaginehello-app
di esempio archiviata in Artifact Registry.
- Se utilizzi un'immagine container da Docker Hub, specifica sempre il nome completo dell'immagine Docker. Ad esempio, specifica il seguente nome immagine per eseguire il deployment di un'immagine container Apache:
docker.io/httpd:2.4
.
- Puoi specificare un'immagine da Container Registry o Artifact Registry.
Ad esempio:
(Facoltativo) Fai clic su Opzioni contenitore avanzate. Per ulteriori informazioni, consulta la pagina Configurazione delle opzioni per l'esecuzione del container.
Fai clic su Crea.
gcloud
Utilizza il comando gcloud compute instance-templates create-with-container
:
gcloud compute instance-templates create-with-container INSTANCE_TEMPLATE_NAME \ --container-image=CONTAINER_IMAGE
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
: il nome del modello da creare.CONTAINER_IMAGE
: il nome completo dell'immagine container da utilizzare.
Ad esempio, il comando seguente crea un nuovo modello di istanza denominato nginx-vm
. Un'istanza VM creata da questo modello avvia ed esegue l'immagine container, gcr.io/cloud-marketplace/google/nginx1:TAG
, all'avvio della VM.
gcloud compute instance-templates create-with-container nginx-vm \ --container-image=gcr.io/cloud-marketplace/google/nginx1:TAG
Sostituisci TAG
con il tag definito per una versione specifica dell'immagine container NGINX disponibile su Google Cloud Marketplace.
Puoi anche configurare le opzioni per eseguire il container.
Crea un modello di istanza che specifichi una subnet
gcloud
Per creare un modello di istanza a livello di regione o globale, utilizza il comando instance-templates create
.
Utilizza il flag --subnet
per inserire le istanze create dal modello nella subnet che preferisci. Il flag --subnet
richiede il flag --region
.
Se vuoi creare un modello di istanza regionale, devi utilizzare il flag --instance-template-region
per impostare la regione del modello. Assicurati di utilizzare una subnet della stessa regione in cui vuoi creare il modello di istanza regionale.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=REGION \ --subnet=SUBNET_NAME_OR_URL \ --instance-template-region=INSTANCE_TEMPLATE_REGION
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
: il nome del modello di istanzaREGION
: la regione della subnetSUBNET_NAME_OR_URL
: il nome della subnet o il relativo URLINSTANCE_TEMPLATE_REGION
: la regione in cui vuoi creare il modello di istanza. Deve essere uguale a REGION
L'esempio seguente crea un modello denominato template-qa
che crea solo istanze nella subnet subnet-us-qa
.
gcloud compute instance-templates create template-qa \
--region=us-central1 \
--subnet=subnet-us-qa
Created [https://compute.googleapis.com/compute/latest/projects/PROJECT_ID/global/instanceTemplates/template-qa].
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP
template-qa e2-standard-2 2019-12-23T20:34:00.791-07:00
Go
Java
Node.js
Python
Se utilizzi questo modello per creare istanze per un gruppo di istanze gestite (con o senza scalabilità automatica), l'istanza viene creata automaticamente nella regione e nella subnet specificate. Questo ti consente di controllare la subnet delle nuove istanze create per il bilanciamento del carico.
Utilizza immagini personalizzate o pubbliche nei modelli di istanza
Puoi utilizzare un'immagine personalizzata o un'immagine pubblica per i tuoi modelli di istanza:
Immagini personalizzate. Poiché i gruppi di istanze gestite sono progettati per aggiungere e rimuovere di frequente istanze, è utile creare un'immagine personalizzata e specificarla nel modello di istanza. Puoi preparare l'immagine con le applicazioni e le impostazioni necessarie alle tue VM, così non devi configurare manualmente questi elementi sulle singole VM nel gruppo di istanze gestite.
Immagini pubbliche. Puoi creare un modello di istanza che utilizza un'immagine pubblica e uno script di avvio per preparare l'istanza dopo l'avvio.
Le immagini personalizzate sono più deterministiche e si avviano più rapidamente delle VM con script di avvio. Tuttavia, gli script di avvio sono più flessibili e ti consentono di aggiornare più facilmente le app e le impostazioni nelle istanze.
Se gestisci le immagini utilizzando famiglie di immagini, puoi specificare il nome della famiglia di immagini personalizzate o pubbliche nel modello di istanza. Per maggiori informazioni sulle famiglie di immagini, consulta le best practice per l'utilizzo delle famiglie di immagini su Compute Engine.
Passaggi successivi
- Crea una VM da un modello di istanza.
- Crea un gruppo di istanze gestite a livello di zona.
- Crea un gruppo di istanze gestite a livello di regione.
- Aggiorna le VM in un gruppo di istanze gestite esistente per utilizzare la configurazione da un nuovo modello.
- Crea una prenotazione per le VM.