Partage de groupes de nœuds à locataire unique


Les groupes de nœuds à locataire unique partagés sont semblables aux groupes de nœuds à locataire unique locaux. Par exemple, les groupes de nœuds partagés ont le même coût, consomment le même quota et résident dans un projet parent dans la hiérarchie des ressources.

La différence entre les groupes de nœuds partagés et les groupes de nœuds locaux est que d'autres projets de votre organisation peuvent provisionner des instances de machines virtuelles (VM) dans les groupes de nœuds partagés.

Le partage d'un groupe de nœuds entre plusieurs projets ou organisations peut vous aider à effectuer les opérations suivantes :

  • Regroupez les groupes de nœuds que vous gérez dans un seul projet, puis partagez ces nœuds avec d'autres projets ou l'ensemble de l'organisation

  • Réduire les coûts en supprimant les nœuds après le regroupement des VM de différents projets en groupes de nœuds sous-utilisés

  • Gérer les nœuds à locataire unique avec une seule équipe

  • Partager des nœuds à locataire unique avec des projets plus petits tout en conservant les limites de sécurité et de contrôle d'accès entre ces projets

  • Effectuer une migration à chaud entre des groupes de nœuds au sein d'un même projet

  • Améliorez l'utilisation de vos groupes de nœuds et réduisez le nombre de nœuds de maintenance réservés lorsque vous utilisez la règle de maintenance Migrer dans le groupe de nœuds.

Le schéma suivant montre un groupe de nœuds partagé avec d'autres projets afin que les autres services qui gèrent les VM de ces projets puissent provisionner des VM dans un groupe de nœuds partagé.

Schéma d'un groupe de nœuds partagé entre plusieurs projets. Les services qui gèrent les VM de différents projets peuvent provisionner des VM dans un groupe de nœuds partagé.

Avantages de l'utilisation de groupes de nœuds partagés

Le tableau suivant compare les projets qui utilisent des groupes de nœuds locaux avec des projets utilisant des groupes de nœuds partagés. Notez que la sous-utilisation des processeurs virtuels diminue dans les projets utilisant des groupes de nœuds partagés.

Configuration du projet Groupes de nœuds locaux Groupes de nœuds partagés
Projets 10 10
Processeur virtuel / projet 24 24
Groupes de nœuds 10 1
Nœuds / Groupes de nœuds 1 3
Processeur virtuel / nœud 80 80
Utilisation / Groupe de nœuds 24 80
Sous-utilisation / Groupe de nœuds 56 0
Sous-utilisation totale 10 x 56 = 560 processeurs virtuels 1 x 0 = 0 processeur virtuel

Paramètres de partage des groupes de nœuds

Compute Engine utilise les paramètres suivants pour partager des groupes de nœuds et provisionner des VM dans les groupes de nœuds partagés :

  • Un paramètre de partage que vous configurez lorsque vous créez ou mettez à jour le groupe de nœuds à locataire unique. Pour spécifier si vous souhaitez partager le groupe de nœuds avec d'autres projets ou avec l'ensemble de l'organisation, utilisez les paramètres de la gcloud CLI (--share-setting, --share-with) ou les paramètres REST (shareSetting, shareWith).

  • Un libellé d'affinité de nœud compute.googleapis.com/project par défaut que vous utilisez lorsque vous provisionnez une VM dans un groupe de nœuds partagé à l'aide de libellés d'affinité de nœuds. Pour en savoir plus sur les autres libellés d'affinité de nœuds par défaut, consultez la section Libellés d'affinité par défaut.

Remarques sur les règles de maintenance

Lorsqu'un groupe de nœuds utilise la règle de maintenance Migrer dans le groupe de nœuds, Compute Engine réserve au moins un nœud pour les événements de migration à chaud. Le groupe de nœuds doit donc comporter au moins deux nœuds. Vous ne pouvez pas planifier de VM dans le nœud réservé. Par conséquent, les groupes de nœuds avec cette règle de maintenance présentent souvent une utilisation globale plus faible. Les charges de travail qui nécessitent la stratégie de maintenance Migrer dans le groupe de nœuds sont donc parfaitement adaptées au partage de groupes de nœuds, car elles présentent souvent le meilleur avantage d'une utilisation améliorée.

Rôles et autorisations IAM

Gardez à l'esprit les informations suivantes sur les rôles et les autorisations IAM lorsque vous partagez un groupe de nœuds :

  • Si un groupe de nœuds est partagé avec un projet, tout utilisateur pouvant créer des VM dans les projets répertoriés ou dans l'organisation peut provisionner des VM de ces projets dans les groupes de nœuds partagés sans modifier les rôles ni les autorisations IAM.

  • Le rôle IAM compute.soleTenantViewer vous permet de répertorier et d'afficher les groupes de nœuds (gcloud CLI/REST). Vous ne pouvez pas modifier les groupes de nœuds avec ce rôle. Tout utilisateur disposant de ce rôle ou disposant des autorisations nécessaires pour répertorier les groupes de nœuds, indépendamment des autorisations IAM sur la VM, peut afficher l'ID du projet, le nom, le type de machine et des informations sur les disques SSD locaux et les GPU pour toutes les VM du groupe de nœuds.

Limites

  • Limites des régimes de conformité :

    • Indépendamment des autorisations IAM sur la VM, tout utilisateur disposant des autorisations nécessaires pour répertorier les groupes de nœuds peut afficher l'ID du projet, le nom et le type de machine de toutes les VM du groupe de nœuds. Par conséquent, en raison du risque de divulgation d'informations entre projets, les projets dont les VM sont provisionnées dans des groupes de nœuds partagés doivent être soumis au même régime de conformité.
  • Limites de la console Google Cloud :

    • Si vous n'êtes pas autorisé à afficher les VM dans le groupe de nœuds partagé, ces VM n'apparaissent pas dans la liste des VM de la page Nœuds à locataire unique dans la console Google Cloud.
    • Après avoir modifié les paramètres de partage sur la page Groupes de nœuds à locataire unique, le paramètre Partagé avec n'est pas mis à jour dans l'interface utilisateur. Pour afficher le paramètre Partagé avec mis à jour, accédez à la page Nœuds à locataire unique.
    • Après avoir partagé un groupe de nœuds avec tous les projets ou certains projets d'une organisation, vous ne pouvez voir le groupe de nœuds partagé qu'à partir du projet dans lequel il se trouve, et non à partir des projets avec lesquels il a été partagé. Pour provisionner une VM dans le groupe de nœuds partagé, accédez à la page Instances de VM du projet avec lequel le groupe de nœuds est partagé, puis modifiez les libellés d'affinité des nœuds à locataire unique.
  • Restrictions de partage :

    • Vous devez mettre à jour les paramètres de partage du projet propriétaire du groupe de nœuds.
    • Vous pouvez spécifier un maximum de 100 projets lorsque vous utilisez le paramètre de partage projects.
    • Vous ne pouvez pas partager des groupes de nœuds entre des organisations. Par exemple, si vous migrez un projet contenant un groupe de nœuds partagé d'une organisation à une autre, vous devez également migrer tous les projets dont des VM s'exécutent dans ce groupe de nœuds partagé.
    • Vous ne pouvez pas effectuer une migration à chaud entre des projets lorsque vous utilisez des groupes de nœuds à locataire unique partagés. Pour en savoir plus, consultez la page Migrer à chaud des VM manuellement.

Tarifs

Les VM des groupes de nœuds partagés n'entraînent pas de frais supplémentaires, et aucuns frais supplémentaires ne sont facturés pour le partage des groupes de nœuds. Pour en savoir plus sur la tarification des nœuds à locataire unique, consultez la section Tarifs des nœuds à locataire unique.

Avant de commencer

  • Avant de créer un groupe de nœuds à locataire unique, créez un modèle de nœud à locataire unique.
  • 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 :

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

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

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Créer un groupe de nœuds et le partager

Pour créer un groupe de nœuds et le partager avec d'autres projets ou avec l'ensemble de l'organisation, utilisez la console Google Cloud, la gcloud CLI ou REST.

Console

  1. Créez un groupe de nœuds à locataire unique. Pour plus d'informations, consultez la section Créer un groupe de nœuds à locataire unique.

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

gcloud

Pour créer un groupe de nœuds partagé, exécutez la commande gcloud compute sole-tenancy node-groups create suivante.

gcloud compute sole-tenancy node-groups create NODE_GROUP \
    --zone=ZONE \
    --node-template=NODE_TEMPLATE \
    --target-size=SIZE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Remplacez les éléments suivants :

  • NODE_GROUP : nom du groupe de nœuds

  • ZONE : zone dans laquelle créer le groupe de nœuds.

  • NODE_TEMPLATE : nom du modèle de nœud créé précédemment.

  • SIZE : nombre de nœuds du groupe de nœuds.

  • SHARE_SETTING : paramètre de partage pour le groupe de nœuds. Définissez la valeur sur projects pour le partager avec des projets spécifiques ou sur organization pour le partager avec l'ensemble de l'organisation.

  • PROJECTS : liste des ID ou des numéros de projets avec lesquels partager le groupe de nœuds. Obligatoire uniquement si vous définissez SHARE_SETTING sur projects.

REST

Pour créer un groupe de nœuds partagé, utilisez la méthode nodeGroups.insert suivante.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

{
  ...
  "name": NODE_GROUP,
  "nodeTemplate": NODE_TEMPLATE,
  "size": SIZE,
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
  ...
}

Remplacez les éléments suivants :

  • PROJECT : nom du projet dans lequel créer le groupe de nœuds.

  • ZONE : zone dans laquelle créer le groupe de nœuds.

  • NODE_GROUP : nom du groupe de nœuds

  • NODE_TEMPLATE : nom du modèle de nœud créé précédemment.

  • SIZE : nombre de nœuds du groupe de nœuds.

  • SHARE_TYPE : paramètre de partage pour le groupe de nœuds. Définissez la valeur sur SPECIFIC_PROJECTS pour le partager avec des projets spécifiques ou sur ORGANIZATION pour le partager avec l'ensemble de l'organisation.

  • PROJECTS : liste des ID ou des numéros de projets avec lesquels partager le groupe de nœuds. Obligatoire uniquement si vous définissez SHARE_TYPE sur SPECIFIC_PROJECTS.

Provisionner une VM à locataire unique dans un groupe de nœuds partagé

Pour provisionner une VM à locataire unique dans un groupe de nœuds partagé, utilisez la console Google Cloud, la gcloud CLI ou REST.

Console

  1. Dans la console Google Cloud, basculez vers un projet avec lequel vous avez partagé un groupe de nœuds.

  2. Accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  3. Cliquez sur Créer une instance.

  4. Dans le champ Zone, sélectionnez la zone du groupe de nœuds partagé.

  5. Dans Configuration de la machine > Série, choisissez le même type de machine que le modèle de groupe de nœuds à locataire unique partagé.

  6. Développez la section Options avancées.

  7. Développez la section Location unique.

  8. Cliquez sur Parcourir.

  9. Choisissez Sélectionner un projet et spécifiez le projet contenant le groupe de nœuds partagé.

  10. Choisissez le groupe de nœuds à locataire unique ou un nœud à locataire unique spécifique dans ce groupe sur lequel provisionner la VM.

gcloud

Provisionner une VM dans un groupe de nœuds partagé à l'aide du nom du groupe de nœuds

Pour provisionner une VM à locataire unique dans un groupe de nœuds partagé à l'aide du nom du groupe de nœuds, exécutez la commande gcloud compute instances create suivante.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-group=NODE_GROUP \
    --node-project=NODE_PROJECT

Remplacez les éléments suivants :

  • VM_NAME : nom de la nouvelle VM à locataire unique à créer dans un groupe de nœuds partagé.

  • MACHINE_TYPE : type de machine de la nouvelle VM à locataire unique.

  • NODE_GROUP : nom du groupe de nœuds partagé dans lequel créer la VM à locataire unique

  • NODE_PROJECT : projet contenant le groupe de nœuds dans lequel provisionner la VM

Provisionner une VM dans un groupe de nœuds partagé à l'aide d'un fichier d'affinité de nœuds

Pour provisionner une VM à locataire unique dans un groupe de nœuds partagé à l'aide d'un fichier d'affinité de nœud, utilisez la commande gcloud compute instances create suivante.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-affinity-file=NODE_AFFINITY_FILE

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM à locataire unique à créer dans un groupe de nœuds partagé à l'aide d'un libellé d'affinité.

  • MACHINE_TYPE : type de machine de la VM à locataire unique à créer dans un groupe de nœuds partagé.

  • NODE_AFFINITY_FILE : nom du fichier .json contenant les informations d'affinité de nœuds. Dans le fichier d'affinité de nœud, définissez la clé du libellé d'affinité sur "compute.googleapis.com/project", l'opérateur sur "IN" et la valeur sur le projet contenant le groupe de nœuds. Pour en savoir plus sur la configuration de l'affinité de nœuds, consultez la page Configurer des libellés d'affinité de nœuds.

REST

Pour provisionner une VM à locataire unique dans un groupe de nœuds partagé à l'aide d'un fichier d'affinité de nœud, utilisez la méthode nodeGroups.insert suivante.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

{
  ...
  "name": VM_NAME,
  "machineType": MACHINE_TYPE,
  "scheduling": {
    ...
    "nodeAffinities": [
      {
        "key": KEY,
        "operator": OPERATOR,
        "values": [
          VALUE
        ]
      }
    ],
    ...
  },
  ...
}

Remplacez les éléments suivants :

  • PROJECT : nom du projet propriétaire du groupe de nœuds.

  • ZONE : zone du groupe de nœuds

  • VM_NAME : nom de la VM à locataire unique à créer dans un groupe de nœuds partagé à l'aide d'un libellé d'affinité.

  • MACHINE_TYPE : type de machine de la VM à locataire unique à créer dans un groupe de nœuds partagé.

  • KEY : libellé d'affinité. Défini sur "compute.googleapis.com/project".

  • OPERATOR : opérateur libellé de l'affinité. Défini sur "IN".

  • VALUE : projet contenant le groupe de nœuds dans lequel provisionner la VM. Spécifiez un projet à l'aide de son nom ou de son ID.

Pour en savoir plus sur la configuration de l'affinité de nœuds, consultez la page Configurer des libellés d'affinité de nœuds.

Afficher les paramètres de partage d'un groupe de nœuds

Pour afficher les paramètres de partage d'un groupe de nœuds, utilisez la console Google Cloud, la gcloud CLI ou REST.

Console

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

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

  2. Pour afficher les propriétés du groupe de nœuds, cliquez sur le nom du groupe de nœuds dans la colonne Nom.

gcloud

Pour afficher les paramètres de partage d'un groupe de nœuds, utilisez la commande gcloud compute sole-tenancy node-groups describe suivante.

gcloud compute sole-tenancy node-groups describe NODE_GROUP

Remplacez NODE_GROUP par le nom du groupe de nœuds pour lequel vous souhaitez afficher les paramètres de partage.

REST

Pour afficher les paramètres de partage d'un groupe de nœuds, utilisez la méthode nodeGroups.get suivante.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

Remplacez les éléments suivants :

  • PROJECT : nom du projet associé au groupe de nœuds pour lequel afficher les paramètres de partage

  • ZONE : zone contenant le groupe de nœuds pour lequel vous souhaitez afficher les paramètres de partage.

Partager un groupe de nœuds existant

Pour partager un groupe de nœuds existant avec d'autres projets ou l'ensemble de l'organisation, utilisez la console Google Cloud, la gcloud CLI ou REST.

Console

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

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

  2. Dans la colonne Nom, cliquez sur le nom du groupe de nœuds.

  3. Pour partager le groupe de nœuds avec tous les projets de l'organisation ou avec des projets sélectionnés au sein de l'organisation, accédez à Présentation > Partagé avec, cliquez sur Modifier .

gcloud

Pour mettre à jour les paramètres de partage d'un groupe de nœuds, utilisez la commande gcloud compute sole-tenancy node-groups update suivante.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Remplacez les éléments suivants :

  • NODE_GROUP : nom du groupe de nœuds pour lequel vous souhaitez mettre à jour les paramètres de partage.

  • SHARE_SETTING : paramètre de partage pour le groupe de nœuds. Définissez la valeur sur projects pour le partager avec des projets spécifiques ou sur organization pour le partager avec l'ensemble de l'organisation.

  • PROJECTS : liste des ID ou des numéros de projets avec lesquels partager le groupe de nœuds. Obligatoire uniquement si vous définissez SHARE_SETTING sur projects.

REST

Pour mettre à jour les paramètres de partage d'un groupe de nœuds, utilisez la méthode nodeGroups.patch suivante.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT : nom du projet contenant les groupes de nœuds pour lesquels mettre à jour les paramètres de partage.

  • ZONE : zone contenant les groupes de nœuds pour lesquels vous souhaitez mettre à jour les paramètres de partage.

  • NODE_GROUP : nom du groupe de nœuds pour lequel vous souhaitez mettre à jour les paramètres de partage.

  • SHARE_TYPE : paramètre de partage pour le groupe de nœuds. Définissez la valeur sur projects pour le partager avec des projets spécifiques ou sur organization pour le partager avec l'ensemble de l'organisation.

  • PROJECTS : liste des ID ou des numéros de projets avec lesquels partager le groupe de nœuds. Obligatoire uniquement si vous définissez SHARE_SETTING sur SPECIFIC_PROJECTS.

Arrêter le partage d'un groupe de nœuds

Pour arrêter de partager un groupe de nœuds avec d'autres projets ou l'ensemble de l'organisation, utilisez la gcloud CLI ou REST.

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 le nom du groupe de nœuds.

  3. Dans Présentation > Partagé avec, cliquez sur Modifier .

  4. Pour arrêter le partage, sélectionnez Ne pas partager ce groupe de nœuds avec d'autres projets.

gcloud

Pour arrêter de partager un groupe de nœuds avec d'autres projets ou l'ensemble de l'organisation, utilisez la commande gcloud compute sole-tenancy node-groups update suivante.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=local

Remplacez NODE_GROUP par le nom du groupe de nœuds pour arrêter le partage.

REST

Pour arrêter de partager un groupe de nœuds avec d'autres projets ou l'ensemble de l'organisation, utilisez la méthode nodeGroups.patch suivante.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": LOCAL
  }
}

Remplacez les éléments suivants :

  • PROJECT : nom du projet avec le groupe de nœuds pour lequel arrêter le partage.

  • ZONE : zone contenant le groupe de nœuds pour arrêter le partage.

  • NODE_GROUP : nom du groupe de nœuds pour lequel arrêter le partage.

Supprimer un groupe de nœuds partagé du projet propriétaire

Pour supprimer un groupe de nœuds partagé du projet propriétaire, utilisez la console Google Cloud, la gcloud CLI ou REST. Avant de supprimer un groupe de nœuds, arrêtez toutes les VM qui s'exécutent dans ce groupe.

Console

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

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

  2. Dans la colonne Nom, cliquez sur le nom du groupe de nœuds.

  3. Cliquez sur Supprimer.

gcloud

Pour supprimer un groupe de nœuds partagé du projet propriétaire, utilisez la commande gcloud compute sole-tenancy node-groups delete suivante.

gcloud compute sole-tenancy node-groups delete NODE_GROUP

Remplacez NODE_GROUP par le nom du groupe de nœuds à supprimer.

REST

Pour supprimer un groupe de nœuds partagé du projet propriétaire, utilisez la méthode nodeGroups.delete suivante.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

Remplacez les éléments suivants :

  • PROJECT : nom du projet avec le groupe de nœuds à supprimer

  • ZONE : zone contenant le groupe de nœuds à supprimer

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