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.
Avant de commencer
- Avant de provisionner des VM sur des nœuds à 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.
- Créez un modèle de nœud à locataire unique.
- Créez un groupe de nœuds à locataire unique.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Cloud de Confiance by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
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 Cloud de Confiance pour accéder aux services et aux API Cloud de Confiance by S3NS , vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud init
-
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Cloud de Confiance .
Créer un modèle de nœud à locataire unique
Avant de créer un groupe de nœuds et de provisionner des VM à locataire unique, vous devez créer 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 (telles que le type de nœud, les libellés d'affinité, les disques SSD locaux, les accélérateurs et la sursollicitation des processeurs) de chaque nœud d'un groupe de nœuds.
Pour configurer et créer un modèle de nœud à l'aide de la console Cloud de Confiance , de la Google Cloud CLI ou de l'API REST Compute Engine, consultez Créer un modèle de nœud à locataire unique.
Créer un groupe de nœuds à locataire unique
Après avoir créé un modèle de nœud, vous devez créer un groupe de nœuds à locataire unique. Un groupe de nœuds est un cluster homogène de nœuds à locataire unique dans une zone spécifique qui hérite des propriétés de son modèle. Vous pouvez configurer des règles de maintenance de l'hôte, l'autoscaling et des paramètres de partage interprojets sur le groupe de nœuds.
Pour configurer et créer un groupe de nœuds à l'aide de la console Cloud de Confiance , de Google Cloud CLI ou de l'API REST Compute Engine, consultez Créer un groupe de nœuds à locataire unique.
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
Dans la console Cloud de Confiance , accédez à la page Nœuds à locataire unique.
Cliquez sur Groupes de nœuds.
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.
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.
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.
Modifiez les paramètres de disque de démarrage, de pare-feu et autres valeurs si nécessaire.
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.
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.
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.
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 commandegcloud compute machine-types listpour 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: migration de VM 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 est1.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 surnvmesi les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la variable est définie surscsi. 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éthodemachineTypes.listpour 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: migration de VM 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 esttrue.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 est1.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 surNVMEsi les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie surSCSI.
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
Exécutez la commande
gcloud compute instance-templates createafin 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 commandegcloud compute machine-types listpour 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-filepour 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 est1.SSD_INTERFACE: type d'interface SSD locale. Définie surnvmesi les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie surscsi. Spécifiez cette option ainsi qu'une valeur correspondante une fois pour chaque partition SSD locale.
Exécutez la commande
gcloud compute instance-groups managed createpour 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--zonepar l'option--regionet spécifiez une région. Ajoutez également l'option--zonespour spécifier toutes les zones dans lesquelles les groupes de nœuds existent.
REST
Exécutez la commande
instanceTemplates.insertpour 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éthodemachineTypes.listpour 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 est1.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 surNVMEsi les pilotes d'image du disque de démarrage sont optimisés pour le NVMe. Sinon, la valeur est définie surSCSI.
Utilisez la méthode
instanceGroupManagers.insertpour 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éthoderegionInstanceGroupManagers.insertet 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
Exécutez la commande
gcloud compute sole-tenancy node-templates createafin 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
Exécutez la commande
gcloud compute sole-tenancy node-templates describepour afficher les libellés d'affinité de nœuds attribués au modèle de nœud.Exécutez la commande
gcloud compute sole-tenancy node-groups createpour 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
Créez un fichier
node-affinity-prod.jsonpour 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ésworkload=frontendetenvironment=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"] } ]Utilisez le fichier
node-affinity-prod.jsonavec la commandegcloud compute instances createpour 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
Exécutez la commande
gcloud compute instances describeet vérifiez le champschedulingpour 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
Spécifiez l'affinité de vos VM de développement en créant un objet
node-affinity-dev.jsonavec 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"] } ]Utilisez le fichier
node-affinity-dev.jsonavec la commandegcloud compute instances createpour 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
Exécutez la commande
gcloud compute instances describeet vérifiez le champschedulingpour visualiser les anti-affinités de nœuds attribuées à la VM.
Étapes suivantes
Pour en savoir plus sur l'activation de l'autoscaling sur les groupes de nœuds à locataire unique, consultez la page Autoscaler de groupe de nœuds.
Pour en savoir plus sur l'utilisation de licences existantes sur Cloud de Confiance, consultez Utiliser des licences existantes.
Pour en savoir plus sur les nœuds à locataire unique, consultez la page Nœuds à locataire unique.