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 et opérateurs en sécurité 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 maîtriser 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 en utilisant l'une des méthodes suivantes :
- Provisionnez automatiquement des nœuds Confidential GKE pour vos charges de travail GPU à l'aide des classes de calcul GKE. Vous pouvez utiliser cette méthode dans les clusters Autopilot et Standard. Pour en savoir plus, consultez la section Utiliser des ComputeClasses pour exécuter des charges de travail GPU sur des nœuds Confidential GKE Node.
- Configurez manuellement les nœuds Confidential GKE Node pour vos clusters ou pools de nœuds Standard. Pour en savoir plus, consultez la section Configurer manuellement les nœuds Confidential GKE dans GKE Standard.
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 gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
Conditions requises et limites
Quelle que soit la méthode de configuration des nœuds Confidential GKE Node que vous choisissez, vous devez répondre à toutes les exigences suivantes :
- Les nœuds doivent se trouver dans une zone compatible avec l'informatique confidentielle NVIDIA. Pour en savoir plus, consultez Afficher les zones compatibles.
- Les nœuds ne doivent utiliser qu'un seul GPU NVIDIA H100 80 Go et le type de machine
a3-highgpu-1g
. - Les nœuds doivent utiliser la technologie d'informatique confidentielle Intel TDX.
- Vous devez disposer d'un quota de GPU H100 80 Go préemptifs (
compute.googleapis.com/preemptible_nvidia_h100_gpus
) dans les emplacements de vos nœuds. Pour en savoir plus sur la gestion de votre quota, consultez Afficher et gérer les quotas.
En plus de ces exigences, vous devez remplir 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 GKE confidentiels, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet Google Cloud :
-
Créer des nœuds Confidential GKE Nodes :
Administrateur de cluster Kubernetes Engine (
roles/container.clusterAdmin
) -
Déployer des charges de travail GPU :
Développeur sur 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 des classes de calcul pour exécuter des charges de travail GPU confidentielles
Vous pouvez définir votre configuration Confidential GKE Nodes 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 la version 1.33.3-gke.1392000 ou ultérieure de GKE.
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: TDX priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - gpu: type: nvidia-h100-80gb count: 1 driverVersion: default spot: true activeMigration: optimizeRulePriority: true nodePoolAutoCreation: enabled: true whenUnsatisfiable: DoNotScaleUp
Remplacez les éléments suivants :
COMPUTECLASS_NAME
: nom de la ComputeClass.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 Intel TDX Confidential Computing. Pour en savoir plus, consultez Afficher les zones compatibles.
Créez la ComputeClass :
kubectl apply -f PATH_TO_MANIFEST
Remplacez
PATH_TO_MANIFEST
par 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 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: 1 requests: cpu: "4" memory: "16Gi"
Remplacez
COMPUTECLASS_NAME
par le nom de la ComputeClass que vous avez créée.Créez le déploiement :
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Remplacez
PATH_TO_DEPLOYMENT_MANIFEST
par le chemin d'accès au fichier manifeste du déploiement.
Lorsque vous créez votre charge de travail GPU, GKE utilise la configuration de ComputeClass pour créer des nœuds Confidential GKE Node avec des GPU associés.
Configurer manuellement les 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. Pour les charges de travail GPU, vos nœuds Confidential GKE Node doivent utiliser la technologie Intel TDX Confidential Computing.
Activer les nœuds Confidential GKE Node dans de nouveaux clusters Standard
Vous pouvez activer les nœuds Confidential GKE Node pour l'ensemble de votre cluster Standard, afin que chaque pool de nœuds GPU que vous créez utilise la même technologie de Confidential Computing. Lorsque vous créez un cluster en mode Standard qui utilise des nœuds Confidential GKE pour les charges de travail GPU, assurez-vous de spécifier les paramètres de cluster suivants :
- Emplacement : région ou zone compatible avec l'informatique confidentielle NVIDIA. Pour en savoir plus, consultez Afficher les zones compatibles.
- Type d'informatique confidentielle : Intel TDX
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 des pilotes 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 Activer les nœuds Confidential GKE Node sur les 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 console Google Cloud , accédez à la page Clusters Kubernetes :
Cliquez sur le nom du cluster en mode Standard à modifier.
Cliquez sur
Ajouter un pool de nœuds. 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 figure 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 NVIDIA H100 80 Go.
- Dans le menu Nombre de GPU, 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 du pilote pour la version de GKE du nœud. Nécessite la version 1.33.3-gke.1392000 de GKE ou une version ultérieure.
Gérée par l'utilisateur : ignorer 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
a3-highgpu-1g
.Sélectionnez Activer les nœuds sur les VM Spot ou configurer le démarrage flexible avec 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 sur des spot VM ou en utilisant le démarrage flexible avec provisionnement en file d'attente.
Créez un pool de nœuds GPU qui exécute des nœuds Confidential GKE sur des VM Spot :
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --confidential-node-type=tdx --location=LOCATION \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --spot --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION \ --machine-type=a3-highgpu-1g
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom de votre nouveau pool de nœuds.CLUSTER_NAME
: nom de votre cluster existant.LOCATION
: emplacement de votre nouveau pool de nœuds. L'emplacement doit être compatible avec l'utilisation de GPU dans les 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. Ces zones doivent être compatibles avec l'informatique confidentielle NVIDIA. Pour en savoir plus, consultez Afficher les zones compatibles.DRIVER_VERSION
: version du pilote de GPU à installer. Spécifiez une des valeurs suivantes :default
: installe la version par défaut du pilote pour la version de GKE du nœud. Nécessite la version 1.33.3-gke.1392000 de GKE ou une version ultérieure.latest
: installe la dernière version de pilote pour la version de GKE du nœud. Nécessite la version 1.33.3-gke.1392000 de GKE ou une version ultérieure.disabled
: ignorer 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.
Créez un pool de nœuds GPU qui exécute des nœuds Confidential GKE en utilisant le démarrage flexible avec provisionnement en file d'attente :
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --machine-type=a3-highgpu-1g --confidential-node-type=tdx \ --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=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION
Remplacez
TOTAL_MAX_NODES
par 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 provisionnement en file d'attente, consultez 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 la technologie Intel TDX Confidential Computing, consultez Mettre à jour un pool de nœuds existant.
Installer manuellement des pilotes de GPU compatibles avec les nœuds Confidential GKE
Si vous n'avez pas activé l'installation automatique des pilotes 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 GKE confidentiels.
Cette modification nécessite de recréer les nœuds, ce qui peut perturber 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 Planifier les interruptions liées aux mises à jour des nœuds.
Pour obtenir des instructions, consultez l'onglet "COS" dans Installer manuellement des pilotes de GPU NVIDIA.
Résoudre les problèmes
Pour obtenir des informations de dépannage, consultez Résoudre les problèmes liés aux GPU dans GKE.
Étapes suivantes
- 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écouvrez les méthodes permettant d'exécuter des charges de travail à grande échelle avec des GPU.