Vous pouvez chiffrer les données de charge de travail GPU en cours d'utilisation en exécutant les charges de travail sur des nœuds Confidential Google Kubernetes Engine chiffrés. Cette page explique aux ingénieurs en sécurité et aux opérateurs comment améliorer la sécurité des données dans les charges de travail accélérées, telles que les tâches d'IA/ML. Vous devez connaître les concepts suivants :
À propos de l'exécution de charges de travail GPU sur des nœuds Confidential GKE Node
Vous pouvez demander des nœuds Confidential GKE Node pour vos charges de travail GPU à l'aide de l'une des méthodes suivantes :
- Provisionnez automatiquement des nœuds Confidential GKE Node pour vos charges de travail GPU à l'aide de GKE ComputeClasses. Vous pouvez utiliser cette méthode dans les clusters Autopilot et Standard. Pour en savoir plus, consultez la section Utiliser ComputeClasses pour exécuter des charges de travail GPU sur des nœuds Confidential GKE Node.
- Configurez manuellement des nœuds Confidential GKE Node pour vos clusters ou pools de nœuds Standard. Pour en savoir plus, consultez la section Configurer manuellement des nœuds Confidential GKE Node dans GKE Standard.
Limites
Le mode Autopilot n'est compatible qu'avec les GPU NVIDIA H100 (80 Go) avec les nœuds Confidential GKE Node.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Si vous souhaitez utiliser Google Cloud CLI pour cette tâche,
installez puis
initialisez la
gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière
version en exécutant la
gcloud components updatecommande. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
Conditions requises
Quelle que soit la méthode de configuration des nœuds Confidential GKE Node que vous choisissez, vous devez respecter toutes les exigences suivantes :
- Les nœuds doivent se trouver dans une zone compatible avec NVIDIA Confidential Computing. Pour en savoir plus, consultez la section Afficher les zones compatibles.
- Les nœuds doivent utiliser un type de machine, une technologie informatique confidentielle et un GPU compatibles. Pour en savoir plus, consultez la section Configurations compatibles.
- Vous devez disposer d'un quota préemptif pour les GPU que vous souhaitez utiliser dans les emplacements de vos nœuds. Par exemple, si vous utilisez des GPU NVIDIA H100 (80 Go), vous devez disposer d'un quota pour
compute.googleapis.com/preemptible_nvidia_h100_gpus. Pour en savoir plus sur la gestion de votre quota, consultez la section Afficher et gérer les quotas.
En plus de ces exigences, vous devez respecter des conditions spécifiques en fonction de la méthode de configuration des nœuds Confidential GKE Node que vous choisissez, comme décrit dans le tableau suivant :
| Méthode de configuration | Conditions requises | Limites |
|---|---|---|
| ComputeClasses |
|
|
| Configuration manuelle en mode Standard |
|
|
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des nœuds Confidential GKE Node, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le Cloud de Confiance projet :
-
Créer des nœuds Confidential GKE Node:
administrateur de cluster Kubernetes Engine (
roles/container.clusterAdmin) -
Déployer des charges de travail GPU :
développeur Kubernetes Engine (
roles/container.developer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Utiliser ComputeClasses pour exécuter des charges de travail GPU confidentielles
Vous pouvez définir la configuration de vos nœuds Confidential GKE Node dans une ComputeClass. Les ComputeClasses sont des ressources personnalisées Kubernetes qui vous permettent de définir de manière déclarative les configurations de nœuds pour l'autoscaling et la planification GKE. Vous pouvez suivre les étapes de cette section dans n'importe quel cluster Autopilot ou Standard exécutant GKE version 1.33.3-gke.1392000 ou ultérieure.
Pour utiliser une ComputeClass afin d'exécuter des charges de travail GPU sur des nœuds Confidential GKE Node, procédez comme suit :
Enregistrez le fichier manifeste ComputeClass suivant en tant que fichier YAML :
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTECLASS_NAME spec: nodePoolConfig: confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - gpu: type: GPU_TYPE count: GPU_COUNT driverVersion: default spot: true activeMigration: optimizeRulePriority: true nodePoolAutoCreation: enabled: true whenUnsatisfiable: DoNotScaleUpRemplacez les éléments suivants :
COMPUTECLASS_NAME: nom de la ComputeClass.CONFIDENTIAL_COMPUTE_TECHNOLOGY: technologie informatique confidentielle à utiliser, telle queTDX. Choisissez une technologie compatible avec le GPU que vous souhaitez utiliser.ZONE1,ZONE2: liste de zones séparées par une virgule dans lesquelles créer des nœuds, par exemple['us-central1-a','us-central1-b']. Spécifiez les zones compatibles avec la technologie informatique confidentielle et le type de machine que vous souhaitez utiliser. Pour en savoir plus, consultez la section Afficher les zones compatibles.GPU_TYPE: type de GPU à utiliser, tel quenvidia-h100-80gb.GPU_COUNT: nombre de GPU à associer à chaque nœud. Spécifiez une valeur compatible avec Confidential VM pour le type de GPU. Par exemple, si vous choisissez le type de GPUnvidia-h100-80gb, alors vous devez spécifier la valeur1dans ce champ.
Créez la ComputeClass :
kubectl apply -f PATH_TO_MANIFESTRemplacez
PATH_TO_MANIFESTpar le chemin d'accès au fichier manifeste ComputeClass.Pour exécuter votre charge de travail GPU sur des nœuds Confidential GKE Node, sélectionnez la ComputeClass dans le fichier manifeste de la charge de travail. Par exemple, enregistrez le fichier manifeste de déploiement suivant, qui sélectionne une ComputeClass et des GPU, en tant que fichier YAML :
apiVersion: apps/v1 kind: Deployment metadata: name: confidential-gpu-deployment labels: app: conf-gpu spec: selector: matchLabels: app: conf-gpu replicas: 1 template: metadata: labels: app: conf-gpu spec: nodeSelector: cloud.google.com/compute-class: COMPUTECLASS_NAME containers: - name: example-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: limits: cpu: "4" memory: "16Gi" nvidia.com/gpu: GPU_REQUEST requests: cpu: "4" memory: "16Gi"Remplacez les éléments suivants :
COMPUTECLASS_NAME: nom de la ComputeClass que vous avez créée.GPU_REQUEST: nombre de GPU à utiliser dans le conteneur. Spécifiez une valeur inférieure ou égale à celle que vous avez spécifiée dans le champgpu.countde la ComputeClass.
Créez le déploiement :
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFESTRemplacez
PATH_TO_DEPLOYMENT_MANIFESTpar le chemin d'accès au fichier manifeste de déploiement.
Lorsque vous créez votre charge de travail GPU, GKE utilise la configuration de la ComputeClass pour créer des nœuds Confidential GKE Node avec des GPU associés.
Configurer manuellement des nœuds Confidential GKE Node dans GKE Standard
Vous pouvez exécuter des charges de travail GPU sur des nœuds Confidential GKE Node dans des clusters ou des pools de nœuds en mode Standard.
Activer les nœuds Confidential GKE Node dans les nouveaux clusters Standard
Vous pouvez activer les nœuds Confidential GKE Node pour l'ensemble de votre cluster Standard, de sorte que chaque pool de nœuds GPU que vous créez utilise la même technologie informatique confidentielle. Lorsque vous créez un cluster en mode Standard qui utilise des nœuds Confidential GKE Node pour les charges de travail GPU, assurez-vous de spécifier les paramètres de cluster suivants :
- Emplacement : région ou zone compatible avec NVIDIA Confidential Computing. Pour en savoir plus, consultez la section Afficher les zones compatibles.
- Type d'informatique confidentielle : technologie Confidential Computing compatible avec les GPU. Pour en savoir plus, consultez la section Configurations compatibles.
Version du cluster : l'une des versions suivantes, selon la façon dont vous souhaitez installer vos pilotes de GPU :
- Installation manuelle du pilote de GPU : 1.32.2-gke.1297000 ou version ultérieure.
- Installation automatique du pilote de GPU : 1.33.3-gke.1392000 ou version ultérieure.
Vous pouvez éventuellement configurer des GPU pour le pool de nœuds par défaut que GKE crée dans votre cluster. Toutefois, nous vous recommandons d'utiliser un pool de nœuds distinct pour vos GPU, afin qu'au moins un pool de nœuds du cluster puisse exécuter n'importe quelle charge de travail.
Pour en savoir plus, consultez la section Activer les nœuds Confidential GKE Node sur des clusters Standard.
Utiliser des nœuds Confidential GKE Node avec des GPU dans des pools de nœuds Standard
Si les nœuds Confidential GKE Node ne sont pas activés dans votre cluster, vous pouvez les activer dans des pools de nœuds GPU spécifiques, nouveaux ou existants. Le plan de contrôle et les pools de nœuds doivent répondre aux exigences de la section Disponibilité. Lorsque vous configurez le pool de nœuds, vous pouvez choisir d'installer les pilotes de GPU automatiquement ou manuellement.
Pour créer un pool de nœuds GPU qui utilise des nœuds Confidential GKE Node, sélectionnez l'une des options suivantes :
Console
Dans la Cloud de Confiance console, accédez à la page Clusters Kubernetes :
Cliquez sur le nom du cluster en mode Standard à modifier.
Cliquez sur l'onglet Nœuds.
Cliquez sur Créer un pool de nœuds géré par l'utilisateur. La page Ajouter un pool de nœuds s'ouvre.
Dans le volet Détails du pool de nœuds, procédez comme suit :
- Sélectionnez Spécifier les emplacements de nœuds.
- Sélectionnez uniquement les zones compatibles listées dans la section Disponibilité.
- Assurez-vous que la version du plan de contrôle est l'une des versions qui est listée dans la section Disponibilité.
Dans le menu de navigation, cliquez sur Nœuds.
Dans le volet Configurer les paramètres des nœuds, procédez comme suit :
- Dans la section Configuration de la machine, cliquez sur GPU.
- Dans le menu Type de GPU, sélectionnez un type de GPU compatible avec informatique confidentielle.
- Dans le menu Nombre de GPU, sélectionnez le nombre de GPU à associer à chaque nœud. Sélectionnez une valeur compatible avec le type de GPU que vous avez choisi. Par exemple, si vous avez choisi des GPU NVIDIA H100 (80 Go), sélectionnez 1.
- Assurez-vous que l'option Activer le partage de GPU n'est pas sélectionnée.
Dans la section Installation du pilote de GPU, sélectionnez l'une des options suivantes :
Gérée par Google : GKE installe automatiquement un pilote. Si vous sélectionnez cette option, dans la liste déroulante Version, sélectionnez l'une des versions de pilote suivantes :
- Par défaut : installe la version de pilote par défaut pour la version de GKE du nœud. Nécessite GKE version 1.33.3-gke.1392000 ou ultérieure.
- Dernière version : installe la dernière version de pilote pour la version de GKE du nœud. Nécessite GKE version 1.33.3-gke.1392000 ou ultérieure.
Gérée par l'utilisateur : ignore l'installation automatique du pilote. Si vous sélectionnez cette option, vous devez installer manuellement un pilote de GPU compatible. Nécessite la version 1.32.2-gke.1297000 ou ultérieure.
Dans la section Type de machine, assurez-vous que le type de machine est un type de machine GPU compatible avec Confidential VM pour le type de GPU sélectionné.
Sélectionnez Activer les nœuds sur les Spot VM ou configurez des VM à démarrage flexible avec le provisionnement en file d'attente.
Lorsque vous êtes prêt à créer le pool de nœuds, cliquez sur Créer.
gcloud
Vous pouvez créer des pools de nœuds GPU qui exécutent des nœuds Confidential GKE Node sur des Spot VM ou à l'aide de VM à démarrage flexible avec le provisionnement en file d'attente.
Créez un pool de nœuds GPU qui exécute des nœuds Confidential GKE Node sur des Spot VM :
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \ --location=LOCATION \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --spot \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSION \ --machine-type=MACHINE_TYPERemplacez les éléments suivants :
NODE_POOL_NAME: nom de votre nouveau pool de nœuds.CLUSTER_NAME: nom de votre cluster existant.CONFIDENTIAL_COMPUTE_TECHNOLOGY: technologie informatique confidentielle à utiliser, telle queTDX. Choisissez une technologie compatible avec le GPU que vous souhaitez utiliser.LOCATION: emplacement de votre nouveau pool de nœuds. L'emplacement doit être compatible avec l'utilisation de GPU dans des nœuds Confidential GKE Node.NODE_LOCATION1,NODE_LOCATION2,...: liste de zones séparées par une virgule dans lesquelles exécuter les nœuds. Spécifiez les zones compatibles avec la technologie informatique confidentielle et le type de machine que vous souhaitez utiliser. Pour en savoir plus, consultez la section Afficher les zones compatibles.GPU_TYPE: type de GPU à utiliser, tel quenvidia-h100-80gb.GPU_COUNT: nombre de GPU à associer à chaque nœud. Spécifiez une valeur compatible avec Confidential VM pour le type de GPU. Par exemple, si vous choisissez le type de GPUnvidia-h100-80gb, vous devez spécifier la valeur1dans ce champ.DRIVER_VERSION: version du pilote de GPU à installer. Spécifiez une des valeurs suivantes :default: installe la version de pilote par défaut pour la version de GKE du nœud. Nécessite GKE version 1.33.3-gke.1392000 ou ultérieure.latest: installe la dernière version de pilote pour la version de GKE du nœud. Nécessite GKE version 1.33.3-gke.1392000 ou ultérieure.disabled: ignore l'installation automatique du pilote. Si vous spécifiez cette valeur, vous devez installer manuellement un pilote de GPU compatible. Nécessite la version 1.32.2-gke.1297000 ou ultérieure.
MACHINE_TYPE: type de machine à utiliser pour les nœuds. Spécifiez un type de machine GPU compatible avec Confidential VM pour le type de GPU sélectionné.
Créez un pool de nœuds GPU qui exécute des nœuds Confidential GKE Node à l'aide de VM à démarrage flexible avec le provisionnement en file d'attente :
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --machine-type=MACHINE_TYPE \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \ --location=LOCATION \ --flex-start --enable-queued-provisioning \ --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \ --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSIONRemplacez
TOTAL_MAX_NODESpar le nombre maximal de nœuds que le pool de nœuds peut mettre à l'échelle automatiquement.Pour en savoir plus sur les options de configuration du démarrage flexible avec le provisionnement en file d'attente, consultez la section Exécuter une charge de travail à grande échelle avec le démarrage flexible et le provisionnement en file d'attente.
Pour mettre à jour vos pools de nœuds existants afin d'utiliser informatique confidentielle, consultez la section Mettre à jour un pool de nœuds existant.
Installer manuellement des pilotes de GPU compatibles avec les nœuds Confidential GKE Node
Si vous n'avez pas activé l'installation automatique du pilote lorsque vous avez créé ou mis à jour vos pools de nœuds, vous devez installer manuellement un pilote de GPU compatible avec les nœuds Confidential GKE Node.
Cette modification nécessite de recréer les nœuds, ce qui peut entraîner des interruptions de vos charges de travail en cours d'exécution. Pour en savoir plus sur cette modification spécifique, recherchez la ligne correspondante dans le tableau Modifications manuelles qui recréent les nœuds à l'aide d'une stratégie de mise à niveau des nœuds sans respecter les règles de maintenance. Pour en savoir plus sur les mises à jour des nœuds, consultez la section Planifier les interruptions liées aux mises à jour des nœuds.
Pour obtenir des instructions, consultez l'onglet "COS" de la section Installer manuellement des pilotes de GPU NVIDIA.
Résoudre les problèmes
Pour obtenir des informations de dépannage, consultez la section Résoudre les problèmes liés aux GPU dans GKE.
Étape suivante
- Vérifier que vos nœuds GPU utilisent des nœuds Confidential GKE Node
- Déployer une charge de travail sur vos nœuds GPU
- Découvrir les méthodes permettant d'exécuter des charges de travail à grande échelle avec des GPU