Provisionner des VM sur des nœuds à locataire unique

Cette page explique comment provisionner des instances de VM sur des nœuds à locataire unique. Les nœuds à locataire unique sont des serveurs physiques dédiés à l'exécution des VM de votre projet spécifique. Avant de provisionner des VM sur des nœuds à locataire unique, consultez la présentation des nœuds à locataire unique.

Le processus de provisionnement des VM sur des nœuds à locataire unique implique les tâches suivantes :

  1. Créer un modèle de nœud à locataire unique pour spécifier les propriétés du nœud
  2. Créer un groupe de nœuds à locataire unique à partir du modèle
  3. Créer des VM pour utiliser des nœuds à locataire unique.

Avant de commencer

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

Avant de pouvoir créer des groupes de nœuds et provisionner des VM sur ces groupes, créez un modèle de nœud à locataire unique. Un modèle de nœud est une ressource régionale qui définit les propriétés des nœuds dans les groupes de nœuds créés à partir du modèle.

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. Cliquez sur Créer un modèle de nœud pour commencer la création.

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

  5. Spécifiez une région. 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.

  6. Spécifiez le type de nœud pour chaque nœud à locataire unique dans le groupe de nœuds que vous allez créer à partir de ce modèle de nœud.

  7. Ajoutez des étiquettes d'affinité de nœuds. Les étiquettes d'affinité vous permettent de planifier des VM à l'aide de la location unique. Les nœuds des groupes de nœuds créés à partir de ce modèle n'utilisent que ces étiquettes d'affinité. Vous ne pouvez pas ajouter séparément des étiquettes d'affinité à un groupe de nœuds. Pour en savoir plus, consultez la section Affinité et anti-affinité de nœuds.

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

gcloud

  1. Utilisez la commande compute sole-tenancy node-types list pour obtenir la liste des types de nœuds à locataire unique disponibles dans chaque zone Google Cloud.

    gcloud compute sole-tenancy node-types list
    
  2. Utilisez la commande compute sole-tenancy node-templates create pour créer un modèle de nœud en spécifiant le type de nœud :

    gcloud compute sole-tenancy node-templates create template-name \
      --region=region \
      --node-type=node-type \
      --node-affinity-labels=affinity-labels \
      --server-binding=server-binding
    

    Remplacez l'élément suivant :

    • template-name : nom du nouveau modèle de nœud.
    • region : région dans laquelle vous allez utiliser ce modèle.

    • node-type : type de nœud pour ce modèle. Par exemple, sélectionnez le type de nœud n2-node-80-640 pour créer un nœud disposant de 80 processeurs virtuels et de 624 Go de mémoire.

    • affinity-labels : clés et valeurs pour les étiquettes d'affinité. Les étiquettes d'affinité vous permettent de planifier des instances de VM à l'aide de la location unique. Les nœuds des groupes de nœuds créés à partir de ce modèle n'utilisent que ces étiquettes d'affinité. Vous ne pouvez pas ajouter séparément des étiquettes d'affinité à un groupe de nœuds. Pour en savoir plus, consultez la section Étiquettes d'affinité de nœuds.

    • server-binding : ce paramètre vous permet de contrôler la manière dont Google Cloud mappe les nœuds aux serveurs physiques. Spécifiez restart-node-on-any-server ou omettez l'indicateur server-binding pour permettre à Google Cloud de provisionner n'importe quel serveur physique en tant que nœud après un événement de maintenance de nœud. Spécifiez restart-node-on-minimal-servers pour forcer Google Cloud à utiliser le même serveur physique pour le nœud. Pour en savoir plus, consultez --server-binding.

API

  1. Utilisez la méthode compute.nodeTypes.list pour obtenir la liste des types de nœuds :

    GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeTypes
    

    Remplacez les éléments suivants :

    • project-id : ID de votre projet.
    • zone : zone Google Cloud à partir de laquelle récupérer les types de nœuds disponibles.
  2. Utilisez la méthode compute.nodeTemplates.insert pour créer un modèle de nœud utilisant un type 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",
             ....
         },
         "serverBinding":
         {
             "type": "server-binding"
         }
        }
    

    Remplacez les éléments suivants :

    • project-id : ID de votre projet.
    • region : région Google Cloud 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 modèle de nœud à créer.

    • node-type : type de nœud pour ce modèle. Par exemple, sélectionnez le type de nœud n2-node-80-640 pour créer un nœud disposant de 80 processeurs virtuels et de 640 Go de mémoire.

    • Utilisez nodeAffinityLabels pour spécifier les paires key et value qui définissent les étiquettes d'affinité des nœuds. Les étiquettes d'affinité vous permettent de planifier des instances de VM à l'aide de la location unique. Les nœuds des groupes de nœuds créés à partir de ce modèle n'utilisent que ces étiquettes d'affinité. Vous ne pouvez pas ajouter séparément des étiquettes d'affinité à un groupe de nœuds. Pour en savoir plus, consultez la section Étiquettes d'affinité de nœuds.

    • server-binding : ce paramètre vous permet de contrôler la manière dont Google Cloud mappe les nœuds aux serveurs physiques. Spécifiez restart-node-on-any-server ou omettez le paramètre serverBinding pour permettre à Google Cloud de provisionner n'importe quel serveur physique en tant que nœud après un événement de maintenance de nœud. Spécifiez restart-node-on-minimal-servers pour forcer Google Cloud à utiliser le même serveur physique pour le nœud. Pour en savoir plus, consultez --server-binding.

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

Après avoir créé un modèle de nœud, créez un groupe de nœuds basé sur ce modèle. Lors de la création d'un groupe de nœuds, vous devez spécifier les valeurs suivantes, qui s'appliquent à chaque nœud du groupe :

  • Région : choisissez la région contenant le modèle de nœud à appliquer au groupe de nœuds.

  • Zone : choisissez la zone de la région dans laquelle vous souhaitez créer le groupe de nœuds.

  • Modèle de nœud : choisissez le modèle de nœud à partir duquel vous souhaitez créer le groupe de nœuds.

  • Nombre de nœuds : spécifiez le nombre de nœuds à locataire unique à créer dans le groupe de nœuds et utilisez l'autoscaler de groupe de nœuds pour gérer la taille de vos groupes de nœuds. En fonction du nombre de nœuds que vous créez, vous aurez peut-être à demander un quota supplémentaire. Par exemple, si vous créez un groupe de nœuds de taille 2 et que vous avez choisi n2-node-80-640 comme type de nœud, vous devez disposer d'un quota de processeurs virtuels d'au moins 160.

  • Règle de maintenance : spécifiez la règle de maintenance des VM lors d'événements de maintenance de l'hôte. Choisissez si les VM de l'hôte sont migrées à chaud vers un nouveau serveur physique, migrées à chaud dans le pool de serveurs physiques utilisés par le groupe de nœuds, ou arrêtées et redémarrées sur le même serveur physique. Utilisez la règle de maintenance par défaut, sauf si vous avez des exigences d'affinité de serveur physique, par exemple, si vous avez des licences logicielles évaluées par cœur physique.

  • Groupes de nœuds avec autoscaling : activez l'autoscaler de groupe de nœuds pour augmenter ou diminuer automatiquement le nombre de nœuds de votre groupe en fonction de vos besoins.

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 exécuter votre groupe de nœuds.

  6. Indiquez le modèle de nœud à utiliser. Vous devez disposer d'un modèle de nœud dans la région sélectionnée.

  7. Précisez le nombre de nœuds à exécuter dans le groupe. Vous pouvez modifier manuellement ce nombre plus tard ou activer l'autoscaler de groupe de nœuds. L'autoscaler de groupe de nœuds est actuellement en version bêta.

  8. Spécifiez la règle de maintenance :

    • Par défaut : la VM est migrée à chaud vers un nouveau serveur physique.
    • Redémarrer sur place : redémarre les VM sur le même serveur physique.
    • Migrer dans le groupe de nœuds : migre la VM dans le groupe de nœuds.
  9. Cliquez sur Créer pour terminer la création du groupe de nœuds.

gcloud

Exécutez la commande suivante pour créer un groupe de nœuds basé sur un modèle de nœud précédemment créé :

gcloud compute sole-tenancy node-groups create group-name \
  --zone=zone \
  --node-template=template-name \
  --target-size=target-size \
  --maintenance-policy=maintenance-policy \
  --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.
  • zone : zone dans laquelle créer le groupe de nœuds. Il doit s'agir de la même région que celle du modèle de nœud sur lequel vous basez le groupe de nœuds.
  • template-name : nom du modèle de nœud à utiliser pour créer ce groupe.
  • target-size : nombre de nœuds à créer dans le groupe.
  • maintenance-policy : stratégie de maintenance du groupe de nœuds. Il doit s'agir de l'un des éléments suivants :
    • default : les VM sont migrées à chaud vers un nouveau serveur physique.
    • migrate-within-node-group : les VM sont migrées à chaud vers un autre nœud du groupe de nœuds. Cette stratégie est en version bêta et doit être spécifiée à l'aide de la commande gcloud beta compute sole-tenancy node-groups create.
    • restart-in-place : les VM sont arrêtées et redémarrées sur le même serveur physique après l'événement de maintenance.
  • autoscaler-mode : stratégie d'autoscaler pour le groupe de nœuds. Il doit s'agir de l'un des éléments suivants :
    • off : désactive l'autoscaling sur le groupe de nœuds.
    • on : active l'autoscaling sur le groupe de nœuds.
    • only-scale-out : activation de l'autoscaling horizontal uniquement.
  • 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.

API

Après avoir créé le modèle de nœud, créez un groupe de nœuds. Utilisez la méthode nodeGroups.insert pour créer un groupe de nœuds :

POST https://www.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, "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. Doit se trouver 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 où se trouve le modèle de nœud sur lequel baser ce groupe de nœuds.
  • template-name : nom du modèle de nœud à utiliser pour créer ce groupe.
  • group-name : nom du nouveau groupe de nœuds.
  • maintenance-policy : stratégie de maintenance du groupe de nœuds. Il doit s'agir de l'un des éléments suivants :
    • DEFAULT : les VM suivent le comportement de maintenance traditionnel pendant les événements de maintenance de l'hôte et peuvent migrer à chaud vers un nouvel hôte si elles sont configurées pour migrer pendant les événements de maintenance de l'hôte. Les VM qui ne sont pas configurées pour la migration lors des événements de maintenance de l'hôte sont arrêtées.
    • MIGRATE_WITHIN_NODE_GROUP : les VM sont migrées à chaud vers un autre nœud du groupe de nœuds. Cette stratégie est en version bêta et doit être spécifiée à l'aide de la commande gcloud beta compute sole-tenancy node-groups create.
    • RESTART_IN_PLACE : les VM sont arrêtées et redémarrées sur le même serveur physique après l'événement de maintenance.
  • autoscaler-mode : stratégie d'autoscaler pour le groupe de nœuds. Il doit s'agir de l'un des éléments suivants :
    • OFF : désactive l'autoscaling sur le groupe de nœuds.
    • ON : active l'autoscaling sur le groupe de nœuds.
    • ONLY_SCALE_OUT : activation de l'autoscaling horizontal uniquement.
  • max-nodes : taille maximale du groupe de nœuds. Doit être inférieur ou égal à 100 et supérieur ou égal à min- nodes. Doit être spécifié si autoscaler-mode n'est pas défini sur off.
  • 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.

Provisionner des VM individuelles sur un nœud à locataire unique

Après avoir créé un groupe de nœuds à partir d'un modèle de nœud, provisionnez des VM individuelles directement sur un nœud à locataire unique ou un groupe de nœuds en utilisant un type de machine prédéfini ou personnalisé avec au moins deux processeurs virtuels. Lorsque vous provisionnez une VM de cette manière, Compute Engine attribue automatiquement des étiquettes d'affinité en fonction du nœud ou du groupe de nœuds sur lequel vous provisionnez la VM.

La procédure ci-dessous explique comment provisionner une VM individuelle sur un groupe de nœuds.

Console

  • À l'aide d'étiquettes d'affinité de nœud : suivez la procédure standard pour créer une instance de VM en utilisant Cloud Console afin d'associer une nouvelle instance de VM à un nœud à locataire unique à l'aide d'étiquettes d'affinité.

  • Vous pouvez également créer une instance de VM à partir de la page de détails 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 Groupes de nœuds.

    3. Cliquez sur le nom du groupe de nœuds sur lequel provisionner une instance de VM.

    4. Cliquez sur Créer une instance pour provisionner une instance de VM sur ce groupe de nœuds, et notez les valeurs automatiquement appliquées par Compute Engine aux paramètres Région, Zone, Configuration de la machine, Étiquettes d'affinité de nœud, Pendant la maintenance de l'hôte et Redémarrage automatique. Modifiez les valeurs selon les exigences de votre charge de travail.

    5. Cliquez sur Créer pour terminer la création de l'instance.

gcloud

Provisionnez une VM avec un type de machine personnalisé sur un groupe de nœuds à l'aide de la commande suivante :

gcloud compute instances create vm-name \
  --zone=zone \
  --image-family=image-family \
  --image-project=image-project \
  --node-group=group-name \
  --custom-cpu=vcpus \
  --custom-memory=memory \
  --maintenance-policy=maintenance-policy \
  --restart-on-failure

Remplacez l'élément suivant :

  • vm-name : nom de la nouvelle VM.
  • zone : zone dans laquelle créer la VM.
  • image-family : famille d'images contenant l'image à utiliser pour créer la VM.
  • image-project : projet d'image auquel appartient la famille d'images.
  • group-name : nom du groupe de nœuds sur lequel provisionner la VM.
  • vcpus : nombre de processeurs virtuels à utiliser avec cette VM.
  • memory : quantité de mémoire par incréments de 256 Mo. Par exemple, 5,25 Go ou 5 376 Mo.
  • maintenance-policy : spécifie le comportement des VM en cours de maintenance. Définissez l'une des options suivantes :
    • MIGRATE : VM migrées vers un nouvel hôte.
    • TERMINATE : VM arrêtées.
  • --restart-on-failure : paramètre indiquant s'il faut redémarrer les VM après leur arrêt. Utilisez --no-restart-on- failure pour désactiver.

API

Provisionnez une VM avec un type de machine personnalisé sur un groupe de nœuds à l'aide de la requête REST instances.insert suivante :

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances
{ "machineType": "zones/zone/machineTypes/custom-vcpus-memory", "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" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] }

Remplacez l'élément suivant :

  • project-id : ID du projet.
  • zone : zone dans laquelle créer la VM.
  • vcpus : nombre de processeurs virtuels à utiliser avec cette VM.
  • memory : quantité de mémoire par incréments de 256 Mo. Par exemple, 5,25 Go ou 5 376 Mo.
  • vm-name : nom de la nouvelle VM.
  • maintenance-policy : spécifie le comportement des VM en cours de maintenance. Définissez l'une des options suivantes :
    • MIGRATE : VM migrées vers un nouvel hôte.
    • TERMINATE : VM arrêtées.
  • restart-on-failure : paramètre indiquant s'il faut redémarrer les VM après leur arrêt. La valeur par défaut est true.
  • group-name : nom du groupe de nœuds sur lequel provisionner la VM.
  • network:  URL du réseau pour cette VM.
  • region : région contenant le sous-réseau de cette VM.
  • subnetwork : URL du sous-réseau pour cette VM.
  • image-project : projet d'image auquel appartient la famille d'images.
  • image-family : famille d'images contenant l'image à utiliser pour créer la VM.

Provisionner plusieurs VM sur un nœud à locataire unique

Pour provisionner plusieurs VM identiques simultanément sur un nœud ou un groupe de nœuds, utilisez des groupes d'instances gérés (MIG) et une étiquette d'affinité pour spécifier le nœud ou le groupe de nœuds à locataire unique sur lequel le groupe d'instances s'exécute.

Pour gérer automatiquement la taille d'un groupe d'instances géré, utilisez l'autoscaler MIG. Pour gérer automatiquement la taille des groupes de nœuds, utilisez l'autoscaler de groupe de nœuds.

La commande suivante montre comment créer un groupe d'instances géré avec un type de machine personnalisé.

gcloud

  1. Créez un modèle MIG dans votre groupe de nœuds à l'aide de la commande gcloud compute instance-templates create :

    gcloud compute instance-templates create instance-template \
    --image-family=image-family \
    --image-project=image-project \
    --node-group=group-name \
    --custom-cpu=vcpus \
    --custom-memory=memory
    

    Remplacez l'élément suivant :

    • instance-template : nom du nouveau modèle d'instance.
    • image-family : famille d'images contenant l'image à utiliser pour créer la VM.
    • image-project : projet d'image auquel appartient la famille d'images.
    • group-name : nom du groupe de nœuds sur lequel provisionner la VM.
    • vcpus : nombre de processeurs virtuels à utiliser avec cette VM.
    • memory : quantité de mémoire par incréments de 256 Mo. Par exemple, 5,25 Go ou 5 376 Mo.
  2. Créez un groupe d'instances à l'aide de la commande gcloud compute instance-groups managed create :

    gcloud compute instance-groups managed create instance-group-name --zone zone --size size --template instance-template
    

    Remplacez l'élément suivant :

    • instance-group-name : nom de ce groupe d'instances.
    • zone : zone dans laquelle créer le groupe d'instances géré.
    • 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é.
    • instance-template : nom du modèle d'instance à utiliser pour créer ce groupe. Le modèle doit avoir une affinité de nœud pointant vers le groupe de nœuds approprié.

API

  1. Créez un modèle MIG dans votre groupe de nœuds à l'aide de la requête REST instanceTemplates.insert :

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instance-templates
    { "name": "template-name", "properties": { "machineType": "custom-vcpus-memory", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "group-name" ] } ] }, "networkInterfaces": [ { "network": "global/networks/network", "subnetwork": "regions/region/subnetworks/subnetwork" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/image-project/global/images/family/image-family" } } ] } }

    Remplacez l'élément suivant :

    • project-id : ID du projet.
    • zone : zone dans laquelle créer le modèle d'instance.
    • template-name : nom du nouveau modèle d'instance.
    • vcpus : nombre de processeurs virtuels à utiliser pour chaque VM du groupe d'instances.
    • memory : quantité de mémoire par incréments de 256 Mo pour chaque VM du groupe d'instances. Par exemple, 5,25 Go ou 5 376 Mo.
    • group-name : nom du groupe de nœuds sur lequel provisionner la VM.
    • network:  URL du réseau pour cette VM.
    • region : région contenant le sous-réseau de cette VM.
    • subnetwork : URL du sous-réseau pour cette VM.
    • image-project : projet d'image auquel appartient la famille d'images.
    • image-family : famille d'images contenant l'image à utiliser pour créer la VM.
  2. Créez un groupe d'instances à l'aide de la commande instanceGroupManagers.create :

    POST https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers
    {
     "baseInstanceName": "name-prefix",
     "name": "instance-group-name",
     "targetSize": sizevar>,
     "instanceTemplate": "global/instanceTemplates/instance-template"
    }
    

    Remplacez l'élément suivant :

    • 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 de votre groupe d'instances géré.
    • 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é.
    • instance-template : nom du modèle d'instance que vous souhaitez utiliser pour créer ce groupe. Le modèle doit avoir une affinité de nœud pointant vers le groupe de nœuds approprié.

Exemple d'affinité d'instance

Les étiquettes 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 étiquettes 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 étiquettes d'affinité pour associer des VM à un groupe de nœuds spécifique :

gcloud

  1. Créez un modèle de nœud avec un ensemble d'étiquettes d'affinité pour une charge de travail de production :

    gcloud compute sole-tenancy node-templates create production-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=prod
    
  2. Créez un autre modèle de nœud avec un ensemble d'étiquettes d'affinité pour la charge de travail de développement :

    gcloud compute sole-tenancy node-templates create development-template --node-type=n2-node-80-640 --node-affinity-labels workload=frontend,environment=dev
    
  3. Créez plusieurs groupes de nœuds à l'aide des modèles de production et de développement. Par exemple, vous pouvez utiliser un vaste groupe de nœuds de production et plusieurs groupes de nœuds de développement plus petits. Si vous le souhaitez, vous pouvez créer ces groupes dans différentes zones et avec différentes tailles de cibles pour vous adapter à l'échelle des charges de travail :

    gcloud compute sole-tenancy node-groups create production-group --node-template production-template --target-size 5 --zones us-west1-b
    
    gcloud compute sole-tenancy node-groups create development-group-east1 --node-template development-template --target-size 1 --zones us-east1-d
    
    gcloud compute sole-tenancy node-groups create development-group-east2 --node-template development-template --target-size 1 --zones us-east1-d
    
  4. Pour vos VM de production, 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 qui demande aux VM de s'exécuter seulement sur des nœuds avec les affinités workload=frontend et environment=prod :

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Utilisez le fichier node-affinity-prod.json pour créer un modèle de MIG avec les propriétés souhaitées pour vos VM de production :

    gcloud compute instance-templates create production-template --image-family production-images --image-project my-project --node-affinity-file node-affinity-prod.json --custom-cpu 3 --custom-memory 4096
    
  6. Démarrez un groupe d'instances à l'aide du modèle de production de MIG exécuté sur votre nœud de production :

    gcloud compute instance-groups managed create production-group --zone us-west1-b --size 4 --template production-template
    

    À ce stade, les VM du groupe démarrent et s'exécutent seulement sur les groupes de nœuds ayant les affinités workload=frontend et environment=prod.

Exemple d'anti-affinité d'instance

Utilisez des étiquettes d'anti-affinité pour vous assurer que vos VM ne sont pas provisionnées sur des nœuds. Par exemple, créez des VM à des fins de développement, mais empêchez Compute Engine de les planifier sur les mêmes nœuds que vos VM de production. La procédure suivante montre comment utiliser des étiquettes d'affinité pour s'assurer que les VM ne sont pas associées à des groupes de nœuds spécifiques :

gcloud

  1. Pour les instances de développement, créez un fichier node-affinity-dev.json pour spécifier l'affinité de vos VM de développement. 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 de environment=prod :

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT",
        "values" : ["prod"]
      }
    ]
    
  2. Pour le développement, vous pouvez créer une VM individuelle à des fins de test, plutôt qu'un groupe d'instances complet. Utilisez le fichier node-affinity-dev.json pour créer cette VM. Par exemple, si vous souhaitez tester une image de développement spécifique nommée development-image-1, créez la VM et configurez ses affinités à l'aide de la commande suivante :

    gcloud compute instances create dev-1 --image development-image-1 --image-project my-project --node-affinity-file node-affinity-dev.json --custom-cpu 3 --custom-memory 4096 --zone us-east1-d
    

    Cette instance démarre et s'exécute seulement sur les groupes de nœuds qui possèdent le paramètre workload=frontend. Cependant, cette VM ne s'exécutera sur aucun groupe de nœuds configuré avec environment=prod affinity.

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 à l'aide du modèle.

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 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 les éléments suivants :

  • template-name : nom du modèle de nœud à supprimer
  • region : région du modèle de nœud

API

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

Supprimer un groupe de nœuds

Vous pouvez supprimer un groupe de nœuds tant qu'aucune instance de VM ne s'exécute sur ses 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. Assurez-vous qu'aucune instance de VM n'est en cours d'exécution sur le nœud.

  4. Vous pouvez supprimer des instances de VM individuelles sur la page des détails du nœud ou suivre la procédure standard pour supprimer une instance de VM individuelle. Pour supprimer des instances d'un groupe d'instances géré, vous devez supprimer le groupe d'instances géré.

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

  6. Cliquez sur Groupes de nœuds.

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

  8. 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 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 instances de VM s'exécutent sur le groupe de nœuds, suivez la procédure standard pour supprimer une instance de VM individuelle ou la procédure standard pour supprimer un groupe d'instances géré, selon les besoins.

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

    gcloud compute sole-tenancy node-groups delete group-name \
     --zone=zone
    

    Remplacez les éléments suivants :

    • group-name : nom du groupe de nœuds
    • zone : zone du groupe de nœuds

Étapes suivantes