Ce document explique comment créer des requêtes de redimensionnement dans un groupe d'instances géré (MIG) d'instances de machines virtuelles (VM) auxquelles des GPU sont associés.
Avant de commencer
- Examinez le fonctionnement des demandes de redimensionnement.
- Pour vous assurer que vous disposez d'un quota de GPU suffisant pour les ressources que vous demandez, vérifiez votre quota de GPU.
-
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 :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
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
-
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des demandes de redimensionnement dans un MIG, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1
) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour créer des demandes de redimensionnement dans un MIG. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer des demandes de redimensionnement dans un groupe d'instances géré :
- Pour créer un modèle d'instance :
compute.instanceTemplates.create
sur le projet. - Pour créer un MIG zonal :
compute.instanceGroupManagers.create
sur le projet. -
Pour créer des demandes de redimensionnement dans un MIG :
compute.instanceGroupManagers.update
sur le projet.
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Préparer un MIG à des requêtes de redimensionnement
Pour créer des demandes de redimensionnement dans un MIG, vous devez configurer un modèle d'instance et le MIG comme décrit dans les sections suivantes.
Créer un modèle d'instance
Si vous souhaitez créer des demandes de redimensionnement dans un MIG, celui-ci doit utiliser un modèle d'instance avec les configurations suivantes :
Arrêt des VM lors des événements de maintenance de l'hôte.
Réservations non utilisées.
Console
Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement dans un MIG, procédez comme suit :
Dans la console Google Cloud, accédez à la page Modèles d'instances.
Cliquez sur Créer un modèle d'instance.
Dans le champ Nom, saisissez un nom pour le modèle d'instance.
Dans la section Emplacement, sélectionnez l'une des options suivantes :
Pour créer un modèle d'instance global, sélectionnez Global (par défaut).
Pour créer un modèle d'instance régional, sélectionnez Régional, puis sélectionnez la région dans laquelle vous souhaitez créer le modèle d'instance.
Dans la section Configuration de la machine, procédez comme suit :
Cliquez sur l'onglet GPU.
Dans la liste Type de GPU, sélectionnez le type de GPU.
Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.
Facultatif : si votre modèle de GPU est compatible avec les postes de travail virtuels NVIDIA RTX (vWS) pour les charges de travail graphiques et que vous prévoyez d'exécuter des charges de travail graphiques lourdes, sélectionnez l'option Activer le poste de travail virtuel (NVIDIA GRID).
Dans la section Type de machine, sélectionnez un type de machine.
Pour modifier le type ou l'image de disque de démarrage par défaut, cliquez sur Modifier dans la section Disque de démarrage. Suivez ensuite les instructions pour modifier le disque de démarrage.
Développez la section Options avancées et procédez comme suit :
Développez la section Gestion.
Dans la liste Réservations, sélectionnez Ne pas utiliser.
Cliquez sur Créer.
gcloud
Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement dans un MIG, exécutez la commande instance-templates create
avec les options suivantes :
L'option
--maintenance-policy
définie surTERMINATE
L'option
--reservation-affinity
définie surnone
Par exemple, exécutez la commande suivante :
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--reservation-affinity=none
Remplacez les éléments suivants :
INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance à créer.IMAGE_PROJECT
: projet contenant l'image, par exemple,debian-cloud
. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE
ouIMAGE_FAMILY
: spécifiez l'un des éléments suivants :IMAGE
: version spécifique de l'image de l'OS. Exemple :debian-10-buster-v20200309
.IMAGE_FAMILY
: famille d'images. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-10
, la dernière version de la famille d'images Debian 10 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.
MACHINE_TYPE
: type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez l'option--accelerator
pour spécifier le nombre et le type de GPU à associer à vos VM.
REST
Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement au sein d'un groupe d'instances géré, envoyez une requête POST
à la méthode instanceTemplates.insert
.
Dans le corps de la requête, procédez comme suit :
Définissez le champ
scheduling.onHostMaintenance
surTERMINATE
.Définissez le champ
reservationAffinity.consumeReservationType
surNO_RESERVATION
.
Par exemple, envoyez une requête POST
comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"mode": "READ_WRITE",
"type": "PERSISTENT",
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-IP",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"scheduling": {
"onHostMaintenance": "TERMINATE"
}
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel créer le modèle d'instance.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance à créer.IMAGE_PROJECT
: projet contenant l'image, par exemple,debian-cloud
. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE
ouIMAGE_FAMILY
: spécifiez l'un des éléments suivants :IMAGE
: version spécifique de l'image de l'OS. Exemple :debian-10-buster-v20200309
.IMAGE_FAMILY
: famille d'images. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-10
, la dernière version de la famille d'images Debian 10 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.
MACHINE_TYPE
: type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez le champguestAccelerators
dans le corps de la requête pour spécifier le nombre et le type de GPU à associer à vos VM.
Pour en savoir plus sur la création d'un modèle d'instance, consultez la section Créer des modèles d'instance.
Créer ou mettre à jour un MIG
Après avoir créé le modèle d'instance comme décrit dans la section précédente, utilisez-le pour créer un MIG comme suit ou mettre à jour un MIG. Pour vous assurer que le MIG crée toutes les VM via des requêtes de redimensionnement, définissez la taille du MIG sur 0
.
En outre, vous devez effectuer les opérations suivantes pour préparer le MIG aux requêtes de redimensionnement :
Définissez le type de mise à jour du MIG sur opportuniste (par défaut).
Si vous avez configuré l'autoscaling dans le groupe d'instances géré, supprimez la configuration de l'autoscaling.
Console
Pour créer un MIG zonal configuré pour créer des requêtes de redimensionnement, procédez comme suit :
Dans la console Google Cloud, accédez à la page Groupes d'instances.
Cliquez sur Créer un groupe d'instances.
La page Créer un groupe d'instances s'affiche.
Dans le champ Nom, saisissez un nom pour le MIG.
Dans la liste Modèle d'instance, sélectionnez le modèle d'instance que vous avez créé à la section précédente. Si vous sélectionnez un modèle d'instance régional, la liste Région est définie sur la région du modèle d'instance.
Le champ Nombre d'instances est désactivé par défaut. Après avoir supprimé l'autoscaling lors des étapes suivantes, saisissez
0
.Dans la section Emplacement, procédez comme suit :
Sélectionnez Zone unique (valeur par défaut).
Sélectionnez la région et la zone du MIG.
Dans la liste Mode autoscaling, cliquez sur Supprimer la configuration de l'autoscaling, puis sur Supprimer.
Dans la liste Action par défaut en cas d'échec, sélectionnez Aucune action.
Cliquez sur Créer.
gcloud
Pour créer un MIG zonal configuré pour créer des requêtes de redimensionnement, exécutez la commande beta instance-groups managed create
avec l'option --default-action-on-vm-failure
définie sur do_nothing
.
gcloud beta compute instance-groups managed create INSTANCE_GROUP_NAME \
--template=INSTANCE_TEMPLATE_NAME \
--size=0 \
--zone=ZONE \
--default-action-on-vm-failure=do_nothing
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom du MIG à créer.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance que vous avez créé dans la section précédente.ZONE
: zone dans laquelle créer le MIG.
REST
Pour créer un MIG zonal configuré pour créer des requêtes de redimensionnement, envoyez une requête POST
à la méthode beta.instanceGroupManagers.insert
.
Dans le corps de la requête, incluez le champ defaultActionOnFailure
défini sur DO_NOTHING
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
"versions": [
{
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}
],
"name": "INSTANCE_GROUP_NAME",
"targetSize": 0,
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "DO_NOTHING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel se trouve le modèle d'instance que vous avez créé dans la section précédente.ZONE
: zone dans laquelle créer le MIG.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance que vous avez créé dans la section précédente.INSTANCE_GROUP_NAME
: nom du MIG à créer.
Créer une requête de redimensionnement dans un MIG
Avant de créer des demandes de redimensionnement, assurez-vous d'avoir préparé le MIG comme décrit dans la section précédente.
Une fois que vous avez créé une requête de redimensionnement et que toutes les ressources demandées sont disponibles, le MIG crée le nombre de VM demandé en une fois. Les VM s'exécutent jusqu'à ce que le MIG les supprime après la fin de la durée d'exécution spécifiée ou jusqu'à ce que vous les supprimiez.
gcloud
Pour créer une requête de redimensionnement dans un MIG, utilisez la commande beta instance-groups managed resize-requests create
.
gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
--resize-request=RESIZE_REQUEST_NAME \
--resize-by=COUNT \
--requested-run-duration=RUN_DURATION \
--zone=ZONE
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME
: nom d'un MIG zonal existant configuré pour y créer des demandes de redimensionnement.RESIZE_REQUEST_NAME
: nom de la requête de redimensionnement, qui doit être unique dans le MIG spécifié. Sinon, la création de la demande de redimensionnement échoue.COUNT
: nombre de VM à ajouter simultanément au MIG.RUN_DURATION
: durée pendant laquelle vous souhaitez que les VM demandées s'exécutent avant que le MIG ne les supprime automatiquement. La valeur doit être mise en forme en tant que nombre de jours, d'heures, de minutes ou de secondes, suivi respectivement ded
,h
,m
ets
. Par exemple, spécifiez30m
pour 30 minutes ou1d2h3m4s
pour 1 jour, 2 heures, 3 minutes et 4 secondes. Cette valeur doit être comprise entre 10 minutes et 7 jours.ZONE
: zone où se trouve le MIG.
REST
Pour créer une requête de redimensionnement dans un MIG, envoyez une requête POST
à la méthode beta.instanceGroupManagerResizeRequests.insert
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
{
"name": "RESIZE_REQUEST_NAME",
"resizeBy": COUNT,
"requestedRunDuration": {
"seconds": "RUN_DURATION"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel se trouve le MIG spécifié.ZONE
: zone où se trouve le MIG.INSTANCE_GROUP_NAME
: nom d'un MIG zonal existant configuré pour y créer des demandes de redimensionnement.RESIZE_REQUEST_NAME
: nom de la requête de redimensionnement, qui doit être unique dans le MIG spécifié. Sinon, la création de la requête de redimensionnement échoue.COUNT
: nombre de VM à ajouter simultanément au MIG.RUN_DURATION
: durée, en secondes, pendant laquelle vous souhaitez que les VM demandées s'exécutent avant que le MIG ne les supprime automatiquement. La valeur doit être comprise entre600
, soit 600 secondes (10 minutes), et604800
, soit 604 800 secondes (7 jours).
Étapes suivantes
Découvrez comment afficher, annuler ou supprimer des demandes de redimensionnement dans un MIG.
Découvrez comment afficher des informations sur les MIG et les VM gérées.