Ce document explique comment créer des réservations partagées entre plusieurs projets et gérer les projets de votre organisation qui peuvent les utiliser.
Une réservation partagée peut être utilisée par le projet qui héberge la réservation (projet propriétaire) et par les projets avec lesquels la réservation est partagée (projets consommateurs). Utilisez les réservations partagées si votre organisation dispose de plusieurs projets nécessitant des instances de machine virtuelle (VM) avec les mêmes propriétés d'instance réservées. Les réservations partagées vous permettent d'améliorer l'utilisation de vos réservations et de réduire le nombre de réservations que vous devez créer et gérer. Pour en savoir plus, consultez la section Réservations de ressources zonales Compute Engine.
Pour découvrir d'autres méthodes de création de réservations, consultez les pages suivantes :
Si vous avez des engagements d'un ou de trois ans dans le projet en cours, vos ressources réservées reçoivent automatiquement les remises sur engagement d'utilisation applicables. Vous pouvez également créer et associer une réservation à un engagement lorsque vous souscrivez cet engagement. Pour en savoir plus, consultez la section Associer des réservations à des engagements.
Pour créer une réservation qui ne peut être utilisée que par un seul projet, consultez la page Créer une réservation pour un seul projet.
Avant de commencer
- Consultez les exigences et restrictions applicables aux réservations.
- Consultez les exigences relatives aux quotas et les restrictions applicables aux réservations partagées.
- Assurez-vous que le projet que vous utilisez pour créer des réservations partagées a été ajouté à la liste d'autorisation pour la contrainte de règle d'organisation des projets propriétaires de réservations partagées (
compute.sharedReservationsOwnerProjects
) par un administrateur des règles d'administration. Cette liste d'autorisation est vide par défaut, ce qui signifie que vous ne pouvez pas créer de réservations partagées tant que votre organisation n'accorde pas cette autorisation à un ou plusieurs projets. Pour en savoir plus sur l'affichage et la modification de la contrainte de règle d'administration, consultez la section Autoriser et restreindre la création et la modification de réservations partagées pour des projets de ce document. -
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Administrateur de Compute (
roles/compute.admin
) sur le projet - Pour afficher et modifier des règles d'administration : Administrateur des règles d'administration (
roles/orgpolicy.policyAdmin
) sur l'organisation compute.reservations.create
sur le projet-
Pour afficher les règles d'administration :
orgpolicy.policy.get
sur l'organisation -
Pour modifier les règles d'administration :
orgpolicy.policy.set
sur l'organisation -
Pour spécifier un modèle d'instance :
compute.instanceTemplates.useReadOnly
sur le modèle d'instance -
Demander au projet propriétaire de créer la réservation partagée, sans l'utiliser.
- Pour répartir les dépenses entre plusieurs projets, il est recommandé de dédier l'utilisation d'une réservation partagée aux projets clients. Le projet propriétaire ne doit être utilisé que pour créer la réservation partagée.
- Lors de la création d'une réservation partagée, le projet propriétaire doit disposer d'un quota suffisant pour le nombre total de ressources à réserver. Ensuite, une fois la réservation créée, le projet propriétaire doit disposer d'un quota pour toutes les ressources réservées qu'il souhaite consommer. Pour en savoir plus, consultez la section Exigences supplémentaires relatives aux quotas pour les réservations partagées.
-
Minimisez le nombre de projets dans votre organisation que vous autorisez à créer des réservations partagées. Pour ce faire, vous pouvez utiliser la contrainte de règle d'administration des projets propriétaires de réservations partagées (
compute.sharedReservationsOwnerProjects
).- Vous ne pouvez répertorier que les réservations créées par chaque projet. Cela signifie que les réservations partagées ne sont répertoriées que dans le projet propriétaire. Vous ne pouvez pas répertorier les réservations partagées avec chaque projet ni répertorier toutes les réservations partagées dans chaque organisation. Limiter le nombre de projets propriétaires facilite la surveillance et la gestion de vos réservations partagées.
- Limitez le partage d'une réservation partagée à seulement quelques projets, afin de gérer plus facilement le quota de vos ressources réservées.
- Pour en savoir plus, consultez la section Autoriser et restreindre la création et la modification de réservations partagées pour des projets.
-
Réduisez le nombre de réservations partagées distinctes avec des propriétés de VM identiques.
- Une organisation peut avoir jusqu'à 100 réservations partagées pour chaque combinaison unique de propriétés de VM. Par conséquent, réduire le nombre de réservations partagées avec des propriétés de VM identiques que vous créez permet d'atténuer cette limite.
- Un nombre réduit de réservations partagées facilite la gestion.
-
Ne partagez les réservations qu'entre des projets associés au même compte de facturation Cloud.
- Limitez chaque réservation partagée uniquement aux projets clients qui ont le même compte de facturation Cloud que le projet propriétaire. Cela vous permet de voir plus facilement si une réservation a été consommée et comment elle a été facturée.
- Si vous avez activé le partage de remises sur engagement d'utilisation et que vous pouvez bénéficier de remises sur engagement d'utilisation au niveau du compte de facturation Cloud, limitez le partage de vos réservations au compte de facturation Cloud de cet engagement pour maximiser les remises sur engagement d'utilisation que vous recevrez pour vos réservations consommées. Cela vous permet de maintenir une facturation cohérente entre les projets qui créent et consomment des réservations partagées.
-
Pour les demandes de réservations futures, examinez attentivement le nombre total de VM que vous demandez.
- Si vous créez une demande de réservation future, veillez à demander un nombre total de VM qui tienne compte de tous les éléments suivants :
- Toutes les VM réservées correspondantes qui existeront déjà à la date ultérieure.
- Toutes les VM non réservées correspondantes qui existeront déjà à la date ultérieure.
- Toutes les réservations à la demande correspondantes non utilisées qui existeront déjà à la date ultérieure.
- Augmentation de l'utilisation que vous souhaitez réserver à la date ultérieure.
Par exemple, supposons que vous ayez besoin de 10 VM supplémentaires à la date ultérieure et que vous ayez déjà les ressources suivantes à la date ultérieure :
- 40 VM réservées correspondantes
- 50 VM non réservées correspondantes
ou
- 40 VM réservées correspondantes
- 50 réservations à la demande correspondantes non utilisées
Étant donné que votre utilisation existante à la date future équivaut déjà à 90 VM et réservations correspondantes, et que vous avez besoin de 10 VM supplémentaires, vous devez spécifier un nombre total de
100
dans votre demande de réservation future.Pour en savoir plus, consultez la section Compter et provisionner les ressources réservées.
- Si vous créez une demande de réservation future, veillez à demander un nombre total de VM qui tienne compte de tous les éléments suivants :
Téléchargez la règle de votre organisation sous la forme d'un fichier nommé
policy.yaml
, à l'aide de la commandegcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Remplacez ORGANIZATION_ID par l'ID de votre organisation.
Utilisez un éditeur de texte pour ouvrir le fichier
policy.yaml
et afficher la contraintecompute.sharedReservationsOwnerProjects
. Les projets autorisés à créer et à modifier des réservations partagées sont répertoriés sous sa propriétéallowedValues
:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
où PROJECT_NUMBER_1, PROJECT_NUMBER_2 et PROJECT_NUMBER_3 sont les numéros de projets des seuls projets de votre organisation autorisés à créer des réservations partagées.
Facultatif : supprimez le fichier
policy.yaml
.Si vous utilisez un terminal Linux ou macOS, exécutez la commande suivante :
rm policy.yaml
Si vous utilisez un terminal Windows, exécutez la commande suivante :
del policy.yaml
Pour autoriser un seul projet à créer et modifier des réservations partagées, utilisez la commande
gcloud resource-manager org-policies allow
. Vous pouvez répéter cette commande pour chaque projet auquel vous souhaitez accorder cette autorisation.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Remplacez les éléments suivants :
- PROJECT_NUMBER : numéro de projet (et non ID) d'un projet de votre organisation que vous souhaitez autoriser à créer et à modifier les réservations partagées.
- ORGANIZATION_ID : ID de votre organisation.
Pour accorder ou révoquer les autorisations de création et modification des réservations partagées pour plusieurs projets, remplacez la contrainte de règle d'administration :
Pour télécharger la règle de votre organisation sous la forme d'un fichier nommé
policy.yaml
, utilisez la commandegcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Remplacez ORGANIZATION_ID par l'ID de votre organisation.
À l'aide d'un éditeur de texte, modifiez le fichier
policy.yaml
afin que la contraintecompute.sharedReservationsOwnerProjects
répertorie tous les projets pour lesquels vous souhaitez autoriser la création et la modification de réservations partagées sousallowedValues
.- Pour chaque projet que vous souhaitez autoriser à créer et à modifier des réservations partagées, ajoutez le projet sur une nouvelle ligne sous
allowedValues
. - Pour chaque projet pour lequel vous souhaitez révoquer l'autorisation de créer et de modifier des réservations partagées, supprimez la ligne pour ce projet.
Lorsque vous avez terminé, assurez-vous que le fichier
policy.yaml
ressemble à ce qui suit :... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
où PROJECT_NUMBER_1, PROJECT_NUMBER_2 et PROJECT_NUMBER_3 sont les numéros de projet (et non les ID de projet) de tous les projets de l'organisation que vous souhaitez autoriser à créer et modifier les réservations partagées.
- Pour chaque projet que vous souhaitez autoriser à créer et à modifier des réservations partagées, ajoutez le projet sur une nouvelle ligne sous
Enregistrez le fichier
policy.yaml
et fermez l'éditeur.Pour mettre à jour la règle de votre organisation avec vos modifications, utilisez la commande
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
Remplacez ORGANIZATION_ID par l'ID de votre organisation.
Facultatif : supprimez le fichier
policy.yaml
.Si vous utilisez un terminal Linux ou macOS, exécutez la commande suivante :
rm policy.yaml
Si vous utilisez un terminal Windows, exécutez la commande suivante :
del policy.yaml
Option recommandée : spécifier un modèle d'instance
Cette section explique comment utiliser un modèle d'instance pour définir les propriétés d'une réservation partagée. En utilisant un modèle d'instance, vous pouvez définir les propriétés d'une réservation et les VM pouvant utiliser la réservation au même endroit. Toutefois, comme les modèles sont spécifiques à un projet, vous ne pouvez pas utiliser le même modèle pour créer des VM pouvant utiliser la réservation en dehors du projet qui a créé la réservation. Pour les projets avec lesquels la réservation partagée est partagée, vous devez créer des modèles similaires dans ces projets ou créer des VM en spécifiant directement les propriétés.
Spécifier les propriétés directement
Cette section explique comment définir directement les propriétés d'une réservation partagée. Cette méthode nécessite de vous assurer manuellement que les propriétés de vos VM et de vos réservations correspondent exactement. Lespropriétés non concordantes empêchent l'utilisation des réservations.
Créez une réservation qui ne peut être utilisée que par des VM qui la ciblent spécifiquement, comme expliqué dans les sections suivantes de ce document. Ensuite, configurez les VM pour qu'elles utilisent cette réservation spécifique.
Configurez des VM qui ne peuvent utiliser aucune réservation.
Un modèle d'instance contient des paramètres spécifiques au projet. Vous ne pouvez donc accéder à un modèle d'instance et ne l'utiliser que dans le cadre du même projet. Si vous créez une réservation partagée en spécifiant un modèle d'instance, vous ne pouvez pas utiliser le même modèle pour créer des VM pouvant utiliser la réservation en dehors du projet qui a créé la réservation.
Créez votre réservation dans la même région et la même zone que les ressources du modèle d'instance. Toutes les ressources régionales ou zonales spécifiées dans un modèle d'instance (telles qu'un type de machine ou un volume de disque persistant) limitent l'utilisation du modèle aux emplacements où ces ressources existent. Par exemple, si votre modèle d'instance spécifie un volume de disque persistant existant dans la zone
us-central1-a
, vous ne pouvez créer votre réservation que dans la même zone. Pour vérifier si un modèle existant spécifie des ressources qui l'associent à une région ou à une zone spécifique, affichez les détails du modèle d'instance et recherchez des références à des ressources régionales ou zonales qu'il contient.Dans la console Google Cloud, accédez à la page Réservations.
Accéder à la page "Réservations"
La page Réservations s'affiche.
Cliquez sur
Créer une réservation.La page Créer une réservation s'affiche.
Dans le champ Nom, saisissez le nom de la réservation.
Sélectionnez la région et la zone dans lesquelles vous souhaitez réserver des ressources.
Dans la section Type de partage, procédez comme suit :
Pour spécifier une réservation partagée, cliquez sur Partagé.
Cliquez sur
Ajouter des projets, puis sélectionnez les projets de l'organisation du projet actuel avec lesquels vous souhaitez partager la réservation.
Dans la section Utiliser avec une instance de VM, sélectionnez l'une des options suivantes :
Pour autoriser les instances de VM correspondantes à utiliser automatiquement cette réservation, sélectionnez Utiliser automatiquement une réservation (par défaut).
Pour n'utiliser les ressources de cette réservation que lors de la création de VM correspondantes qui ciblent spécifiquement cette réservation par son nom, cliquez sur Sélectionner une réservation spécifique.
Dans le champ Nombre d'instances de VM, saisissez le nombre de VM que vous souhaitez réserver.
Dans la section Configuration de la machine, procédez comme suit :
Pour spécifier les propriétés de vos VM à partir d'un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance.
Dans le champ Modèle d'instance, sélectionnez le modèle d'instance de votre choix. Si vous sélectionnez un modèle d'instance régional, vous ne pouvez réserver que des ressources dans la région du modèle d'instance.
Dans la section Suppression automatique, vous pouvez activer l'option de suppression automatique pour permettre à Compute Engine de supprimer automatiquement la réservation à une date et une heure spécifiques. La suppression automatique des réservations peut vous permettre d'éviter des frais inutiles lorsque vous arrêtez de consommer la réservation.
Pour créer la réservation, cliquez sur Créer.
La création de la réservation partagée peut prendre un certain temps. Cette action vous redirige vers la page Réservations.
RESERVATION_NAME
: le nom de la réservation à créer.PROJECT_ID
: l'ID du projet dans lequel vous souhaitez réserver des ressources et où le modèle d'instance existe.CONSUMER_PROJECT_IDS
: liste d'ID de projets séparés par une virgule pouvant utiliser cette réservation, par exempleproject-1,project-2
. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas le projet propriétaire. Par défaut, il est déjà autorisé à utiliser la réservation.LOCATION
: emplacement du modèle d'instance. Spécifiez une des valeurs suivantes :Pour un modèle d'instance global :
global
Pour un modèle d'instance régional :
regions/REGION
. RemplacezREGION
par la région dans laquelle se trouve le modèle d'instance. Si vous spécifiez un modèle d'instance régional, vous ne pouvez réserver que des VM situées dans la région du modèle d'instance.
INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant. Si le modèle d'instance spécifie un type de machine A3, vous devez inclure l'option--require-specific-reservation
. Cela indique que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser. Pour en savoir plus, consultez la section Consommer des VM d'une réservation spécifique.NUMBER_OF_VMS
: nombre de VM à réserver.ZONE
: la zone dans laquelle vous devez réserver des ressources.Pour spécifier que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser, incluez l'option
--require-specific-reservation
.gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Pour permettre à Compute Engine de supprimer automatiquement la réservation, sélectionnez l'une des méthodes suivantes :
Pour supprimer la réservation à une date et une heure spécifiques, utilisez la commande
gcloud beta compute reservations create
avec l'option--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Remplacez
DELETE_AT_TIME
par une date et une heure au format de code temporel RFC 3339 comme suit :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année à 4 chiffres, mois à 2 chiffres et jour du mois à 2 chiffres, séparés par des traits d'union (-
).HH:MM:SS
: heure respectant la syntaxe heures à 2 chiffres sur 24 heures, minutes à 2 chiffres et secondes à 2 chiffres, séparés par des signes deux-points (:
).OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), spécifiez-08:00
. Sinon, pour n'utiliser aucun décalage, spécifiezZ
.
Pour supprimer la réservation après une certaine durée, exécutez la commande
gcloud beta compute reservations create
avec l'option--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Remplacez
DELETE_AFTER_DURATION
par une durée en jours, heures, minutes ou secondes. Par exemple, spécifiez30m
pour 30 minutes ou1d2h3m4s
pour 1 jour, 2 heures, 3 minutes et 4 secondes.
Le champ
projectMap
Le champ
shareType
défini surSPECIFIC_PROJECTS
.PROJECT_ID
: l'ID du projet dans lequel vous souhaitez réserver des ressources et où le modèle d'instance existe.ZONE
: la zone dans laquelle vous devez réserver des ressources.RESERVATION_NAME
: le nom de la réservation à créer.CONSUMER_PROJECT_ID_1
etCONSUMER_PROJECT_ID_2
: ID des projets pouvant utiliser cette réservation. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas le projet propriétaire. Par défaut, il est déjà autorisé à utiliser la réservation.NUMBER_OF_VMS
: nombre de VM à réserver.LOCATION
: emplacement du modèle d'instance. Spécifiez une des valeurs suivantes :Pour un modèle d'instance global :
global
Pour un modèle d'instance régional :
regions/REGION
. RemplacezREGION
par la région dans laquelle se trouve le modèle d'instance. Si vous spécifiez un modèle d'instance régional, vous ne pouvez réserver que des VM situées dans la région du modèle d'instance.
INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance existant. Si le modèle d'instance spécifie un type de machine A3, vous devez inclure le champspecificReservationRequired
dans le corps de la requête, puis le définir surtrue
. Cela indique que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser. Pour en savoir plus, consultez la section Consommer des VM d'une réservation spécifique.Pour spécifier que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser, incluez le champ
specificReservationRequired
dans le corps de la requête et définissez-le surtrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Pour permettre à Compute Engine de supprimer automatiquement la réservation, sélectionnez l'une des méthodes suivantes :
Pour supprimer la réservation à une date et une heure spécifiques, envoyez une requête
POST
à la méthodebeta.reservations.insert
. Dans le corps de la requête, incluez le champdeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Remplacez
DELETE_AT_TIME
par une date et une heure au format de code temporel RFC 3339 comme suit :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année à 4 chiffres, mois à 2 chiffres et jour du mois à 2 chiffres, séparés par des traits d'union (-
).HH:MM:SS
: heure respectant la syntaxe heures à 2 chiffres sur 24 heures, minutes à 2 chiffres et secondes à 2 chiffres, séparés par des signes deux-points (:
).OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), spécifiez-08:00
. Sinon, pour n'utiliser aucun décalage, spécifiezZ
.
Pour supprimer la réservation après une certaine durée, envoyez une requête
POST
à la méthodebeta.reservations.insert
. Dans le corps de la requête, incluez le champdeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Remplacez
DELETE_AFTER_DURATION
par une durée en secondes. Par exemple, spécifiez86400
pour 86 400 secondes (1 jour).
Dans la console Google Cloud, accédez à la page Réservations.
Accéder à la page "Réservations"
La page Réservations s'affiche.
Cliquez sur
Créer une réservation.La page Créer une réservation s'affiche.
Dans le champ Nom, saisissez le nom de la réservation.
Sélectionnez la région et la zone dans lesquelles vous souhaitez réserver des ressources.
Dans la section Type de partage, procédez comme suit :
Pour spécifier une réservation partagée, cliquez sur Partagé.
Cliquez sur
Ajouter des projets, puis sélectionnez les projets de l'organisation du projet actuel avec lesquels vous souhaitez partager la réservation.
Dans la section Utiliser avec une instance de VM, sélectionnez l'une des options suivantes :
Pour autoriser les VM correspondantes à utiliser automatiquement cette réservation, sélectionnez l'option Utiliser automatiquement une réservation (par défaut).
Pour n'utiliser les ressources de cette réservation que lors de la création de VM correspondantes qui ciblent spécifiquement cette réservation par son nom, cliquez sur Sélectionner une réservation spécifique.
Dans le champ Nombre d'instances de VM, saisissez le nombre de VM que vous souhaitez réserver.
Dans la section Configuration de la machine, sélectionnez Spécifier un type de machine, puis spécifiez les éléments suivants :
Dans les champs Famille de machines, Série et Type de machine, sélectionnez une famille de machines, une série et un type de machine.
Facultatif : pour spécifier une configuration minimale de plate-forme de processeur ou associer des GPU à des VM N1, procédez comme suit :
Développez la section Plate-forme du CPU et GPU en cliquant sur la flèche de développement
.Facultatif : pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme du processeur.
Facultatif : pour associer des GPU à des VM N1, cliquez sur
Ajouter un GPU. Ensuite, dans les champs Type de GPU et Nombre de GPU, sélectionnez le type et le nombre de GPU à associer à chaque VM N1.
Facultatif : pour ajouter des disques SSD locaux, procédez comme suit :
Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux pour chaque VM.
Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.
Dans la section Suppression automatique, vous pouvez activer l'option de suppression automatique pour permettre à Compute Engine de supprimer automatiquement la réservation à une date et une heure spécifiques. La suppression automatique des réservations peut vous permettre d'éviter des frais inutiles lorsque vous arrêtez de consommer la réservation.
Pour créer la réservation, cliquez sur Créer.
La création de la réservation partagée peut prendre un certain temps. Cette action vous redirige vers la page Réservations.
RESERVATION_NAME
: le nom de la réservation à créer.MACHINE_TYPE
: un type de machine à utiliser pour chaque VM. Si vous spécifiez un type de machine A3, vous devez inclure l'option--require-specific-reservation
. Cela indique que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser. Pour en savoir plus, consultez la section Consommer des VM d'une réservation spécifique.PROJECT_ID
: ID du projet dans lequel vous souhaitez réserver des ressources.CONSUMER_PROJECT_IDS
: liste d'ID de projets séparés par une virgule pouvant utiliser cette réservation, par exempleproject-1,project-2
. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas le projet propriétaire. Par défaut, il est déjà autorisé à utiliser la réservation.NUMBER_OF_VMS
: nombre de VM à réserver.ZONE
: la zone dans laquelle vous devez réserver des ressources.Pour associer des GPU à vos VM N1 réservées, incluez l'option
--accelerator
.gcloud compute reservations create my-reservation \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE ...
Remplacez les éléments suivants :
NUMBER_OF_ACCELERATORS
: nombre de GPU à ajouter par VM réservée.ACCELERATOR_TYPE
: modèle de GPU compatible avec les VM N1. Assurez-vous que le modèle de GPU choisi est disponible dans la zone où vous souhaitez réserver des ressources. Sinon, la création de la réservation échoue.
Pour ajouter un ou plusieurs disques SSD locaux à chaque VM réservée, incluez une ou plusieurs options
--local-ssd
. Vous pouvez spécifier jusqu'à 24 disques SSD locaux. La capacité de chaque disque SSD local est de 375 Go.Par exemple, pour spécifier deux disques SSD locaux lors de la création d'une réservation, incluez deux options
--local-ssd
comme suit :gcloud compute reservations create my-reservation \ --local-ssd=size=375,interface=INTERFACE_1 \ --local-ssd=size=375,interface=INTERFACE_2 \ ...
Remplacez
INTERFACE_1
etINTERFACE_2
par le type d'interface que chaque disque SSD local doit utiliser. Spécifiez une des valeurs suivantes :Interfaces de disque NVME :
nvme
Interfaces de disque SCSI :
scsi
Assurez-vous que le type de machine que vous spécifiez pour les VM réservées est compatible avec les interfaces de disque choisies. Sinon, la création de la réservation échoue. Pour en savoir plus, découvrez comment choisir une interface de disque.
Pour que les VM réservées utilisent une plate-forme CPU minimale spécifique au lieu de la plate-forme CPU par défaut de la zone, incluez l'option
--min-cpu-platform
.gcloud compute reservations create my-reservation \ --min-cpu-platform="MIN_CPU_PLATFORM" \ ...
Remplacez
MIN_CPU_PLATFORM
par une plate-forme CPU minimale. Pour vous assurer qu'une plate-forme CPU est disponible dans la zone où vous réservez des ressources, affichez les plates-formes CPU disponibles par zone.Pour spécifier que seules les VM qui
--require-specific-reservation
ciblent spécifiquement cette réservation peuvent la consommer, incluez l'option .gcloud compute reservations create example-reservation \ --require-specific-reservation \ ...
Pour permettre à Compute Engine de supprimer automatiquement la réservation, sélectionnez l'une des méthodes suivantes :
Pour supprimer la réservation à une date et une heure spécifiques, utilisez la commande
gcloud beta compute reservations create
avec l'option--delete-at-time
.gcloud beta compute reservations create reservation-example \ --delete-at-time=DELETE_AT_TIME \ ...
Remplacez
DELETE_AT_TIME
par une date et une heure au format de code temporel RFC 3339 comme suit :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année à 4 chiffres, mois à 2 chiffres et jour du mois à 2 chiffres, séparés par des traits d'union (-
).HH:MM:SS
: heure respectant la syntaxe heures à 2 chiffres sur 24 heures, minutes à 2 chiffres et secondes à 2 chiffres, séparés par des signes deux-points (:
).OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), spécifiez-08:00
. Sinon, pour n'utiliser aucun décalage, spécifiezZ
.
Pour supprimer la réservation après une certaine durée, exécutez la commande
gcloud beta compute reservations create
avec l'option--delete-after-duration
.gcloud beta compute reservations create reservation-example \ --delete-after-duration=DELETE_AFTER_DURATION \ ...
Remplacez
DELETE_AFTER_DURATION
par une durée en jours, heures, minutes ou secondes. Par exemple, spécifiez30m
pour 30 minutes ou1d2h3m4s
pour 1 jour, 2 heures, 3 minutes et 4 secondes.
- Définissez le champ
share_type
surSPECIFIC_PROJECTS
. - Dans le bloc
project_map
, spécifiez les ID de projet des projets avec lesquels vous souhaitez partager cette réservation. Le champ
projectMap
Le champ
shareType
défini surSPECIFIC_PROJECTS
.PROJECT_ID
: ID du projet dans lequel vous souhaitez réserver des ressources.ZONE
: la zone dans laquelle vous devez réserver des ressources.RESERVATION_NAME
: le nom de la réservation à créer.CONSUMER_PROJECT_ID_1
etCONSUMER_PROJECT_ID_2
: ID des projets pouvant utiliser cette réservation. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas le projet propriétaire. Par défaut, il est déjà autorisé à utiliser la réservation.NUMBER_OF_VMS
: nombre de VM à réserver.MACHINE_TYPE
: un type de machine à utiliser pour chaque VM. Si vous spécifiez un type de machine A3, vous devez inclure le champspecificReservationRequired
dans le corps de la requête, puis le définir surtrue
. Cela indique que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser.Pour associer des GPU à vos VM N1 réservées, incluez le champ
guestAccelerators
dans le corps de la requête.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" } ], ... }, ... } }
Remplacez les éléments suivants :
NUMBER_OF_ACCELERATORS
: nombre de GPU à ajouter par VM réservée.ACCELERATOR_TYPE
: modèle de GPU compatible avec les VM N1. Assurez-vous que le modèle de GPU choisi est disponible dans la zone où vous souhaitez réserver des ressources. Sinon, la création de la réservation échoue.
Pour ajouter un ou plusieurs disques SSD locaux à chaque VM réservée, incluez le champ
localSsds
dans le corps de la requête. Vous pouvez spécifier jusqu'à 24 disques SSD locaux. La capacité de chaque disque SSD local est de 375 Go.Par exemple, pour spécifier deux disques SSD locaux lors de la création d'une réservation, spécifiez les éléments suivants :
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" } ], ... }, ... } }
Remplacez
INTERFACE_1
etINTERFACE_2
par le type d'interface que chaque disque SSD local doit utiliser. Spécifiez une des valeurs suivantes :Interfaces de disque NVME :
NVME
Interfaces de disque SCSI :
SCSI
Assurez-vous que le type de machine que vous spécifiez pour les VM réservées est compatible avec les interfaces de disque choisies. Sinon, la création de la réservation échoue. Pour en savoir plus, découvrez comment choisir une interface de disque.
Pour que les VM réservées utilisent une plate-forme CPU minimale spécifique au lieu de la plate-forme CPU par défaut de la zone, incluez le champ
minCpuPlatform
dans le corps de la requête.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservation": { "instanceProperties": { "minCpuPlatform": "MIN_CPU_PLATFORM", ... }, ... } }
Remplacez
MIN_CPU_PLATFORM
par une plate-forme CPU minimale. Pour vous assurer qu'une plate-forme CPU est disponible dans la zone où vous réservez des ressources, affichez les plates-formes CPU disponibles par zone.Pour spécifier que seules les VM qui ciblent spécifiquement cette réservation peuvent l'utiliser, incluez le champ
specificReservationRequired
dans le corps de la requête et définissez-le surtrue
.POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "specificReservationRequired": true, ... }
Pour permettre à Compute Engine de supprimer automatiquement la réservation, sélectionnez l'une des méthodes suivantes :
Pour supprimer la réservation à une date et une heure spécifiques, envoyez une requête
POST
à la méthodebeta.reservations.insert
. Dans le corps de la requête, incluez le champdeleteAtTime
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAtTime": "DELETE_AT_TIME", ... }
Remplacez
DELETE_AT_TIME
par une date et une heure au format de code temporel RFC 3339 comme suit :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année à 4 chiffres, mois à 2 chiffres et jour du mois à 2 chiffres, séparés par des traits d'union (-
).HH:MM:SS
: heure respectant la syntaxe heures à 2 chiffres sur 24 heures, minutes à 2 chiffres et secondes à 2 chiffres, séparés par des signes deux-points (:
).OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), spécifiez-08:00
. Sinon, pour n'utiliser aucun décalage, spécifiezZ
.
Pour supprimer la réservation après une certaine durée, envoyez une requête
POST
à la méthodebeta.reservations.insert
. Dans le corps de la requête, incluez le champdeleteAfterDuration
.POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations { "name": "example-reservation", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, ... }
Remplacez
DELETE_AFTER_DURATION
par une durée en secondes. Par exemple, spécifiez86400
pour 86 400 secondes (1 jour).
Découvrez comment afficher vos réservations.
Découvrez comment associer des réservations à des engagements.
Découvrez comment consommer des réservations.
Découvrez comment surveiller la consommation des réservations.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des réservations partagées, demandez à votre administrateur de vous accorder les rôles IAM suivants :
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des réservations partagées. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des réservations partagées :
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Bonnes pratiques
Lorsque vous créez des réservations partagées, il est recommandé de suivre les bonnes pratiques suivantes. Ce faisant, vous pouvez optimiser la gestion et l'utilisation des réservations partagées dans votre organisation.
Autoriser et restreindre la création et la modification de réservations partagées pour des projets
Par défaut, aucun projet n'est autorisé à créer ou à modifier des réservations partagées dans une organisation. Ajoutez des projets à la contrainte de règle d'administration des projets propriétaires de réservations partagées (
compute.sharedReservationsOwnerProjects
) pour les autoriser à créer et modifier des réservations partagées. Pour en savoir plus sur les contraintes liées aux règles d'administration, consultez la section Présentation du service de règles d'administration.Procédez comme suit pour afficher et modifier la contrainte de règle d'administration des projets propriétaires de réservations partagées (
compute.sharedReservationsOwnerProjects
).Afficher la contrainte de règle d'administration des réservations partagées
Pour savoir quels projets sont autorisés à créer et modifier des réservations partagées, utilisez la console Google Cloud ou la gcloud CLI.
Console
Suivez les étapes pour Afficher les règles d'administration à l'aide de la contrainte Projets propriétaire de réservations partagées.
gcloud
Pour afficher les projets que la contrainte
compute.sharedReservationsOwnerProjects
autorise à créer et modifier des réservations partagées, procédez comme suit :Modifier la contrainte de règle d'administration des réservations partagées
Pour changer les projets autorisés à créer et modifier des réservations partagées, utilisez la console Google Cloud ou gcloud CLI.
Console
Suivez les étapes décrites dans la section Personnaliser les règles pour les contraintes de liste à l'aide de la contrainte Projets propriétaires de réservations partagées.
gcloud
Pour modifier les projets que la contrainte
compute.sharedReservationsOwnerProjects
autorise à créer et modifier des réservations partagées, utilisez l'une des méthodes suivantes :Vous devrez peut-être patienter quelques minutes pour que la modification soit prise en compte.
Créer une réservation partagée
Cette section explique comment créer des réservations partagées. Une fois que vous avez créé une réservation partagée, celle-ci ne peut être modifiée que par le projet propriétaire, mais les ressources d'une réservation partagée peuvent être utilisées par le projet propriétaire ou par tout projet client.
Pour utiliser une réservation, une VM doit avoir des propriétés qui correspondent exactement à cette réservation. Pour spécifier les propriétés des VM que vous souhaitez réserver, accédez à l'une des sections suivantes de ce document :
Par défaut, une réservation peut être automatiquement utilisée par toutes les VM dont les propriétés correspondent. Si vous souhaitez contrôler l'utilisation des réservations, effectuez une ou plusieurs des opérations suivantes :
Spécifier un modèle d'instance
Avant de créer une réservation en spécifiant un modèle d'instance, vérifiez les points suivants :
Pour créer une réservation partagée en spécifiant un modèle d'instance, sélectionnez l'une des options suivantes :
Console
gcloud
Pour créer une réservation partagée, exécutez la commande
gcloud compute reservations create
avec les options--share-setting=projects
et--share-with
.Pour créer une réservation partagée en spécifiant un modèle d'instance sans option facultative, exécutez la commande suivante :
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
Remplacez les éléments suivants :
Par exemple, pour créer une réservation en spécifiant un modèle d'instance global dans la zone
us-central1-a
, partager la réservation avec les projetsproject-1
etproject-2
, et réserver dix VM qui utilisent chacune un type de machine prédéfini N2 avec 4 processeurs virtuels, exécutez la commande suivante :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
Vous pouvez éventuellement effectuer une ou plusieurs des opérations suivantes :
REST
Pour créer une réservation partagée, envoyez une requête
POST
à la méthodereservations.insert
. Dans le corps de la requête, incluez les éléments suivants :Par exemple, pour créer une réservation partagée en spécifiant un modèle d'instance sans champs facultatifs et partager la réservation avec deux projets clients, envoyez la requête
POST
suivante :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" } }
Remplacez les éléments suivants :
Par exemple, pour créer une réservation pour dix VM dans la zone
us-central1-a
en spécifiant un modèle d'instance global et partager la réservation avec les projetsproject-1
etproject-2
, effectuez la requêtePOST
suivante :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" } }
Vous pouvez éventuellement effectuer une ou plusieurs des opérations suivantes :
Spécifier les propriétés de la VM directement
Pour créer une réservation partagée en spécifiant directement les propriétés, sélectionnez l'une des options suivantes :
Console
gcloud
Pour créer une réservation partagée, exécutez la commande
gcloud compute reservations create
avec les options--share-setting=projects
et--share-with
.Pour créer une réservation partagée en spécifiant directement les propriétés, sans inclure d'options facultatives, exécutez la commande suivante :
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
Remplacez les éléments suivants :
Par exemple, pour créer une réservation dans la zone
us-central1-a
pour dix VM utilisant chacune un type de machine prédéfini N2 avec 4 processeurs virtuels, et qui partagent la réservation avec les projetsproject-1
etproject-2
, exécutez la commande suivante :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
Vous pouvez éventuellement effectuer une ou plusieurs des opérations suivantes :
Terraform
Pour créer une réservation, utilisez la ressource Terraform
google_compute_reservation
. Pour spécifier une réservation partagée, définissez le blocshare_settings
:Pour en savoir plus sur l'utilisation de Terraform, consultez la page Utiliser Terraform avec Google Cloud.
REST
Pour créer une réservation partagée, envoyez une requête
POST
à la méthodereservations.insert
. Dans le corps de la requête, incluez les éléments suivants :Par exemple, pour créer une réservation partagée sans champs facultatifs et partager la réservation avec deux projets clients, envoyez la requête
POST
suivante :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", } } }
Remplacez les éléments suivants :
Par exemple, pour créer une réservation en spécifiant un modèle d'instance global dans la zone
us-central1-a
, partager la réservation avec les projetsproject-1
etproject-2
, et réserver dix VM qui utilisent chacune un type de machine prédéfini N2 avec 4 processeurs virtuels, effectuez la requêtePOST
suivante :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", } } }
Vous pouvez éventuellement effectuer une ou plusieurs des opérations suivantes :
Dépannage
Découvrez comment résoudre les problèmes de création de réservations.
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/22 (UTC).
-