Crea una prenotazione condivisa

Questo documento spiega come creare prenotazioni condivise, condivisi tra più progetti e gestisci i progetti della tua organizzazione possono utilizzare le prenotazioni condivise.

Una prenotazione condivisa può essere utilizzata dal progetto che ospita la prenotazione (progetto proprietario) e dai progetti con cui è condivisa la prenotazione (consumer progetti). 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 e ridurre il numero di prenotazioni che dovrai creare gestire. Per scoprire di più sulle prenotazioni, consulta Prenotazioni delle risorse di zona 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 l'impegno di utilizzo applicabile (CUD). Puoi anche creare e collegare una prenotazione a un impegno quando acquisti l'impegno. Per saperne di più, vedi Collegare le prenotazioni agli impegni.

  • Per creare una prenotazione che possa essere utilizzata da un solo progetto, consulta Crea una prenotazione per un singolo progetto.

Prima di iniziare

  • Leggi lo requisiti e . limitazioni per le prenotazioni.
  • Leggi lo requisiti e . limitazioni per le prenotazioni condivise.
  • Assicurati che il progetto che utilizzi per creare prenotazioni condivise sia stato aggiunto Alla lista consentita dei progetti del proprietario di prenotazioni condivise Criterio dell'organizzazione (compute.sharedReservationsOwnerProjects) limitato da un amministratore dei criteri dell'organizzazione. Questa lista consentita è vuota da per impostazione predefinita, quindi non puoi creare prenotazioni condivise finché la tua organizzazione concede questa autorizzazione a uno o più progetti. Per ulteriori dettagli sulla visualizzazione e sulla modifica del vincolo dei criteri dell'organizzazione, consulta Consentire e limitare i progetti creazione e modifica delle prenotazioni condivise in questo documento.
  • 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Per utilizzare gli esempi di Terraform in questa pagina in un ambiente dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Installa Google Cloud CLI.
      2. Per initialize gcloud CLI, esegui questo comando:

        gcloud init
      3. Crea credenziali di autenticazione locali per il tuo Account Google:

        gcloud auth application-default login

      Per ulteriori informazioni, vedi 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 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 prenotazioni condivise, chiedi all'amministratore di concederti seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti le autorizzazioni necessarie per creare prenotazioni condivise. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare prenotazioni condivise sono necessarie le seguenti autorizzazioni:

  • compute.reservations.create del progetto
  • Per visualizzare i criteri dell'organizzazione: orgpolicy.policy.get dell'organizzazione
  • Per modificare i criteri dell'organizzazione: orgpolicy.policy.set dell'organizzazione
  • Per specificare un modello di istanza: compute.instanceTemplates.useReadOnly sul modello di istanza

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

Best practice

Quando crei prenotazioni condivise, si consiglia di seguire queste best practice. Se li segui, puoi ottimizzare la gestibilità e l'utilizzo prenotazioni condivise nella tua organizzazione.

  • Fai in modo che il progetto del proprietario crei la prenotazione condivisa, ma non la utilizzi.
    • Per distribuire la spesa tra i progetti, si consiglia di avere solo i progetti consumer utilizzano una prenotazione condivisa. Il progetto proprietario deve da utilizzare solo per creare la prenotazione condivisa.
    • Il progetto proprietario deve avere una quota sufficiente per il doppio delle risorse per prenotare. Per ulteriori informazioni, vedi Requisiti aggiuntivi per le prenotazioni condivise.
  • Riduci al minimo il numero di progetti nella tua organizzazione a cui consenti di per creare prenotazioni condivise. Puoi controllare questo comportamento tramite il pulsante Progetti con proprietario delle prenotazioni Criterio dell'organizzazione (compute.sharedReservationsOwnerProjects) di blocco.
    • Puoi elencare solo le prenotazioni create da ciascun progetto. Ciò significa che le prenotazioni condivise siano elencate solo nel progetto del proprietario, impossibile elencare le prenotazioni condivise con ciascun progetto o tutte le prenotazioni in ogni organizzazione, perciò avere solo pochi di progetto semplifica il monitoraggio e la gestione prenotazioni.
    • Limita la condivisione di una prenotazione condivisa a pochi progetti solo a e gestire più facilmente la quota delle risorse prenotate.
    • Per ulteriori informazioni, vedi Consenti e limita i progetti da creazione e modifica delle prenotazioni condivise.
  • Riduci al minimo il numero di prenotazioni condivise separate con una VM identica proprietà.
    • Un'organizzazione può avere fino a 100 prenotazioni condivise per ogni combinazione di VM proprietà. Di conseguenza, riducendo al minimo il numero di prenotazioni condivise, con proprietà VM identiche che crei aiutano a mitigare limite.
    • Avere meno prenotazioni condivise migliora la gestibilità.
  • Condividi le prenotazioni solo tra progetti con la stessa fatturazione Cloud .
    • Limita ogni prenotazione condivisa alla condivisione solo con progetti consumer che hanno lo stesso account di fatturazione Cloud del progetto proprietario. In questo modo è più facile vedere se una prenotazione è stata fruita e come è stato fatturato.
    • Se hai attivato alla condivisione dello sconto per impegno di utilizzo (CUD) e sei idoneo a ricevere sconti per impegno di utilizzo (CUD) al A livello di account di fatturazione Cloud, quindi, per massimizzare gli sconti per impegno di utilizzo (CUD) ricevi per le prenotazioni che hai utilizzato, limita le prenotazioni condivise a l'account di fatturazione Cloud di tale impegno. In questo modo mantieni una fatturazione coerente tra i progetti che creano e utilizzano prenotazioni.

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 all'interno di un'organizzazione. Aggiungi progetti al Vincolo del criterio dell'organizzazione per i progetti proprietari delle prenotazioni condivise (compute.sharedReservationsOwnerProjects) per creare e modificare prenotazioni condivise. Per ulteriori informazioni sui vincoli dei criteri dell'organizzazione, consulta Introduzione al servizio Criteri dell'organizzazione.

Per visualizzare e modificare Progetti del proprietario con prenotazioni condivise (compute.sharedReservationsOwnerProjects) un vincolo del criterio dell'organizzazione.

Visualizza il vincolo del criterio dell'organizzazione delle prenotazioni condivise

Per vedere quali progetti sono autorizzati a creare e modificare le prenotazioni condivise, utilizza la console Google Cloud o gcloud CLI.

Console

Segui i passaggi per Visualizzazione dei criteri dell'organizzazione utilizzando il vincolo Progetti del proprietario delle prenotazioni condivise.

gcloud

Per vedere quali progetti è compute.sharedReservationsOwnerProjects consente di creare e modificare prenotazioni condivise:

  1. Scarica il criterio per la tua organizzazione come file denominato policy.yaml, utilizzando Comando gcloud resource-manager org-policies describe:

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
    

    Sostituisci ORGANIZATION_ID con ID organizzazione della tua organizzazione.

  2. Utilizza un editor di testo per aprire il file policy.yaml e visualizzare Vincolo compute.sharedReservationsOwnerProjects. I progetti a cui è consentito creare e modificare prenotazioni condivise sotto allowedValues:

    ...
    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 a cui è consentito per creare prenotazioni condivise.

  3. (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
      

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 Personalizzazione dei criteri per i vincoli degli elenchi utilizzando il vincolo Progetti del proprietario delle prenotazioni condivise.

gcloud

Per modificare i progetti compute.sharedReservationsOwnerProjects consente di creare e modificare prenotazioni condivise, utilizza uno dei seguenti metodi:

  • Concedere a un singolo progetto l'autorizzazione alla creazione e alla modifica per le prenotazioni condivise, utilizza Comando gcloud resource-manager org-policies allow. Puoi ripetere questo comando per ogni progetto che vuoi concedere questa autorizzazione.

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    Sostituisci quanto segue:

    • PROJECT_NUMBER: il valore numero progetto (non l'ID progetto) di un progetto nell'organizzazione a cui vuoi permettono di creare e modificare prenotazioni condivise.
    • ORGANIZATION_ID: il valore ID organizzazione della tua organizzazione.
  • Per concedere o revocare le autorizzazioni per più progetti a creare e modificare prenotazioni condivise, sostituire l'organizzazione vincolo del criterio:

    1. Per scaricare il criterio per la tua organizzazione come file denominato policy.yaml, utilizza la Comando gcloud resource-manager org-policies describe:

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
      

      Sostituisci ORGANIZATION_ID con ID organizzazione della tua organizzazione.

    2. Utilizza un editor di testo per modificare il file policy.yaml in modo che Il vincolo compute.sharedReservationsOwnerProjects elenca tutte le a cui vuoi consentire la creazione e la modifica di progetti condivisi in allowedValues.

      • Per ogni progetto a cui vuoi concedere l'autorizzazione alla creazione. e modificare le prenotazioni condivise, aggiungi il progetto in una nuova riga allowedValues.
      • Per ogni progetto per cui vuoi revocare l'autorizzazione di creazione. e modificare le prenotazioni condivise, elimina la riga per quel progetto.

      Quando hai finito, assicurati che il file policy.yaml sia 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 che vuoi avere l'autorizzazione per creare e modificare prenotazioni condivise.

    3. Salva il file policy.yaml e chiudi l'editor di testo.

    4. 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 ID organizzazione della tua organizzazione.

    5. (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
        

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 prenotazione condivisa, può essere modificata solo dal progetto del proprietario, le risorse per una prenotazione condivisa possono essere utilizzate dal progetto proprietario o da qualsiasi per i progetti consumer.

Per utilizzare una prenotazione, una VM deve avere proprietà che corrispondono esattamente la prenotazione. Per specificare le proprietà delle VM che vuoi prenotare, seleziona una delle seguenti sezioni di questo documento:

  • 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 definiscono le proprietà di una prenotazione e le VM che possono utilizzare nello stesso luogo. Tuttavia, poiché i modelli di un progetto specifico, non puoi utilizzare lo stesso modello per creare VM consumare la prenotazione all'esterno del progetto che ha creato la prenotazione. Per i progetti con cui è condivisa la prenotazione, devi creare file i modelli in questi progetti o creare VM specificando direttamente le proprietà.

  • Specificare le proprietà direttamente

    Questa sezione spiega come definire direttamente le proprietà di un elemento prenotazione. Questo metodo richiede di verificare manualmente che le proprietà delle VM e delle prenotazioni corrispondono esattamente: le proprietà non corrispondenti ne impediscono il consumo.

Per impostazione predefinita, una prenotazione può essere utilizzata automaticamente da qualsiasi VM con proprietà che corrispondono. Se vuoi controllare la prenotazione di Google Cloud, esegui una o più delle seguenti operazioni:

Specifica un modello di istanza

Prima di creare una prenotazione specificando un modello di istanza, assicurati che le seguenti:

  • Un modello di istanza contiene impostazioni specifiche del progetto, quindi puoi e utilizzare un modello di istanza all'interno dello stesso progetto. Se crei un per una prenotazione condivisa specificando un modello di istanza, lo stesso modello per creare VM che possono utilizzare la prenotazione all'esterno al progetto che ha creato la prenotazione.

  • Crea la prenotazione nella stessa regione e zona delle risorse solo all'interno del modello di istanza. Qualsiasi regionale o risorse di zona specificato in un modello di istanza, come un tipo di macchina Volume Persistent Disk: limita l'utilizzo del modello alle località in cui si trovano queste risorse. Ad esempio, se il modello di istanza specifica un volume di Persistent Disk esistente nella zona us-central1-a, quindi puoi creare la tua prenotazione solo nella stessa zona. Per verificare se un del modello esistente specifica le risorse che associano il modello a un una regione o una zona specifica, visualizza i dettagli del modello di istanza e cercare riferimenti a risorse regionali o di zona al suo interno.

Per creare una prenotazione condivisa specificando un modello di istanza, selezionane uno una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Prenotazioni.

    Vai a Prenotazioni

    Viene visualizzata la pagina Prenotazioni.

  2. Fai clic su Crea prenotazione.

    Viene visualizzata la pagina Crea una prenotazione.

  3. Nel campo Nome, inserisci un nome per la prenotazione.

  4. Seleziona la regione e la zona in cui vuoi prenotare le risorse.

  5. Nella sezione Tipo di condivisione, procedi nel seguente modo:

    1. Per specificare una prenotazione condivisa, fai clic su Condivisa.

    2. Fai clic su Aggiungi progetti. quindi seleziona i progetti dall'organizzazione del progetto attuale con cui vuoi condividere la prenotazione.

  6. Nella sezione Usa con istanza VM, seleziona una delle seguenti opzioni opzioni:

    • per consentire alle istanze VM corrispondenti di usare automaticamente questo seleziona Utilizza prenotazione automaticamente (impostazione predefinita).

    • Per utilizzare le risorse di questa prenotazione solo durante la creazione delle corrispondenze VM che scelgono specificamente come target questa prenotazione per nome, seleziona Seleziona una prenotazione specifica.

  7. Nel campo Numero di istanze VM, inserisci il numero di VM che che vuoi prenotare.

  8. Nella sezione Configurazione macchina, segui questi passaggi:

    1. Per specificare le proprietà delle VM da un modello modello di istanza, seleziona Utilizza modello di istanza.

    2. Nel campo Modello di istanza, seleziona il modello di istanza la tua scelta. Se selezioni un modello di istanza regionale, puoi prenota risorse solo all'interno della regione del modello di istanza.

  9. Nella sezione Eliminazione automatica, puoi attivare l'opzione di eliminazione automatica. per consentire a Compute Engine di eliminare automaticamente la prenotazione una data e un'ora specifiche. L'eliminazione automatica delle prenotazioni può essere è utile per evitare addebiti inutili quando smetti di utilizzare prenotazione.

  10. Per creare la prenotazione, fai clic su Crea.

    La creazione della prenotazione condivisa potrebbe richiedere un po' di tempo. Questo ti reindirizza alla pagina Prenotazioni.

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 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:

  • RESERVATION_NAME: il nome della prenotazione per creare.

  • PROJECT_ID: l'ID del progetto in cui vuoi e dove è presente il modello di istanza.

  • CONSUMER_PROJECT_IDS: un elenco separato da virgole di ID dei progetti che possono utilizzare questa prenotazione, ad esempio project-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 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. Sostituisci REGION con la regione in cui si trova l'istanza in cui si trova il modello. 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 elemento esistente modello di istanza. Se il modello di istanza specifica una macchina A3 devi includere il valore Flag --require-specific-reservation. Questo indica che solo le VM che hanno come target specifico la prenotazione può utilizzarlo. Per ulteriori informazioni, vedi Utilizza le VM da una prenotazione specifica.

  • NUMBER_OF_VMS: il numero di VM da prenotare.

  • ZONE: la zona in cui prenotare le risorse.

Ad esempio, per creare una prenotazione specificando un'istanza globale modello nella zona us-central1-a, condividi la prenotazione con i progetti project-1 e project-2 e prenota dieci VM, ciascuna delle quali utilizza un'istanza N2 un tipo di macchina predefinita con 4 vCPU, esegui questo comando:

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:

  • Per specificare che solo le VM che scelgono specificamente come target questa prenotazione possono consumarlo, includere --require-specific-reservation flag.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Per abilitare Compute Engine elimini 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 formattato come Timestamp RFC 3339, che indica deve essere:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come quattro cifre anno, mese a due cifre e giorno del mese a due cifre, separati per trattini (-).

      • HH:MM:SS: un'ora nel formato a due cifre utilizzando un orario di 24 ore, minuti a 2 cifre e secondi a 2 cifre, separate dai due punti (:).

      • OFFSET: il fuso orario formattato come offset di 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, specifica Z.

    • Per eliminare la prenotazione dopo un determinato periodo di tempo, utilizza il metodo 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 tra giorni, ore, minuti o secondi. Ad esempio, specifica 30m per 30 minuti o 1d2h3m4s per 1 giorno, 2 ore, 3 minuti e 4 secondi.

REST

Per creare una prenotazione condivisa, invia una richiesta POST a Metodo reservations.insert. Nel corpo della richiesta, includi quanto segue:

  • Il campo projectMap.

  • Il campo shareType è stato impostato su SPECIFIC_PROJECTS.

Ad esempio, per creare una prenotazione condivisa specificando un'istanza. senza includere campi facoltativi e condividi 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:

  • PROJECT_ID: l'ID del progetto in cui vuoi e dove è presente il modello di istanza.

  • ZONE: la zona in cui prenotare le risorse.

  • RESERVATION_NAME: il nome della prenotazione per creare.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: il ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 segmenti di pubblico in modo programmatico a gestire i progetti. Questi progetti devono trovarsi nella stessa organizzazione del proprietario progetto. Non includere il progetto del proprietario. Per impostazione predefinita, autorizzati a 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. Sostituisci REGION con la regione in cui si trova l'istanza in cui si trova il modello. 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 elemento esistente modello di istanza. Se il modello di istanza specifica una macchina A3 devi includere il valore Campo specificReservationRequired nel corpo della richiesta e impostare il campo su true. Ciò indica che solo le VM che hanno come target questa prenotazione possono consumarla. Per ulteriori informazioni, vedi Utilizza le VM da una prenotazione specifica.

Ad esempio, per creare una prenotazione per dieci VM nella zona us-central1-a specificare un modello di istanza globale e condividere la prenotazione per i progetti project-1 e project-2, effettua la seguente richiesta POST:

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:

  • Per specificare che solo le VM che scelgono specificamente come target questa prenotazione possono utilizzalo, includi il campo specificReservationRequired nella corpo della richiesta e impostare il campo su true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Per abilitare Compute Engine elimini automaticamente la prenotazione, seleziona uno dei seguenti metodi:

    • Per eliminare la prenotazione in una data e un'ora specifiche, crea un POST richiesta alla Metodo beta.reservations.insert. Nel corpo della richiesta, includi il campo deleteAtTime.

      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 formattato come Timestamp RFC 3339, che indica deve essere:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come quattro cifre anno, mese a due cifre e giorno del mese a due cifre, separati per trattini (-).

      • HH:MM:SS: un'ora nel formato a due cifre utilizzando un orario di 24 ore, minuti a 2 cifre e secondi a 2 cifre, separate dai due punti (:).

      • OFFSET: il fuso orario formattato come offset di 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, specifica Z.

    • Per eliminare la prenotazione dopo un determinato periodo di tempo, crea una POST richiesta alla Metodo beta.reservations.insert. Nel corpo della richiesta, includi il campo deleteAfterDuration.

      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 tra secondi. Ad esempio, specifica 86400 per 86.400 secondi (1 giorno).

Specifica direttamente le proprietà della VM

Per creare una prenotazione condivisa specificando direttamente le proprietà, seleziona una di le seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina Prenotazioni.

    Vai a Prenotazioni

    Viene visualizzata la pagina Prenotazioni.

  2. Fai clic su Crea prenotazione.

    Viene visualizzata la pagina Crea una prenotazione.

  3. Nel campo Nome, inserisci un nome per la prenotazione.

  4. Seleziona la regione e la zona in cui vuoi prenotare le risorse.

  5. Nella sezione Tipo di condivisione, procedi nel seguente modo:

    1. Per specificare una prenotazione condivisa, fai clic su Condivisa.

    2. Fai clic su Aggiungi progetti. quindi seleziona i progetti dall'organizzazione del progetto attuale con cui vuoi condividere la prenotazione.

  6. Nella sezione Usa con istanza VM, seleziona una delle seguenti opzioni opzioni:

    • Per consentire alle VM corrispondenti di consumare automaticamente questa prenotazione, Seleziona Utilizza prenotazione automaticamente (impostazione predefinita).

    • Per utilizzare le risorse di questa prenotazione solo durante la creazione delle corrispondenze VM che scelgono specificamente come target questa prenotazione per nome, seleziona Seleziona una prenotazione specifica.

  7. Nel campo Numero di istanze VM, inserisci il numero di VM che che vuoi prenotare.

  8. Nella sezione Configurazione macchina, seleziona Specifica il tipo di macchina, quindi specifica quanto segue:

    1. In Famiglia di macchine, Serie e Tipo di macchina seleziona una famiglia, una serie e un tipo di macchina.

    2. (Facoltativo) Per specificare una piattaforma CPU minima o collegare GPU a N1 VM:

      1. Per espandere la sezione Piattaforma CPU e GPU, fai clic sul pulsante Espansione freccia.

      2. (Facoltativo) Per specificare una piattaforma CPU minima, nel campo Plaform CPU, seleziona un'opzione.

      3. (Facoltativo) Per collegare le GPU alle VM N1, fai clic su Aggiungi GPU. Poi, nel i campi Tipo di GPU e Numero di GPU, seleziona il tipo e il numero di GPU da collegare a ogni VM N1.

    3. (Facoltativo) Per aggiungere dischi SSD locali:

      1. Nel campo Numero di dischi, seleziona il numero di dischi di dischi SSD per ogni VM.

      2. Nel campo Tipo di interfaccia, seleziona l'interfaccia per Dischi SSD locali.

  9. Nella sezione Eliminazione automatica, puoi attivare l'opzione di eliminazione automatica. per consentire a Compute Engine di eliminare automaticamente la prenotazione una data e un'ora specifiche. L'eliminazione automatica delle prenotazioni può essere è utile per evitare addebiti inutili quando smetti di utilizzare prenotazione.

  10. Per creare la prenotazione, fai clic su Crea.

    La creazione della prenotazione condivisa potrebbe richiedere un po' di tempo. Questo ti reindirizza alla pagina Prenotazioni.

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 inclusi eventuali 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:

  • RESERVATION_NAME: il nome della prenotazione per creare.

  • MACHINE_TYPE: un tipo di macchina da utilizzare per ogni VM. Se se specifichi un tipo di macchina A3, devi includere Flag --require-specific-reservation. Questo indica che solo le VM che hanno come target specifico la prenotazione può utilizzarlo. Per ulteriori informazioni, vedi Utilizza le VM da una prenotazione specifica.

  • PROJECT_ID: l'ID del progetto in cui vuoi per prenotare le risorse.

  • CONSUMER_PROJECT_IDS: un elenco separato da virgole di ID dei progetti che possono utilizzare questa prenotazione, ad esempio project-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 la prenotazione.

  • NUMBER_OF_VMS: il numero di VM da prenotare.

  • ZONE: la zona in cui prenotare le risorse.

Ad esempio, per creare una prenotazione nella zona us-central1-a per dieci VM che usano ciascuno un tipo di macchina predefinita N2 con 4 vCPU e condividono con i progetti project-1 e project-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:

  • Per collegare le GPU alle VM N1 prenotate, includi --accelerator flag.

    gcloud compute reservations create my-reservation \
        --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
        ...
    

    Sostituisci quanto segue:

  • Per aggiungere uno o più dischi SSD locali a ogni VM prenotata, includi uno o più flag --local-ssd. Puoi e 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 e INTERFACE_2 con il tipo di interfaccia desiderato Disco SSD locale da utilizzare. Specifica uno dei seguenti valori:

    • Interfacce dei dischi NVME: nvme

    • Interfacce disco SCSI: scsi

    Assicurati che il tipo di macchina specificato per le VM prenotate supporta le interfacce del disco scelte. In caso contrario, la creazione della prenotazione non riesce. Per ulteriori informazioni, scopri come scegli un'interfaccia del disco.

  • Per fare in modo che le VM prenotate utilizzino una specifica piattaforma CPU minima anziché la piattaforma CPU predefinita della zona, includi 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 sia disponibile una piattaforma CPU nella zona in cui ti trovi prenotare risorse, visualizza le piattaforme CPU disponibili per zona.

  • Per specificare che solo le VM che scelgono specificamente come target questa prenotazione possono consumarlo, includere --require-specific-reservation flag.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Per abilitare Compute Engine elimini 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 formattato come Timestamp RFC 3339, che indica deve essere:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come quattro cifre anno, mese a due cifre e giorno del mese a due cifre, separati per trattini (-).

      • HH:MM:SS: un'ora nel formato a due cifre utilizzando un orario di 24 ore, minuti a 2 cifre e secondi a 2 cifre, separate dai due punti (:).

      • OFFSET: il fuso orario formattato come offset di 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, specifica Z.

    • Per eliminare la prenotazione dopo un determinato periodo di tempo, utilizza il metodo 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 tra giorni, ore, minuti o secondi. Ad esempio, specifica 30m per 30 minuti o 1d2h3m4s per 1 giorno, 2 ore, 3 minuti e 4 secondi.

Terraform

Per creare una prenotazione, utilizza google_compute_reservation Risorsa Terraform. Per specificare una prenotazione condivisa, definisci il blocco share_settings:

  • Imposta il campo share_type su SPECIFIC_PROJECTS.
  • Nel blocco project_map, specifica ID progetto dei progetti con cui vuoi condividere questa prenotazione.

Per saperne di più su come utilizzare Terraform, consulta Utilizzo di Terraform con Google Cloud.

REST

Per creare una prenotazione condivisa, invia una richiesta POST a Metodo reservations.insert. Nel corpo della richiesta, includi quanto segue:

  • Il campo projectMap.

  • Il campo shareType è stato impostato su SPECIFIC_PROJECTS.

Ad esempio, per creare una prenotazione condivisa senza includere eventuali elementi facoltativi e condividi la prenotazione con due progetti consumer, seguente richiesta di 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:

  • PROJECT_ID: l'ID del progetto in cui vuoi per prenotare le risorse.

  • ZONE: la zona in cui prenotare le risorse.

  • RESERVATION_NAME: il nome della prenotazione per creare.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: il ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 segmenti di pubblico in modo programmatico a gestire i progetti. Questi progetti devono trovarsi nella stessa organizzazione del proprietario progetto. Non includere il progetto del proprietario. Per impostazione predefinita, autorizzati a utilizzare la prenotazione.

  • NUMBER_OF_VMS: il numero di VM da prenotare.

  • MACHINE_TYPE: un tipo di macchina da utilizzare per ogni VM. Se se specifichi un tipo di macchina A3, devi includere Campo specificReservationRequired in il corpo della richiesta e impostare il campo su true. Questo indica che Le VM che hanno come target specifico la prenotazione possono consumarla.

Ad esempio, per creare una prenotazione specificando un'istanza globale modello nella zona us-central1-a, condividi la prenotazione con i progetti project-1 e project-2 e prenota dieci VM, ciascuna delle quali utilizza un'istanza N2 un tipo di macchina predefinita con 4 vCPU, imposta quanto segue POST richiesta:

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:

  • Per collegare le GPU alle VM N1 prenotate, includi 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:

  • Per aggiungere uno o più dischi SSD locali a per ogni VM prenotata, includi il campo localSsds nel corpo della richiesta. Tu può specificare fino a 24 dischi SSD locali. Ogni disco SSD locale 375 GB.

    Ad esempio, per specificare due SSD locali durante la creazione di una prenotazione, specificare 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 e INTERFACE_2 con il tipo di interfaccia desiderato Disco SSD locale da utilizzare. Specifica uno dei seguenti valori:

    • Interfacce dei dischi NVME: NVME

    • Interfacce disco SCSI: SCSI

    Assicurati che il tipo di macchina specificato per le VM prenotate supporta le interfacce del disco scelte. In caso contrario, la creazione della prenotazione non riesce. Per ulteriori informazioni, scopri come scegli un'interfaccia del disco.

  • Per fare in modo che le VM prenotate utilizzino una specifica piattaforma CPU minima anziché la piattaforma CPU predefinita della zona, includi 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 sia disponibile una piattaforma CPU nella zona in cui ti trovi prenotare risorse, visualizza le piattaforme CPU disponibili per zona.

  • Per specificare che solo le VM scegliere come target questa prenotazione può utilizzarlo, includi il campo specificReservationRequired nella corpo della richiesta e impostare il campo su true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Per abilitare Compute Engine elimini automaticamente la prenotazione, seleziona uno dei seguenti metodi:

    • Per eliminare la prenotazione in una data e un'ora specifiche, crea un POST richiesta alla Metodo beta.reservations.insert. Nel corpo della richiesta, includi il campo deleteAtTime.

      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 formattato come Timestamp RFC 3339, che indica deve essere:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come quattro cifre anno, mese a due cifre e giorno del mese a due cifre, separati per trattini (-).

      • HH:MM:SS: un'ora nel formato a due cifre utilizzando un orario di 24 ore, minuti a 2 cifre e secondi a 2 cifre, separate dai due punti (:).

      • OFFSET: il fuso orario formattato come offset di 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, specifica Z.

    • Per eliminare la prenotazione dopo un determinato periodo di tempo, crea una POST richiesta alla Metodo beta.reservations.insert. Nel corpo della richiesta, includi il campo deleteAfterDuration.

      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 tra secondi. Ad esempio, specifica 86400 per 86.400 secondi (1 giorno).

Passaggi successivi