Questo documento spiega come creare prenotazioni condivise, ovvero prenotazioni condivise tra più progetti, e come gestire i progetti dell'organizzazione che possono utilizzare le prenotazioni condivise.
Una prenotazione condivisa può essere utilizzata dal progetto che ospita la prenotazione (progetto del proprietario) e dai progetti con cui è condivisa la prenotazione (progetti consumer). Utilizza le prenotazioni condivise se la tua organizzazione ha più progetti che richiedono istanze di macchine virtuali (VM) con le stesse proprietà riservate. Utilizzando le prenotazioni condivise, puoi migliorare l'utilizzo delle prenotazioni e ridurre il numero di prenotazioni da creare e gestire. Per scoprire di più sulle prenotazioni, consulta Prenotazioni di risorse di zona di Compute Engine.
Per altri metodi di creazione delle prenotazioni, consulta invece le pagine seguenti:
Se hai impegni di 1 o 3 anni nel progetto attuale, le risorse prenotate ricevono automaticamente gli eventuali sconti per impegno di utilizzo (CUD) applicabili. Puoi anche creare e collegare una prenotazione a un impegno quando lo acquisti. Per scoprire di più, consulta Collegare le prenotazioni agli impegni.
Per creare una prenotazione che possa essere utilizzata da un solo progetto, consulta Creare una prenotazione per un singolo progetto.
Prima di iniziare
- Esamina i requisiti e le limitazioni per le prenotazioni.
- Esamina i requisiti e le limitazioni per le prenotazioni condivise.
- Assicurati che il progetto che utilizzi per creare prenotazioni condivise sia stato aggiunto da un amministratore dei criteri dell'organizzazione alla lista consentita per il vincolo del criterio dell'organizzazione Progetti del proprietario delle prenotazioni condivise (
compute.sharedReservationsOwnerProjects
). Questa lista consentita è vuota per impostazione predefinita, quindi non puoi creare prenotazioni condivise finché l'organizzazione non concede questa autorizzazione a uno o più progetti. Per maggiori dettagli sulla visualizzazione e sulla modifica del vincolo del criterio dell'organizzazione, vedi Consentire e limitare i progetti di creare e modificare prenotazioni condivise in questo documento. -
Se non l'hai già fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
- 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
-
Amministratore Compute (
roles/compute.admin
) nel progetto -
Per visualizzare e modificare i criteri dell'organizzazione:
Amministratore criteri organizzazione (
roles/orgpolicy.policyAdmin
) nell'organizzazione -
compute.reservations.create
nel progetto -
Per visualizzare i criteri dell'organizzazione:
orgpolicy.policy.get
nell'organizzazione -
Per modificare i criteri dell'organizzazione:
orgpolicy.policy.set
nell'organizzazione -
Per specificare un modello di istanza:
compute.instanceTemplates.useReadOnly
nel modello di istanza -
Fai in modo che il progetto del proprietario crei la prenotazione condivisa, ma non la utilizzi.
- Per distribuire la spesa tra i progetti, ti consigliamo di far sì che solo i progetti consumer utilizzino una prenotazione condivisa. Il progetto del proprietario deve essere utilizzato solo per creare la prenotazione condivisa.
- Il progetto proprietario deve avere una quota sufficiente per il doppio delle risorse da prenotare. Per maggiori informazioni, consulta Requisiti aggiuntivi per le prenotazioni condivise.
-
Riduci al minimo il numero di progetti nella tua organizzazione a cui consenti di creare prenotazioni condivise. Puoi controllare questa opzione tramite il vincolo del criterio dell'organizzazione per i progetti
del proprietario delle prenotazioni condivise
(
compute.sharedReservationsOwnerProjects
).- Puoi elencare solo le prenotazioni create da ciascun progetto. Ciò significa che le prenotazioni condivise sono elencate solo nel progetto del proprietario (non puoi elencare le prenotazioni condivise con ciascun progetto o tutte le prenotazioni condivise in ogni organizzazione). Di conseguenza, avere solo pochi progetti di proprietà semplifica il monitoraggio e la gestione delle prenotazioni condivise.
- Limita la condivisione di una prenotazione condivisa solo a pochi progetti per gestire più facilmente la quota delle risorse prenotate.
- Per maggiori informazioni, consulta Consentire e limitare i progetti di creazione e modifica di prenotazioni condivise.
-
Riduci al minimo il numero di prenotazioni condivise separate con proprietà VM identiche.
- Un'organizzazione può avere fino a 100 prenotazioni condivise per ogni combinazione univoca di proprietà VM. Di conseguenza, la riduzione al minimo del numero di prenotazioni condivise con proprietà VM identiche che crei contribuisce a mitigare questo limite.
- Avere meno prenotazioni condivise migliora la gestibilità.
-
Condividi le prenotazioni solo tra progetti con lo stesso account di fatturazione Cloud.
- Limita ogni prenotazione condivisa in modo che sia condivisa solo con progetti consumer che hanno lo stesso account di fatturazione Cloud del progetto proprietario. In questo modo è più facile verificare se una prenotazione è stata utilizzata e come è stata fatturata.
- Se hai abilitato la condivisione degli sconti per impegno di utilizzo (CUD) e hai l'idoneità a ricevere gli sconti per impegno di utilizzo (CUD) a livello di account di fatturazione Cloud, per massimizzare gli sconti per impegno di utilizzo (CUD) ricevuti per le prenotazioni utilizzate, limita le prenotazioni condivise all'account di fatturazione Cloud di quell'impegno. In questo modo puoi mantenere una fatturazione coerente tra i progetti che creano e utilizzano prenotazioni condivise.
Scarica il criterio per la tua organizzazione come file denominato
policy.yaml
utilizzando il comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
Usa un editor di testo per aprire il file
policy.yaml
e visualizzare il vincolocompute.sharedReservationsOwnerProjects
. I progetti autorizzati a creare e modificare prenotazioni condivise sono elencati nel relativoallowedValues
:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
dove PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 sono i numeri di progetto degli unici progetti nella tua organizzazione autorizzati a creare prenotazioni condivise.
(Facoltativo) Elimina il file
policy.yaml
.Se utilizzi un terminale Linux o macOS, usa il seguente comando:
rm policy.yaml
Se utilizzi un terminale Windows, usa il seguente comando:
del policy.yaml
Per concedere a un singolo progetto l'autorizzazione per creare e modificare le prenotazioni condivise, utilizza il comando
gcloud resource-manager org-policies allow
. Puoi ripetere il comando per ogni progetto a cui vuoi concedere questa autorizzazione.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Sostituisci quanto segue:
- PROJECT_NUMBER: il numero di progetto (non l'ID progetto) di un progetto nell'organizzazione a cui vuoi consentire di creare e modificare prenotazioni condivise.
- ORGANIZATION_ID: l'ID organizzazione della tua organizzazione.
Per concedere o revocare a più progetti le autorizzazioni per creare e modificare le prenotazioni condivise, sostituisci il vincolo del criterio dell'organizzazione:
Per scaricare il criterio per la tua organizzazione come file denominato
policy.yaml
, utilizza il comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
Utilizza un editor di testo per modificare il file
policy.yaml
in modo che il vincolocompute.sharedReservationsOwnerProjects
elenchi tutti i progetti per cui vuoi disporre dell'autorizzazione per creare e modificare le prenotazioni condivise nel relativoallowedValues
.- Per ogni progetto a cui vuoi concedere l'autorizzazione per creare e modificare le prenotazioni condivise, aggiungi il progetto in una nuova riga in
allowedValues
. - Elimina la riga relativa a ogni progetto a cui vuoi revocare l'autorizzazione per creare e modificare le prenotazioni condivise.
Quando hai finito, assicurati che il file
policy.yaml
abbia un aspetto simile al seguente:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
dove PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 sono i numeri di progetto (non gli ID progetto) di tutti i progetti nella tua organizzazione a cui vuoi autorizzare la creazione e la modifica di prenotazioni condivise.
- Per ogni progetto a cui vuoi concedere l'autorizzazione per creare e modificare le prenotazioni condivise, aggiungi il progetto in una nuova riga in
Salva il file
policy.yaml
e chiudi l'editor di testo.Per aggiornare il criterio per la tua organizzazione con le modifiche, utilizza il comando
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
(Facoltativo) Elimina il file
policy.yaml
.Se utilizzi un terminale Linux o macOS, usa il seguente comando:
rm policy.yaml
Se utilizzi un terminale Windows, usa il seguente comando:
del policy.yaml
Consigliato: Specifica un modello di istanza
Questa sezione spiega come utilizzare un modello di istanza per definire le proprietà di una prenotazione condivisa. Utilizzando un modello di istanza, puoi definire le proprietà di una prenotazione e le VM che possono consumare la prenotazione nella stessa posizione. Tuttavia, poiché i modelli sono specifici del progetto, non puoi utilizzare lo stesso modello per creare VM che possono utilizzare la prenotazione all'esterno del progetto che ha creato la prenotazione. Per i progetti con cui è condivisa la prenotazione, devi creare modelli simili o creare delle VM specificando direttamente le proprietà.
Specificare le proprietà direttamente
Questa sezione spiega come definire direttamente le proprietà di una prenotazione condivisa. Questo metodo richiede di garantire manualmente che le proprietà delle VM e delle prenotazioni corrispondano esattamente: qualsiasi Le proprietà non corrispondenti impediscono il consumo.
Crea una prenotazione che possa essere utilizzata solo dalle VM che la targetizzano in modo specifico, come spiegato nelle sezioni seguenti di questo documento. Quindi, configura le VM in modo che utilizzino quella specifica prenotazione.
Configura le VM che non possono utilizzare nessuna prenotazione.
Un modello di istanza contiene impostazioni specifiche del progetto, quindi puoi accedere e utilizzare un modello di istanza solo all'interno dello stesso progetto. Se crei una prenotazione condivisa specificando un modello di istanza, non puoi utilizzare lo stesso modello per creare VM che possono consumare la prenotazione all'esterno del progetto che ha creato la prenotazione.
Crea la prenotazione nella stessa regione e nella stessa zona delle risorse all'interno del modello di istanza. Qualsiasi risorsa regionale o di zona specificata in un modello di istanza, ad esempio un tipo di macchina o un volume di Persistent Disk, limita l'utilizzo del modello alle località in cui si trovano le risorse. Ad esempio, se il modello di istanza specifica un volume di Persistent Disk esistente nella zona
us-central1-a
, puoi creare la prenotazione solo nella stessa zona. Per verificare se un modello esistente specifica risorse che associano il modello a una regione o zona specifica, visualizza i dettagli del modello di istanza e cerca i riferimenti alle risorse a livello di regione o zona al suo interno.Nella console Google Cloud, vai alla pagina Prenotazioni.
Viene visualizzata la pagina Prenotazioni.
Fai clic su
Crea prenotazione.Viene visualizzata la pagina Crea una prenotazione.
Nel campo Nome, inserisci un nome per la prenotazione.
Seleziona la regione e la zona in cui vuoi prenotare le risorse.
Nella sezione Tipo di condivisione, procedi nel seguente modo:
Per specificare una prenotazione condivisa, fai clic su Condivisa.
Fai clic su
Aggiungi progetti, quindi seleziona i progetti dell'organizzazione del progetto attuale con cui vuoi condividere la prenotazione.
Nella sezione Usa con istanza VM, seleziona una delle seguenti opzioni:
Per consentire alle istanze VM corrispondenti di utilizzare automaticamente questa prenotazione, seleziona Utilizza prenotazione automaticamente (impostazione predefinita).
Per utilizzare le risorse di questa prenotazione solo durante la creazione di VM corrispondenti che hanno come target questa prenotazione in modo specifico per nome, seleziona Seleziona prenotazione specifica.
Nel campo Numero di istanze VM, inserisci il numero di VM che vuoi prenotare.
Nella sezione Configurazione macchina, segui questi passaggi:
Per specificare le proprietà delle VM da un modello di istanza esistente, seleziona Utilizza modello di istanza.
Nel campo Modello di istanza, seleziona il modello di istanza che preferisci. Se selezioni un modello di istanza regionale, puoi prenotare risorse solo all'interno della regione del modello di istanza.
Nella sezione Eliminazione automatica, puoi abilitare l'opzione di eliminazione automatica per consentire a Compute Engine di eliminare automaticamente la prenotazione in una data e un'ora specifiche. L'eliminazione automatica delle prenotazioni può essere utile per evitare addebiti inutili quando smetti di utilizzare la prenotazione.
Per creare la prenotazione, fai clic su Crea.
La creazione della prenotazione condivisa potrebbe richiedere un po' di tempo. Questa azione ti reindirizza alla pagina Prenotazioni.
RESERVATION_NAME
: il nome della prenotazione da creare.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse e dove esiste il modello di istanza.CONSUMER_PROJECT_IDS
: un elenco separato da virgole di ID di progetti che possono utilizzare questa prenotazione, ad esempioproject-1,project-2
. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, è già autorizzato a utilizzare la prenotazione.LOCATION
: la posizione del modello di istanza. Specifica uno dei seguenti valori:Per un modello di istanza globale:
global
.Per un modello di istanza regionale:
regions/REGION
. SostituisciREGION
con la regione in cui si trova il modello di istanza. Se specifichi un modello di istanza regionale, puoi prenotare le VM solo nella regione del modello di istanza.
INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza esistente. Se il modello di istanza specifica un tipo di macchina A3, devi includere il flag--require-specific-reservation
. Questo indica che solo le VM che hanno come target la prenotazione possono utilizzarla. Per maggiori informazioni, consulta Utilizzo delle VM da una prenotazione specifica.NUMBER_OF_VMS
: il numero di VM da prenotare.ZONE
: la zona in cui prenotare le risorse.Per specificare che solo le VM che hanno come target questa prenotazione specificamente possono utilizzarla, includi il flag
--require-specific-reservation
.gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e un'ora specifiche, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Sostituisci
DELETE_AT_TIME
con una data e un'ora formattate come timestamp RFC 3339, che deve essere il seguente:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno di quattro cifre, mese di due cifre e giorno del mese a due cifre, separati da trattini (-
).HH:MM:SS
: un'ora nel formato a due cifre (ora nel formato 24 ore, minuti a due cifre e secondi a due cifre, separati dai due punti (:
).OFFSET
: il fuso orario formattato come differenza rispetto al Tempo coordinato universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un determinato periodo di tempo, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Sostituisci
DELETE_AFTER_DURATION
con una durata in giorni, ore, minuti o secondi. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
per 1 giorno, 2 ore, 3 minuti e 4 secondi.
Il campo
projectMap
.Il campo
shareType
è stato impostato suSPECIFIC_PROJECTS
.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse e dove esiste il modello di istanza.ZONE
: la zona in cui prenotare le risorse.RESERVATION_NAME
: il nome della prenotazione da creare.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: gli ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, è già consentito utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.LOCATION
: la posizione del modello di istanza. Specifica uno dei seguenti valori:Per un modello di istanza globale:
global
.Per un modello di istanza regionale:
regions/REGION
. SostituisciREGION
con la regione in cui si trova il modello di istanza. Se specifichi un modello di istanza regionale, puoi prenotare le VM solo nella regione del modello di istanza.
INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza esistente. Se il modello di istanza specifica un tipo di macchina A3, devi includere il campospecificReservationRequired
nel corpo della richiesta e impostare il campo sutrue
. Questo indica che solo le VM che hanno come target questa prenotazione possono consumarla. Per maggiori informazioni, consulta Utilizzo delle VM da una prenotazione specifica.Per specificare che solo le VM che hanno come target questa prenotazione specificamente possono utilizzarla, includi il campo
specificReservationRequired
nel corpo della richiesta e imposta il campo sutrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e un'ora specifiche, effettua una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Sostituisci
DELETE_AT_TIME
con una data e un'ora formattate come timestamp RFC 3339, che deve essere il seguente:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno di quattro cifre, mese di due cifre e giorno del mese a due cifre, separati da trattini (-
).HH:MM:SS
: un'ora nel formato a due cifre (ora nel formato 24 ore, minuti a due cifre e secondi a due cifre, separati dai due punti (:
).OFFSET
: il fuso orario formattato come differenza rispetto al Tempo coordinato universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un determinato periodo di tempo, effettua una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Sostituisci
DELETE_AFTER_DURATION
con una durata in secondi. Ad esempio, specifica86400
per 86.400 secondi (1 giorno).
Nella console Google Cloud, vai alla pagina Prenotazioni.
Viene visualizzata la pagina Prenotazioni.
Fai clic su
Crea prenotazione.Viene visualizzata la pagina Crea una prenotazione.
Nel campo Nome, inserisci un nome per la prenotazione.
Seleziona la regione e la zona in cui vuoi prenotare le risorse.
Nella sezione Tipo di condivisione, procedi nel seguente modo:
Per specificare una prenotazione condivisa, fai clic su Condivisa.
Fai clic su
Aggiungi progetti, quindi seleziona i progetti dell'organizzazione del progetto attuale con cui vuoi condividere la prenotazione.
Nella sezione Usa con istanza VM, seleziona una delle seguenti opzioni:
Per consentire alle VM corrispondenti di consumare automaticamente questa prenotazione, seleziona Utilizza automaticamente la prenotazione (impostazione predefinita).
Per utilizzare le risorse di questa prenotazione solo durante la creazione di VM corrispondenti che hanno come target questa prenotazione in modo specifico per nome, seleziona Seleziona prenotazione specifica.
Nel campo Numero di istanze VM, inserisci il numero di VM che vuoi prenotare.
Nella sezione Configurazione macchina, seleziona Specifica il tipo di macchina, quindi specifica quanto segue:
Nei campi Famiglia di macchine, Serie e Tipo di macchina, seleziona una famiglia di macchine, una serie e un tipo di macchina.
(Facoltativo) Per specificare una piattaforma CPU minima o collegare GPU alle VM N1, segui questi passaggi:
Per espandere la sezione Piattaforma CPU e GPU, fai clic sulla freccia di espansione
.(Facoltativo) Per specificare una piattaforma CPU minima, seleziona un'opzione nell'elenco Plaform CPU.
(Facoltativo) Per collegare GPU alle VM N1, fai clic su
Aggiungi GPU. Quindi, nei campi Tipo di GPU e Numero di GPU, seleziona il tipo e il numero di GPU da collegare a ogni VM N1.
(Facoltativo) Per aggiungere dischi SSD locali:
Nel campo Numero di dischi, seleziona il numero di dischi SSD locali per ogni VM.
Nel campo Tipo di interfaccia, seleziona l'interfaccia per i dischi SSD locali.
Nella sezione Eliminazione automatica, puoi abilitare l'opzione di eliminazione automatica per consentire a Compute Engine di eliminare automaticamente la prenotazione in una data e un'ora specifiche. L'eliminazione automatica delle prenotazioni può essere utile per evitare addebiti inutili quando smetti di utilizzare la prenotazione.
Per creare la prenotazione, fai clic su Crea.
La creazione della prenotazione condivisa potrebbe richiedere un po' di tempo. Questa azione ti reindirizza alla pagina Prenotazioni.
RESERVATION_NAME
: il nome della prenotazione da creare.MACHINE_TYPE
: un tipo di macchina da utilizzare per ogni VM. Se specifichi un tipo di macchina A3, devi includere il flag--require-specific-reservation
. Questo indica che solo le VM che hanno come target la prenotazione possono utilizzarla. Per maggiori informazioni, consulta Utilizzo delle VM da una prenotazione specifica.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse.CONSUMER_PROJECT_IDS
: un elenco separato da virgole di ID di progetti che possono utilizzare questa prenotazione, ad esempioproject-1,project-2
. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, è già consentito utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.ZONE
: la zona in cui prenotare le risorse.Per collegare le GPU alle VM N1 prenotate, includi il flag
--accelerator
.gcloud compute reservations create my-reservation \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE ...
Sostituisci quanto segue:
NUMBER_OF_ACCELERATORS
: il numero di GPU da aggiungere per VM prenotata.ACCELERATOR_TYPE
: un modello GPU supportato per le VM N1. Assicurati che il modello GPU scelto sia disponibile nella zona in cui vuoi prenotare le risorse. In caso contrario, la creazione della prenotazione non va a buon fine.
Per aggiungere uno o più dischi SSD locali a ogni VM prenotata, includi uno o più flag
--local-ssd
. Puoi specificare fino a 24 dischi SSD locali. Ogni disco SSD locale ha una dimensione di 375 GB.Ad esempio, per specificare due SSD locali durante la creazione di una prenotazione, includi due flag
--local-ssd
come segue:gcloud compute reservations create my-reservation \ --local-ssd=size=375,interface=INTERFACE_1 \ --local-ssd=size=375,interface=INTERFACE_2 \ ...
Sostituisci
INTERFACE_1
eINTERFACE_2
con il tipo di interfaccia che vuoi venga utilizzato da ogni disco SSD locale. Specifica uno dei seguenti valori:Interfacce disco NVME:
nvme
Interfacce disco SCSI:
scsi
Assicurati che il tipo di macchina specificato per le VM prenotate supporti le interfacce del disco scelte. In caso contrario, la creazione della prenotazione non va a buon fine. Per ulteriori informazioni, vedi come scegliere un'interfaccia del disco.
Per fare in modo che le VM prenotate utilizzino una piattaforma CPU minima specifica anziché la piattaforma CPU predefinita della zona, includi il flag
--min-cpu-platform
.gcloud compute reservations create my-reservation \ --min-cpu-platform="MIN_CPU_PLATFORM" \ ...
Sostituisci
MIN_CPU_PLATFORM
con una piattaforma CPU minima. Per assicurarti che una piattaforma CPU sia disponibile nella zona in cui prenota le risorse, visualizza le piattaforme CPU disponibili per zona.Per specificare che solo le VM che hanno come target questa prenotazione specificamente possono utilizzarla, includi il flag
--require-specific-reservation
.gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e un'ora specifiche, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Sostituisci
DELETE_AT_TIME
con una data e un'ora formattate come timestamp RFC 3339, che deve essere il seguente:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno di quattro cifre, mese di due cifre e giorno del mese a due cifre, separati da trattini (-
).HH:MM:SS
: un'ora nel formato a due cifre (ora nel formato 24 ore, minuti a due cifre e secondi a due cifre, separati dai due punti (:
).OFFSET
: il fuso orario formattato come differenza rispetto al Tempo coordinato universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un determinato periodo di tempo, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Sostituisci
DELETE_AFTER_DURATION
con una durata in giorni, ore, minuti o secondi. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
per 1 giorno, 2 ore, 3 minuti e 4 secondi.
- Imposta il campo
share_type
suSPECIFIC_PROJECTS
. - Nel blocco
project_map
, specifica gli ID progetto dei progetti con cui vuoi condividere questa prenotazione. Il campo
projectMap
.Il campo
shareType
è stato impostato suSPECIFIC_PROJECTS
.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse.ZONE
: la zona in cui prenotare le risorse.RESERVATION_NAME
: il nome della prenotazione da creare.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: gli ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, è già consentito utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.MACHINE_TYPE
: un tipo di macchina da utilizzare per ogni VM. Se specifichi un tipo di macchina A3, devi includere il campospecificReservationRequired
nel corpo della richiesta e impostare il campo sutrue
. Questo indica che solo le VM che hanno come target specifico la prenotazione possono consumarla.Per collegare le GPU alle VM N1 prenotate, includi il campo
guestAccelerators
nel corpo della richiesta.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], ... }, ... } }
Sostituisci quanto segue:
NUMBER_OF_ACCELERATORS
: il numero di GPU da aggiungere per VM prenotata.ACCELERATOR_TYPE
: un modello GPU supportato per le VM N1. Assicurati che il modello GPU scelto sia disponibile nella zona in cui vuoi prenotare le risorse. In caso contrario, la creazione della prenotazione non va a buon fine.
Per aggiungere uno o più dischi SSD locali a ogni VM prenotata, includi il campo
localSsds
nel corpo della richiesta. Puoi specificare fino a 24 dischi SSD locali. Ogni disco SSD locale è da 375 GB.Ad esempio, per specificare due SSD locali durante la creazione di una prenotazione, specifica quanto segue:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_1" }, { "diskSizeGb": "375", "interface": "INTERFACE_2" } ], ... }, ... } }
Sostituisci
INTERFACE_1
eINTERFACE_2
con il tipo di interfaccia che vuoi venga utilizzato da ogni disco SSD locale. Specifica uno dei seguenti valori:Interfacce disco NVME:
NVME
Interfacce disco SCSI:
SCSI
Assicurati che il tipo di macchina specificato per le VM prenotate supporti le interfacce del disco scelte. In caso contrario, la creazione della prenotazione non va a buon fine. Per ulteriori informazioni, vedi come scegliere un'interfaccia del disco.
Per fare in modo che le VM prenotate utilizzino una piattaforma CPU minima specifica anziché la piattaforma CPU predefinita della zona, includi il campo
minCpuPlatform
nel corpo della richiesta.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "minCpuPlatform": "MIN_CPU_PLATFORM", ... }, ... } }
Sostituisci
MIN_CPU_PLATFORM
con una piattaforma CPU minima. Per assicurarti che una piattaforma CPU sia disponibile nella zona in cui prenota le risorse, visualizza le piattaforme CPU disponibili per zona.Per specificare che solo le VM che hanno come target specifico questa prenotazione possono consumarla, includi il campo
specificReservationRequired
nel corpo della richiesta e imposta il campo sutrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e un'ora specifiche, effettua una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Sostituisci
DELETE_AT_TIME
con una data e un'ora formattate come timestamp RFC 3339, che deve essere il seguente:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno di quattro cifre, mese di due cifre e giorno del mese a due cifre, separati da trattini (-
).HH:MM:SS
: un'ora nel formato a due cifre (ora nel formato 24 ore, minuti a due cifre e secondi a due cifre, separati dai due punti (:
).OFFSET
: il fuso orario formattato come differenza rispetto al Tempo coordinato universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un determinato periodo di tempo, effettua una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Sostituisci
DELETE_AFTER_DURATION
con una durata in secondi. Ad esempio, specifica86400
per 86.400 secondi (1 giorno).
Scopri come visualizzare le tue prenotazioni.
Scopri come collegare le prenotazioni agli impegni.
Scopri come utilizzare le prenotazioni.
Scopri come monitorare il consumo delle prenotazioni.
Terraform
Per utilizzare gli esempi Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per maggiori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare prenotazioni condivise, chiedi all'amministratore di concederti i seguenti ruoli IAM:
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare prenotazioni condivise. Per visualizzare esattamente le autorizzazioni necessarie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare prenotazioni condivise sono necessarie le seguenti autorizzazioni:
Potresti anche riuscire a ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Best practice
Quando crei prenotazioni condivise, si consiglia di seguire queste best practice. Se le segui, puoi ottimizzare la gestibilità e l'utilizzo delle prenotazioni condivise nella tua organizzazione.
Consenti e limita la creazione e la modifica di prenotazioni condivise ai progetti
Per impostazione predefinita, nessun progetto è autorizzato a creare o modificare prenotazioni condivise in un'organizzazione. Aggiungi progetti al vincolo del criterio dell'organizzazione Progetti del proprietario delle prenotazioni condivise (
compute.sharedReservationsOwnerProjects
) per consentire loro di creare e modificare prenotazioni condivise. Per ulteriori informazioni sui vincoli dei criteri dell'organizzazione, consulta Introduzione al servizio Criteri dell'organizzazione.Segui questi passaggi per visualizzare e modificare il vincolo del criterio dell'organizzazione Progetti del proprietario delle prenotazioni condivise (
compute.sharedReservationsOwnerProjects
).Visualizza il vincolo del criterio dell'organizzazione delle prenotazioni condivise
Per visualizzare i progetti autorizzati a creare e modificare le prenotazioni condivise, utilizza la console Google Cloud o gcloud CLI.
Console
Segui i passaggi per visualizzare i criteri dell'organizzazione utilizzando il vincolo progetti del proprietario di prenotazioni condivise.
gcloud
Per visualizzare i progetti che il vincolo
compute.sharedReservationsOwnerProjects
consente di creare e modificare le prenotazioni condivise:Modifica il vincolo del criterio dell'organizzazione per le prenotazioni condivise
Per modificare i progetti autorizzati a creare e modificare le prenotazioni condivise, utilizza la console Google Cloud o gcloud CLI.
Console
Segui i passaggi per la personalizzazione dei criteri per i vincoli degli elenchi utilizzando il vincolo progetti del proprietario di prenotazioni condivise.
gcloud
Per modificare i progetti che il vincolo
compute.sharedReservationsOwnerProjects
consente di creare e modificare le prenotazioni condivise, utilizza uno dei seguenti metodi:Potrebbe essere necessario attendere alcuni minuti prima che la modifica abbia effetto.
Crea una prenotazione condivisa
Questa sezione spiega come creare prenotazioni condivise. Dopo aver creato una prenotazione condivisa, questa può essere modificata solo dal progetto del proprietario, ma le risorse per una prenotazione condivisa possono essere utilizzate dal progetto del proprietario o da qualsiasi progetto consumer.
Per utilizzare una prenotazione, una VM deve avere proprietà che corrispondono esattamente alla prenotazione. Per specificare le proprietà delle VM che vuoi prenotare, seleziona una delle seguenti sezioni di questo documento:
Per impostazione predefinita, una prenotazione può essere utilizzata automaticamente da qualsiasi VM con proprietà corrispondenti. Se vuoi controllare il consumo delle prenotazioni, esegui una o più delle seguenti operazioni:
Specifica un modello di istanza
Prima di creare una prenotazione specificando un modello di istanza, verifica quanto segue:
Per creare una prenotazione condivisa specificando un modello di istanza, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare una prenotazione condivisa, utilizza il comando
gcloud compute reservations create
con i flag--share-setting=projects
e--share-with
.Per creare una prenotazione condivisa specificando un modello di istanza e senza includere flag facoltativi, esegui questo comando:
gcloud compute reservations create RESERVATION_NAME \ --project=PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione specificando un modello di istanza globale nella zona
us-central1-a
, condividere la prenotazione con i progettiproject-1
eproject-2
e prenotare dieci VM ciascuna delle quali utilizza un tipo di macchina N2 predefinito con 4 vCPU, esegui il comando seguente:gcloud compute reservations create my-reservation \ --project=example-project \ --share-setting=projects \ --share-with=project-1,project-2 \ --source-instance-template=projects/example-project/global/example-instance-template \ --vm-count=10 \ --zone=us-central1-a
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
REST
Per creare una prenotazione condivisa, effettua una richiesta
POST
al metodoreservations.insert
. Nel corpo della richiesta, includi quanto segue:Ad esempio, per creare una prenotazione condivisa specificando un modello di istanza senza includere campi facoltativi e condividere la prenotazione con due progetti consumer, effettua la seguente richiesta
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione per dieci VM nella zona
us-central1-a
specificando un modello di istanza globale e condividere la prenotazione con i progettiproject-1
eproject-2
, effettua la seguente richiestaPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Specifica direttamente le proprietà della VM
Per creare una prenotazione condivisa specificando direttamente le proprietà, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare una prenotazione condivisa, utilizza il comando
gcloud compute reservations create
con i flag--share-setting=projects
e--share-with
.Per creare una prenotazione condivisa specificando le proprietà direttamente e senza includere flag facoltativi, esegui questo comando:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --project=PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione nella zona
us-central1-a
per dieci VM, ognuna delle quali utilizza un tipo di macchina predefinita N2 con 4 vCPU, e condividere la prenotazione con i progettiproject-1
eproject-2
, esegui questo comando:gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --project=example-project \ --share-setting=projects \ --share-with=project-1,project-2 \ --vm-count=10 \ --zone=us-central1-a
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Terraform
Per creare una prenotazione, utilizza la risorsa Terraform
google_compute_reservation
. Per specificare una prenotazione condivisa, definisci il bloccoshare_settings
:Per maggiori informazioni su come utilizzare Terraform, consulta Utilizzo di Terraform con Google Cloud.
REST
Per creare una prenotazione condivisa, effettua una richiesta
POST
al metodoreservations.insert
. Nel corpo della richiesta, includi quanto segue:Ad esempio, per creare una prenotazione condivisa senza includere campi facoltativi e condividere la prenotazione con due progetti consumer, effettua la seguente richiesta
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", } } }
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione specificando un modello di istanza globale nella zona
us-central1-a
, condividere la prenotazione con i progettiproject-1
eproject-2
e prenotare dieci VM che utilizzano ciascuna un tipo di macchina N2 predefinito con 4 vCPU, effettua la seguente richiestaPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "instanceProperties": { "machineType": "n2-standard-4", } } }
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
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 2024-07-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" }] -