Provisionner des VM sur des nœuds à locataire unique


Cette page explique comment provisionner des VM sur des nœuds à locataire unique, des serveurs physiques qui n'exécutent des VM qu'à partir d'un seul projet. Avant de provisionner des VM sur des nœuds à locataire unique, consultez la présentation des nœuds à locataire unique.

Le provisionnement d'une VM sur un nœud à locataire unique nécessite d'effectuer les opérations suivantes :

  1. Créer un modèle de nœud à locataire unique. Ce modèle spécifie des propriétés uniformes pour tous les nœuds appartenant à un groupe de nœuds à locataire unique.

  2. Créer un groupe de nœuds à locataire unique à l'aide du modèle précédemment créé.

  3. Créer des VM et les provisionner sur un groupe de nœuds à locataire unique.

Avant de commencer

  • Avant de provisionner des VM sur un nœud à locataire unique, vérifiez votre quota. Selon le nombre et la taille des nœuds que vous réservez, vous devrez peut-être demander un quota supplémentaire.
  • 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. 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

Créer un modèle de nœud à locataire unique

Les modèles de nœud à locataire unique sont des ressources régionales qui spécifient des propriétés pour les groupes de nœuds à locataire unique. Vous devez créer un modèle de nœud avant de créer un groupe de nœuds. Toutefois, si vous utilisez la console Google Cloud, vous devez créer des modèles de nœuds lors de la création d'un groupe de nœuds à locataire unique.

Console

Vous devez créer un modèle de nœud à locataire unique avant de créer un groupe de nœuds. En utilisant la console Google Cloud, vous devez créer le modèle de nœud pendant la création d'un groupe de nœuds à locataire unique. Le nouveau modèle de nœud est créé dans la même région que celle que vous spécifiez dans les propriétés du groupe de nœuds.

  1. Dans Google Cloud Console, accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Créer un groupe de nœuds.

  3. Spécifiez un nom pour le groupe de nœuds.

  4. Spécifiez une région dans laquelle créer le modèle de nœud. Vous pouvez utiliser le modèle de nœud pour créer des groupes de nœuds dans n'importe quelle zone de cette région.

  5. Spécifiez la Zone, puis cliquez sur Continuer.

  6. Dans la liste Modèle de nœud, cliquez sur Créer un modèle de nœud pour commencer à créer un modèle de nœud à locataire unique.

  7. Spécifiez un nom pour le modèle de nœud.

  8. Spécifiez le type de nœud pour chaque nœud à locataire unique dans le groupe de nœuds à créer sur la base de ce modèle de nœud.

  9. Vous pouvez également spécifier les propriétés suivantes pour le modèle de nœud.

    • Ajoutez un disque SSD local et un accélérateur GPU.

    • Sélectionnez Activer la sursollicitation des processeurs pour contrôler les Niveaux de sursollicitation des processeurs pour chaque VM planifiée sur le nœud.

    • Ajoutez des étiquettes d'affinité de nœuds. Les libellés d'affinité vous permettent de regrouper logiquement des nœuds et des groupes de nœuds. Ensuite, lorsque vous provisionnez des VM, vous pouvez spécifier des libellés d'affinité sur les VM pour les planifier sur un ensemble spécifique de nœuds ou de groupes de nœuds. Pour en savoir plus, consultez la section Affinité et anti-affinité de nœuds.

  10. Cliquez sur Créer pour terminer la création du modèle de nœud.

  11. Facultatif : pour ajouter un modèle de nœud à locataire unique dans une région différente, répétez les étapes précédentes.

Pour afficher les modèles de nœud, cliquez sur Modèles de nœud sur la page Nœuds à locataire unique.

gcloud

Exécutez la commande gcloud compute sole-tenancy node-templates create pour créer un modèle de nœud :

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--region=REGION]

Remplacez l'élément suivant :

  • TEMPLATE_NAME : nom du nouveau modèle de nœud.

  • NODE_TYPE : type de nœud pour les nœuds à locataire unique créés à partir de ce modèle. Exécutez la commande gcloud compute sole-tenancy node-types list pour obtenir la liste des types de nœuds disponibles dans chaque zone.

  • GPU_TYPE : type de GPU pour chaque nœud à locataire unique créé à partir de ce modèle de nœud. Pour plus d'informations sur la disponibilité zonale des GPU, exécutez la commande gcloud compute accelerator-types list et choisissez une zone dans laquelle le type de nœud à locataire unique n1 ou g2 est disponible. Selon la disponibilité de la zone, définissez l'une des valeurs suivantes :

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : nombre de GPU à spécifier en fonction du type de GPU. Définissez cette valeur sur la valeur spécifiée pour le type de GPU, comme indiqué dans le tableau suivant :

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • CPU_OVERCOMMIT_TYPE : type de sursollicitation des processeurs sur une VM. Définissez-le sur enabled ou none.

  • DISK_COUNT : nombre de disques SSD. Définissez-le sur 16 ou 24.

  • DISK_SIZE : valeur facultative pour la taille de partition du disque SSD local en Go. La seule taille de partition acceptée est 375. Si vous ne définissez pas cette valeur, la valeur par défaut est 375.

  • AFFINITY_LABELS : clés et valeurs, [KEY=VALUE,...] pour les libellés d'affinité. Les libellés d'affinité vous permettent de regrouper logiquement des nœuds et des groupes de nœuds. Ensuite, lorsque vous provisionnez des VM, vous pouvez spécifier des libellés d'affinité sur les VM pour les planifier sur un ensemble spécifique de nœuds ou de groupes de nœuds. Pour en savoir plus, consultez la section Affinité et anti-affinité de nœuds.

  • REGION : région dans laquelle créer le modèle de nœud. Vous pouvez utiliser ce modèle pour créer des groupes de nœuds dans n'importe quelle zone de cette région.

REST

Utilisez la méthode nodeTemplates.insert pour créer un modèle de nœud :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet.

  • REGION : région dans laquelle créer le modèle de nœud. Vous pouvez utiliser ce modèle pour créer des groupes de nœuds dans n'importe quelle zone de cette région.

  • TEMPLATE_NAME : nom du nouveau modèle de nœud.

  • NODE_TYPE : type de nœud pour les nœuds à locataire unique créés à partir de ce modèle. Utilisez la méthode nodeTypes.list pour obtenir la liste des types de nœuds disponibles dans chaque zone.

  • KEY : valeur nodeAffinityLabels spécifiant la partie clé d'un libellé d'affinité de nœud présenté sous la forme d'une paire clé/valeur. Les libellés d'affinité vous permettent de regrouper logiquement des nœuds et des groupes de nœuds. Ensuite, lorsque vous provisionnez des VM, vous pouvez spécifier des libellés d'affinité sur les VM pour les planifier sur un ensemble spécifique de nœuds ou de groupes de nœuds. Pour en savoir plus, consultez la section Affinité et anti-affinité de nœuds.

  • VALUE : valeur nodeAffinityLabels spécifiant la partie valeur d'un libellé d'affinité de nœud présenté sous la forme d'une paire clé/valeur.

  • GPU_TYPE : type de GPU pour chaque nœud à locataire unique créé à partir de ce modèle de nœud. Pour plus d'informations sur la disponibilité zonale des GPU, exécutez la commande gcloud compute accelerator-types list et choisissez une zone dans laquelle le type de nœud à locataire unique n1 ou g2 est disponible. Selon la disponibilité de la zone, définissez l'une des valeurs suivantes :

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT : nombre de GPU pour chaque nœud à locataire unique créé à partir de ce modèle de nœud. Définissez cette valeur sur la valeur spécifiée pour le type de GPU, comme indiqué dans le tableau suivant :

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE : valeur facultative pour la taille de partition du disque SSD local en Go. La seule taille de partition acceptée est 375. Si vous ne définissez pas cette valeur, la valeur par défaut est 375.

  • DISK_COUNT : nombre de disques SSD. Définissez-le sur 16 ou 24.

  • CPU_OVERCOMMIT_TYPE : Type de sursollicitation du processeur Définissez-le sur enabled, none ou CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Créer un groupe de nœuds à locataire unique

Avec le modèle de nœud à locataire unique créé précédemment, créez un groupe de nœuds à locataire unique. Un groupe de nœuds à locataire unique hérite des propriétés spécifiées par le modèle de nœud à locataire unique et comporte des valeurs supplémentaires que vous devez spécifier.

Console

  1. Dans Google Cloud Console, accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Créer un groupe de nœuds pour commencer la création.

  3. Spécifiez un nom pour le groupe de nœuds.

  4. Spécifiez la région du groupe de nœuds pour afficher les modèles de nœud disponibles dans cette région.

  5. Spécifiez la zone de la région où vous souhaitez créer le groupe de nœuds.

  6. Spécifiez le Modèle de nœud pour créer le groupe de nœuds ou cliquez sur Créer un modèle de nœud afin de créer un modèle de nœud à locataire unique. Le modèle de nœud sélectionné est appliqué au groupe de nœuds.

  7. Choisissez l'une des options suivantes pour le Mode d'autoscaling de l'autoscaler du groupe de nœuds :

    • Désactivé : gérez manuellement la taille du groupe de nœuds.

    • Activé : les nœuds sont automatiquement ajoutés au groupe de nœuds ou supprimés de celui-ci.

    • Scaling horizontal uniquement : ajoutez des nœuds au groupe de nœuds en cas de besoin de capacité supplémentaire.

  8. Spécifiez le nombre de nœuds pour le groupe. Si vous activez l'autoscaler de groupe de nœuds, spécifiez une plage pour la taille du groupe de nœuds. Vous pouvez modifier les valeurs manuellement.

  9. Définissez la règle de maintenance du groupe de nœuds à locataire unique dans la section Configurer les paramètres de maintenance sur l'une des valeurs suivantes. La règle de maintenance vous permet de configurer le comportement des VM sur le groupe de nœuds lors des événements de maintenance de l'hôte. Pour en savoir plus, consultez la section Règles de maintenance.

    • Par défaut
    • Redémarrer sur place
    • Migrer dans le groupe de nœuds
  10. Vous pouvez choisir entre les intervalles de maintenance standards et les contrôles de maintenance avancés pour gérer la maintenance de votre groupe de nœuds à locataire unique, comme suit :

    • Intervalle de maintenance : sélectionnez la période pendant laquelle vous souhaitez que les événements de maintenance planifiés se produisent pour les nœuds des groupes de nœuds à locataire unique.

    • Activer le contrôle de maintenance avancé pour la location unique (bêta) : Le contrôle de maintenance avancé pour la location unique permet de contrôler les événements de maintenance planifiés pour les groupes de nœuds à locataire unique et de minimiser les interruptions liées à la maintenance. Pour activer le contrôle de maintenance avancé, faites passer le bouton Activer le contrôle de maintenance avancé pour la location unique en mode activé Si vous choisissez d'utiliser cette option pour la maintenance des nœuds, le champ Intervalle de maintenance est désactivé et la maintenance a lieu comme configuré dans le contrôle de maintenance avancé.

    Notez que pendant la phase bêta, le contrôle de maintenance avancée n'est compatible qu'avec la règle de maintenance Par défaut.

  11. Configurez les paramètres de partage en spécifiant l'un des éléments suivants dans la section Configurer les paramètres de partage :

    • Pour partager le groupe de nœuds avec tous les projets de votre organisation, sélectionnez Partager ce groupe de nœuds avec tous les projets de l'organisation.
    • Pour partager le groupe de nœuds avec des projets spécifiques de votre organisation, sélectionnez Partager ce groupe de nœuds avec les projets sélectionnés au sein de l'organisation.

    Si vous ne souhaitez pas partager le groupe de nœuds, sélectionnez Ne pas partager ce groupe de nœuds avec d'autres projets. Pour en savoir plus sur le partage de groupes de nœuds, consultez la section Partager des groupes de nœuds à locataire unique.

  12. Cliquez sur Créer pour terminer la création du groupe de nœuds.

gcloud

Exécutez la commande gcloud compute sole-tenancy node-groups create pour créer un groupe de nœuds basé sur un modèle de nœud créé précédemment :

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

Remplacez l'élément suivant :

  • GROUP_NAME : nom du nouveau groupe de nœuds.

  • TEMPLATE_NAME : nom du modèle de nœud à utiliser pour créer le groupe.

  • TARGET_SIZE : nombre de nœuds à créer dans le groupe.

  • ZONE : zone dans laquelle créer le groupe de nœuds. Cette zone doit être située dans la même région que le modèle de nœud sur lequel vous basez le groupe de nœuds.

  • MAINTENANCE_POLICY : règle de maintenance du groupe de nœuds. Pour en savoir plus, consultez la section Règles de maintenance. Il doit s'agir de l'une des valeurs suivantes :

    • default
    • restart-in-place
    • migrate-within-node-group

    Vous pouvez également activer le contrôle de maintenance avancée (bêta) pour le groupe de nœuds à locataire unique à l'aide de l'option --maintenance-interval. Pour en savoir plus, consultez l'article Activer le contrôle de maintenance avancée sur un nœud à locataire unique.

  • START_TIME : heure GMT de début pour l'intervalle de maintenance des VM dans ce groupe de nœuds. Définissez ce paramètre sur 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Si ce champ n'est pas défini, le groupe de nœuds n'a pas d'intervalle de maintenance défini.

  • AUTOSCALER_MODE : règle d'autoscaler pour le groupe de nœuds. Il doit s'agir de l'un des éléments suivants :

    • off : pour gérer manuellement la taille du groupe de nœuds.

    • on : les nœuds sont automatiquement ajoutés ou supprimés du groupe de nœuds.

    • only-scale-out : ajoute des nœuds au groupe de nœuds lorsque la capacité supplémentaire est requise.

  • MIN_NODES : taille minimale du groupe de nœuds. La valeur par défaut est 0 et doit être un nombre entier inférieur ou égal à MAX_NODES.

  • MAX_NODES : taille maximale du groupe de nœuds. Cette valeur doit être inférieure ou égale à 100 et supérieure ou égale à MIN_NODES. Obligatoire si AUTOSCALER_MODE n'est pas défini sur off.

REST

Utilisez la méthode nodeGroups.insert pour créer un groupe de nœuds à partir d'un modèle de nœud précédemment créé :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet.

  • ZONE : zone dans laquelle créer le groupe de nœuds. Cette zone doit être située dans la même région que le modèle de nœud sur lequel vous basez le groupe de nœuds.

  • TARGET_SIZE : nombre de nœuds à créer dans le groupe.

  • REGION : région dans laquelle créer le groupe de nœuds. Vous devez disposer d'un modèle de nœud dans la région sélectionnée.

  • TEMPLATE_NAME : nom du modèle de nœud à utiliser pour créer le groupe.

  • GROUP_NAME : nom du nouveau groupe de nœuds.

  • MAINTENANCE_POLICY : règle de maintenance du groupe de nœuds. Il doit s'agir de l'une des valeurs suivantes :

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    Vous pouvez également activer le contrôle de maintenance avancé (bêta) pour le groupe de nœuds à locataire unique à l'aide du champ maintenanceInterval. Pour en savoir plus, consultez l'article Activer le contrôle de maintenance avancée sur un nœud à locataire unique.

  • START_TIME : heure GMT de début pour l'intervalle de maintenance des VM dans ce groupe de nœuds. Définissez ce paramètre sur 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Si ce champ n'est pas défini, le groupe de nœuds n'a pas d'intervalle de maintenance défini.

  • AUTOSCALER_MODE : règle d'autoscaler pour le groupe de nœuds. Il doit s'agir de l'une des valeurs suivantes :

    • OFF : gérer manuellement la taille du groupe de nœuds.

    • ON : les nœuds sont automatiquement ajoutés ou supprimés du groupe de nœuds.

    • ONLY_SCALE_OUT : ajoute des nœuds au groupe de nœuds lorsque la capacité supplémentaire est requise.

  • MIN_NODES : taille minimale du groupe de nœuds. La valeur par défaut est 0 et doit être un nombre entier inférieur ou égal à MAX_NODES.

  • MAX_NODES : taille maximale du groupe de nœuds. Cette valeur doit être inférieure ou égale à 100 et supérieure ou égale à MIN_NODES. Obligatoire si AUTOSCALER_MODE n'est pas défini sur OFF.

Provisionner une VM à locataire unique

Après avoir créé un groupe de nœuds basé sur un modèle de nœud précédemment créé, vous pouvez provisionner des VM individuelles sur un groupe de nœuds à locataire unique.

Pour provisionner une VM sur un nœud ou un groupe de nœuds spécifique ayant des libellés d'affinité correspondant à ceux que vous avez précédemment attribués au modèle de nœud, suivez la procédure standard de création d'une instance de VM, puis attribuez des libellés d'affinité à la VM.

Vous pouvez également utiliser la procédure suivante pour provisionner une VM sur un nœud à locataire unique à partir de la page des détails du groupe de nœuds. En fonction du groupe de nœuds sur lequel vous provisionnez des VM, Compute Engine attribue des libellés d'affinité.

Console

  1. Dans Google Cloud Console, accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Groupes de nœuds.

  3. Cliquez sur le nom du groupe de nœuds pour provisionner une instance de VM. Ensuite, si vous le souhaitez, pour provisionner une VM sur un nœud à locataire unique spécifique, cliquez sur le nom de celui-ci pour provisionner la VM.

  4. Cliquez sur Créer une instance pour provisionner une instance de VM sur ce groupe de nœuds et notez les valeurs appliquées automatiquement aux champs Nom, Région et Zone, puis modifiez ces valeurs si nécessaire.

  5. Sélectionnez une configuration de machine en spécifiant la famille de machines, la série et le type de machine. Choisissez la série correspondant au type de nœud à locataire unique.

  6. Modifiez les paramètres de disque de démarrage, de pare-feu et autres valeurs si nécessaire.

  7. Cliquez sur Location unique et notez les libellés d'affinité de nœuds automatiquement attribués, puis cliquez sur Parcourir pour procéder à des ajustements si nécessaire.

  8. Cliquez sur Gestion, puis choisissez l'une des options suivantes pour le paramètre Pendant la maintenance de l'hôte :

    • Migrer l'instance de VM (recommandé) : la VM est migrée vers un autre nœud du groupe de nœuds lors des événements de maintenance.

    • Interrompre : la VM est arrêtée pendant les événements de maintenance.

  9. Choisissez l'une des options suivantes pour le redémarrage automatique :

    • Activé (recommandé) : redémarre automatiquement les VM si elles sont arrêtées lors d'événements de maintenance.

    • Désactivé : ne redémarre pas automatiquement les VM après un événement de maintenance.

  10. Cliquez sur Créer pour terminer la création de votre VM à locataire unique.

gcloud

Exécutez la commande gcloud compute instances create pour provisionner une VM sur un groupe de nœuds à locataire unique :

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

L'option --restart-on-failure indique si les VM à locataire unique redémarrent en cas d'arrêt. Cette option est activée par défaut. Utilisez --no-restart-on-failure pour la désactiver.

Remplacez l'élément suivant :

  • VM_NAME : nom de la nouvelle VM à locataire unique.

  • ZONE : zone dans laquelle provisionner la VM à locataire unique.

  • IMAGE_FAMILY : famille d'images de l'image à utiliser pour créer la VM.

  • IMAGE_PROJECT : projet d'image de la famille d'images.

  • GROUP_NAME : nom du groupe de nœuds sur lequel provisionner la VM.

  • MACHINE_TYPE : type de machine de la VM à locataire unique. Exécutez la commande gcloud compute machine-types list pour obtenir la liste des types de machines disponibles pour le projet.

  • MAINTENANCE_POLICY : spécifie le comportement de redémarrage des VM à locataire unique lors d'événements de maintenance. Définissez l'une des options suivantes :

    • MIGRATE : VM migrée vers un autre nœud du groupe de nœuds lors d'événements de maintenance.

    • TERMINATE : VM arrêtée pendant les événements de maintenance.

  • GPU_TYPE : type de GPU. Défini sur l'un des types d'accélérateurs spécifiés lors de la création du modèle de nœud.

  • GPU_COUNT : nombre de GPU du total spécifié par le modèle de nœud à associer à cette VM. La valeur par défaut est 1.

  • SSD_INTERFACE : type d'interface SSD locale. Vous ne pouvez définir cette option que pour les instances créées à partir d'un modèle de nœud compatible avec les disques SSD locaux. Si vous spécifiez cette valeur lors de la création de l'instance et que le modèle de nœud n'est pas compatible avec le disque SSD local, la création de l'instance échoue. Variable définie sur nvme si les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la variable est définie sur scsi. Spécifiez cette option ainsi qu'une valeur correspondante une fois pour chaque partition SSD locale.

REST

Utilisez la méthode instances.insert pour provisionner une VM sur un groupe de nœuds à locataire unique :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet.

  • VM_ZONE : zone dans laquelle provisionner la VM à locataire unique.

  • MACHINE_TYPE_ZONE : zone du type de machine.

  • MACHINE_TYPE : type de machine de la VM à locataire unique. Utilisez la méthode machineTypes.list pour obtenir la liste des types de machines disponibles pour le projet.

  • VM_NAME : nom de la nouvelle VM à locataire unique.

  • MAINTENANCE_POLICY : spécifie le comportement de redémarrage des VM à locataire unique lors d'événements de maintenance. Définissez l'une des options suivantes :

    • MIGRATE : VM migrée vers un autre nœud du groupe de nœuds lors d'événements de maintenance.

    • TERMINATE : VM arrêtée pendant les événements de maintenance.

  • RESTART_ON_FAILURE : indique si les VM à locataire unique redémarrent en cas d'arrêt. La valeur par défaut est true.

  • GROUP_NAME : nom du groupe de nœuds sur lequel provisionner la VM.

  • NETWORK : URL de la ressource réseau pour cette VM.

  • REGION : région contenant le sous-réseau de cette VM.

  • SUBNETWORK : URL de la ressource de sous-réseau pour cette VM.

  • GPU_TYPE : type de GPU. Défini sur l'un des types d'accélérateurs spécifiés lors de la création du modèle de nœud.

  • GPU_COUNT : nombre de GPU du total spécifié par le modèle de nœud à associer à cette VM. La valeur par défaut est 1.

  • IMAGE_PROJECT : projet d'image de la famille d'images.

  • IMAGE_FAMILY : famille d'images de l'image à utiliser pour créer la VM.

  • LOCAL_SSD_ZONE : zone du disque SSD local.

  • SSD_INTERFACE : type d'interface SSD locale. Définie sur NVME si les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie sur SCSI.

Provisionner un groupe de VM à locataire unique

Les groupes d'instances gérés (MIG) vous permettent de provisionner un groupe de VM à locataire unique identiques. Les libellés d'affinité vous permettent de spécifier le nœud ou le groupe de nœuds à locataire unique sur lequel provisionner le groupe de VM à locataire unique.

Pour les MIG régionaux, vous devez créer des groupes de nœuds dans chacune des zones du MIG régional et spécifier des affinités de nœuds pour ces groupes de nœuds dans le modèle d'instance du MIG régional.

gcloud

  1. Exécutez la commande gcloud compute instance-templates create afin de créer un modèle de groupe d'instances géré destiné à un groupe de VM à créer sur un groupe de nœuds à locataire unique :

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Remplacez les éléments suivants :

    • INSTANCE_TEMPLATE : nom du nouveau modèle d'instance.

    • MACHINE_TYPE : type de machine de la VM à locataire unique. Exécutez la commande gcloud compute machine-types list pour obtenir la liste des types de machines disponibles pour le projet.

    • IMAGE_PROJECT : projet d'image de la famille d'images.

    • IMAGE_FAMILY : famille d'images de l'image à utiliser pour créer la VM.

    • GROUP_NAME : nom du groupe de nœuds sur lequel provisionner la VM. Si vous souhaitez utiliser ce modèle d'instance pour créer un MIG régional couvrant plusieurs zones, utilisez l'option --node-affinity-file pour spécifier une liste de valeurs pour les groupes de nœuds du MIG régional.

    • GPU_TYPE : type de GPU. Défini sur l'un des types d'accélérateurs spécifiés lors de la création du modèle de nœud.

    • GPU_COUNT : nombre de GPU du total spécifié par le modèle de nœud à associer à cette VM. La valeur par défaut est 1.

    • SSD_INTERFACE : type d'interface SSD locale. Définie sur nvme si les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie sur scsi. Spécifiez cette option ainsi qu'une valeur correspondante une fois pour chaque partition SSD locale.

  2. Exécutez la commande gcloud compute instance-groups managed create pour créer un modèle de groupe d'instances géré dans votre groupe de nœuds à locataire unique :

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    Remplacez l'élément suivant :

    • INSTANCE_GROUP_NAME : Nom de ce groupe d'instances.

    • SIZE : nombre de VM à inclure dans ce groupe d'instances. Votre groupe de nœuds doit disposer de suffisamment de ressources pour pouvoir prendre en charge les instances de ce groupe d'instances géré. Utilisez l'autoscaler de groupe d'instances géré pour gérer automatiquement la taille des groupes d'instances gérés.

    • INSTANCE_TEMPLATE : nom du modèle d'instance à utiliser pour créer ce MIG. Le modèle doit comporter un ou plusieurs libellés d'affinité de nœuds pointant vers les groupes de nœuds appropriés.

    • ZONE : zone dans laquelle créer le groupe d'instances géré. Pour un MIG régional, remplacez l'option --zone par l'option --region et spécifiez une région. Ajoutez également l'option --zones pour spécifier toutes les zones dans lesquelles les groupes de nœuds existent.

REST

  1. Exécutez la commande instanceTemplates.insert pour créer un modèle de groupe d'instances géré dans votre groupe de nœuds à locataire unique :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Remplacez l'élément suivant :

    • PROJECT_ID : ID du projet.

    • TEMPLATE_ZONE : zone dans laquelle créer le modèle d'instance.

    • INSTANCE_TEMPLATE : nom du nouveau modèle d'instance.

    • MACHINE_TYPE_ZONE : zone du type de machine.

    • MACHINE_TYPE : type de machine de la VM à locataire unique. Utilisez la méthode machineTypes.list pour obtenir la liste des types de machines disponibles pour le projet.

    • GROUP_NAME : nom du groupe de nœuds sur lequel provisionner la VM. Si vous souhaitez utiliser ce modèle d'instance pour créer un MIG régional existant dans plusieurs zones, spécifiez une liste de groupes de nœuds qui existent dans les mêmes zones que celles du MIG régional.

    • NETWORK : URL de la ressource réseau pour ce modèle d'instance.

    • REGION : région contenant le sous-réseau de ce modèle d'instance.

    • SUBNETWORK : URL de la ressource de sous-réseau pour ce modèle d'instance.

    • GPU_TYPE : type de GPU. Défini sur l'un des types d'accélérateurs spécifiés lors de la création du modèle de nœud.

    • GPU_COUNT : nombre de GPU du total spécifié par le modèle de nœud à associer à cette VM. La valeur par défaut est 1.

    • IMAGE_PROJECT : projet d'image de la famille d'images.

    • IMAGE_FAMILY : famille d'images de l'image à utiliser pour créer la VM.

    • LOCAL_SSD_ZONE : zone du disque SSD local.

    • SSD_INTERFACE : type d'interface SSD locale. Définie sur NVME si les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie sur SCSI.

  2. Utilisez la méthode instanceGroupManagers.insert pour créer un MIG dans votre groupe de nœuds à locataire unique en partant du modèle d'instance créé précédemment. Si vous souhaitez créer un MIG régional, utilisez la méthode regionInstanceGroupManagers.insert et spécifiez la région et les zones de tous les groupes de nœuds comme indiqué dans le modèle d'instance.

    Par exemple, pour créer un MIG zonal, exécutez la requête suivante :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet.

    • ZONE : zone dans laquelle créer le groupe d'instances géré.

    • NAME_PREFIX : nom du préfixe de chacune des instances du groupe d'instances géré.

    • INSTANCE_GROUP_NAME : nom du groupe d'instances.

    • SIZE : nombre de VM à inclure dans ce groupe d'instances. Votre groupe de nœuds doit disposer de suffisamment de ressources pour pouvoir prendre en charge les instances de ce groupe d'instances géré. Utilisez l'autoscaler de groupe d'instances géré pour gérer automatiquement la taille des groupes d'instances gérés.

    • INSTANCE_TEMPLATE : nom du modèle d'instance à utiliser pour créer ce groupe. Le modèle doit comporter un libellé d'affinité de nœud pointant vers le groupe de nœuds approprié.

Configurer des libellés d'affinité de nœuds

Les libellés d'affinité de nœud vous permettent de regrouper logiquement des groupes de nœuds et de planifier des VM sur un ensemble spécifique de groupes de nœuds. Vous pouvez également utiliser des libellés d'affinité de nœuds pour planifier des VM sur des groupes de nœuds dans différentes zones, tout en conservant les groupes de nœuds dans un groupe logique. La procédure suivante montre comment utiliser des libellés d'affinité pour associer des VM à un groupe de nœuds spécifique utilisé pour les charges de travail de production. Cet exemple montre comment planifier une seule VM, mais vous pouvez également utiliser des groupes d'instances gérés pour planifier un groupe de VM.

gcloud

  1. Exécutez la commande gcloud compute sole-tenancy node-templates create afin de créer un modèle de nœud avec un ensemble de libellés d'affinité pour une charge de travail de production :

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Exécutez la commande gcloud compute sole-tenancy node-templates describe pour afficher les libellés d'affinité de nœuds attribués au modèle de nœud.

  3. Exécutez la commande gcloud compute sole-tenancy node-groups create pour créer un groupe de nœuds utilisant le modèle de production :

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. Créez un fichier node-affinity-prod.json pour spécifier l'affinité de vos VM de production. Par exemple, vous pouvez créer un fichier spécifiant que les VM ne s'exécutent que sur des nœuds avec les affinités workload=frontend et environment=prod. Créez le fichier d'affinité de nœuds à l'aide de Cloud Shell ou créez-le à l'emplacement de votre choix.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Utilisez le fichier node-affinity-prod.json avec la commande gcloud compute instances create pour planifier une VM sur le groupe de nœuds avec les libellés d'affinité correspondants.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Exécutez la commande gcloud compute instances describe et vérifiez le champ scheduling pour visualiser les affinités de nœuds attribuées à la VM.

Configurer des libellés d'anti-affinité de nœuds

Les libellés d'affinité de nœuds peuvent être configurés en tant que libellés d'anti-affinité pour empêcher les VM de s'exécuter sur des nœuds spécifiques. Par exemple, vous pouvez utiliser des libellés d'anti-affinité pour éviter que les VM que vous utilisez à des fins de développement soient planifiées sur les mêmes nœuds que votre VM de production. L'exemple suivant montre comment utiliser des libellés d'affinité pour empêcher les VM de s'exécuter sur des groupes de nœuds spécifiques. Cet exemple montre comment planifier une VM unique, mais vous pouvez également utiliser des groupes d'instances gérés pour planifier un groupe de VM.

gcloud

  1. Spécifiez l'affinité de vos VM de développement en créant un objet node-affinity-dev.json avec Cloud Shell ou en le créant à l'emplacement de votre choix. Par exemple, créez un fichier qui configure les VM pour qu'elles s'exécutent sur n'importe quel groupe de nœuds avec l'affinité workload=frontend, tant qu'il ne s'agit pas d'un groupe de production (environment=prod) :

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Utilisez le fichier node-affinity-dev.json avec la commande gcloud compute instances create pour créer la VM de développement :

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Exécutez la commande gcloud compute instances describe et vérifiez le champ scheduling pour visualiser les anti-affinités de nœuds attribuées à la VM.

Supprimer un groupe de nœuds

Si vous devez supprimer un groupe de nœuds à locataire unique, supprimez d'abord les VM du groupe de nœuds.

Console

  1. Accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur le nom du groupe de nœuds à supprimer.

  3. Pour chaque nœud du groupe de nœuds, cliquez sur le nom du nœud et supprimez les instances de VM individuelles sur la page des détails du nœud, ou suivez la procédure standard pour supprimer une VM individuelle. Pour supprimer des VM d'un groupe d'instances géré, supprimez le groupe d'instances géré.

  4. Après avoir supprimé toutes les instances de VM exécutées sur tous les nœuds du groupe, revenez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  5. Cliquez sur Groupes de nœuds.

  6. Sélectionnez le nom du groupe de nœuds à supprimer.

  7. Cliquez sur Supprimer.

gcloud

  1. Répertoriez les instances de VM en cours d'exécution sur les nœuds du groupe de nœuds à l'aide de la commande gcloud compute sole-tenancy node-groups list-nodes :

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE
    

    Remplacez les éléments suivants :

    • GROUP_NAME : nom du groupe de nœuds

    • ZONE : zone du groupe de nœuds

  2. Si des VM s'exécutent sur le groupe de nœuds, suivez la procédure permettant de supprimer une VM individuelle ou la procédure de suppression d'un groupe d'instances géré.

  3. Après avoir supprimé toutes les VM s'exécutant sur tous les nœuds du groupe de nœuds, supprimez le groupe de nœuds à l'aide de la commande gcloud compute sole-tenancy node-groups delete :

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE
    

    Remplacez l'élément suivant :

    • GROUP_NAME : nom du groupe de nœuds

    • ZONE : zone du groupe de nœuds

REST

  1. Répertoriez les instances de VM en cours d'exécution sur les nœuds du groupe de nœuds à l'aide de la méthode nodeGroups.listNodes :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes
    

    Remplacez l'élément suivant :

    • PROJECT_ID : ID du projet

    • ZONE : zone du groupe de nœuds

    • GROUP_NAME : groupe pour lequel répertorier les VM

  2. Si des VM s'exécutent sur le groupe de nœuds, suivez la procédure permettant de supprimer une VM individuelle ou la procédure de suppression d'un groupe d'instances géré.

  3. Après avoir supprimé toutes les VM en cours d'exécution sur tous les nœuds du groupe de nœuds, supprimez le groupe à l'aide de la méthode nodeGroups.delete :

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    Remplacez l'élément suivant :

    • PROJECT_ID : ID du projet

    • ZONE : zone du groupe de nœuds

    • GROUP_NAME : nom du groupe de nœuds à supprimer

Supprimer un modèle de nœud

Vous pouvez supprimer un modèle de nœud après avoir supprimé tous les groupes de nœuds qui l'utilisent.

Console

  1. Dans Google Cloud Console, accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Modèles de nœud.

  3. Sélectionnez le nom d'un modèle de nœud inutilisé.

  4. Cliquez sur Supprimer.

gcloud

Exécutez la commande gcloud compute sole-tenancy node-templates delete pour supprimer un modèle de nœud inutilisé :

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

Remplacez l'élément suivant :

  • TEMPLATE_NAME : nom du modèle de nœud à supprimer

  • REGION : région du modèle de nœud

REST

Utilisez la méthode compute.nodeTemplates.delete pour supprimer un modèle de nœud inutilisé :

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.

  • REGION : région Google Cloud contenant le modèle de nœud

  • TEMPLATE_NAME : nom du modèle de nœud à supprimer

Étape suivante