Puoi crittografare i dati dei workload GPU in uso eseguendo i workload su Confidential Google Kubernetes Engine Node crittografati. Questa pagina mostra ai tecnici e agli operatori della sicurezza come migliorare la sicurezza dei dati nei workload accelerati, come le attività di AI/ML. Dovresti avere familiarità con i seguenti concetti:
Informazioni sull'esecuzione di workload GPU su Confidential GKE Node
Puoi richiedere Confidential GKE Node per i tuoi workload GPU utilizzando uno dei seguenti metodi:
- Esegui automaticamente il provisioning di Confidential GKE Node per i tuoi workload GPU utilizzando le ComputeClasses di GKE. Puoi utilizzare questo metodo nei cluster Autopilot e nei cluster Standard. Per saperne di più, consulta la sezione Utilizza ComputeClasses per eseguire workload GPU su Confidential GKE Node.
- Configura manualmente Confidential GKE Node per i cluster o i node pool Standard. Per saperne di più, consulta la sezione Configura manualmente Confidential GKE Node in GKE Standard.
Limitazioni
La modalità Autopilot supporta solo GPU NVIDIA H100 (80 GB) con Confidential GKE Node.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Requisiti
Indipendentemente dal metodo di configurazione di Confidential GKE Node che scegli, devi soddisfare tutti i seguenti requisiti:
- I nodi devono trovarsi in una zona che supporta NVIDIA Confidential Computing. Per saperne di più, consulta Zone.
- I nodi devono utilizzare un tipo di macchina, una tecnologia Confidential Computing e una GPU supportati. Per ulteriori informazioni, consulta Tipi di macchine.
- Devi disporre di una quota preemptible per le GPU che vuoi utilizzare nelle località dei nodi. Ad esempio, se utilizzi GPU NVIDIA H100 (80 GB), devi avere una quota per
compute.googleapis.com/preemptible_nvidia_h100_gpus. Per maggiori informazioni sulla gestione della quota, consulta Visualizza e gestisci le quote.
Oltre a questi requisiti, devi soddisfare condizioni specifiche a seconda del metodo di configurazione di Confidential GKE Node che scegli, come descritto nella tabella seguente:
| Metodo di configurazione | Requisiti | Limitazioni |
|---|---|---|
| ComputeClasses |
|
|
| Configurazione manuale in modalità Standard |
|
|
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare Confidential GKE Node, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto Google Cloud :
-
Creare Confidential GKE Node:
Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin) -
Esegui il deployment dei workload GPU:
Kubernetes Engine Developer (
roles/container.developer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Utilizza ComputeClasses per eseguire workload GPU riservati
Puoi definire la configurazione di Confidential GKE Node in una ComputeClass. Le ComputeClass sono risorse personalizzate di Kubernetes che ti consentono di impostare in modo dichiarativo le configurazioni dei nodi per la scalabilità automatica e la pianificazione di GKE. Puoi seguire i passaggi descritti in questa sezione in qualsiasi cluster Autopilot o Standard che esegue GKE versione 1.33.3-gke.1392000 o successive.
Per utilizzare una classe ComputeClass per eseguire workload GPU su Confidential GKE Node, segui questi passaggi:
Salva il seguente manifest ComputeClass come file 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: DoNotScaleUpSostituisci quanto segue:
COMPUTECLASS_NAME: un nome per la classe ComputeClass.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare, ad esempioTDX. Scegli una tecnologia supportata dalla GPU che vuoi utilizzare.ZONE1,ZONE2: un elenco separato da virgole di zone in cui creare i nodi, ad esempio['us-central1-a','us-central1-b']. Specifica le zone che supportano la tecnologia Confidential Computing e il tipo di macchina che vuoi utilizzare. Per saperne di più, consulta Zone.GPU_TYPE: il tipo di GPU da utilizzare, ad esempionvidia-h100-80gb.GPU_COUNT: il numero di GPU da collegare a ogni nodo. Specifica un valore supportato da Confidential VM per il tipo di GPU. Ad esempio, se scegli il tipo di GPUnvidia-h100-80gb, devi specificare un valore1in questo campo.
Crea la classe ComputeClass:
kubectl apply -f PATH_TO_MANIFESTSostituisci
PATH_TO_MANIFESTcon il percorso del file manifest ComputeClass.Per eseguire il workload GPU su Confidential GKE Node, seleziona la ComputeClass nel manifest del workload. Ad esempio, salva il seguente manifest di deployment, che seleziona una classe ComputeClass e le GPU, come file 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"Sostituisci quanto segue:
COMPUTECLASS_NAME: il nome della classe ComputeClass che hai creato.GPU_REQUEST: il numero di GPU da utilizzare nel container. Specifica un valore inferiore o uguale a quello specificato nel campogpu.countdi ComputeClass.
Crea il deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFESTSostituisci
PATH_TO_DEPLOYMENT_MANIFESTcon il percorso del manifest del deployment.
Quando crei il workload GPU, GKE utilizza la configurazione in ComputeClass per creare Confidential GKE Node con GPU collegate.
Configura manualmente Confidential GKE Node in GKE Standard
Puoi eseguire workload GPU su Confidential GKE Node in cluster o node pool in modalità Standard.
Abilita Confidential GKE Node nei nuovi cluster Standard
Puoi abilitare Confidential GKE Node per l'intero cluster Standard, in modo che ogni pool di nodi GPU che crei utilizzi la stessa tecnologia di Confidential Computing. Quando crei un nuovo cluster in modalità Standard che utilizza Confidential GKE Node per i workload GPU, assicurati di specificare le seguenti impostazioni del cluster:
- Località: una regione o una zona che supporta NVIDIA Confidential Computing. Per saperne di più, consulta Zone.
- Tipo di Confidential Computing: una tecnologia di Confidential Computing che supporta le GPU. Per ulteriori informazioni, consulta Tipi di macchine.
Versione del cluster: una delle seguenti versioni, a seconda di come vuoi installare i driver GPU:
- Installazione manuale dei driver GPU: 1.32.2-gke.1297000 o versioni successive.
- Installazione automatica dei driver GPU: 1.33.3-gke.1392000 o versioni successive.
Se vuoi, puoi configurare le GPU per il pool di nodi predefinito che GKE crea nel tuo cluster. Tuttavia, ti consigliamo di utilizzare un pool di nodi separato per le GPU, in modo che almeno un pool di nodi nel cluster possa eseguire qualsiasi workload.
Per maggiori informazioni, consulta Abilita Confidential GKE Node sui cluster Standard.
Utilizza Confidential GKE Node con GPU nei node pool Standard
Se nel cluster non sono abilitati Confidential GKE Node, puoi abilitarli in nuovi pool di nodi GPU specifici o in quelli esistenti. Il control plane e i node pool devono soddisfare i requisiti della sezione Disponibilità. Quando configuri il pool di nodi, puoi scegliere di installare i driver GPU automaticamente o manualmente.
Per creare un nuovo pool di nodi GPU che utilizza Confidential GKE Node, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Cluster Kubernetes:
Fai clic sul nome del cluster in modalità Standard da modificare.
Fai clic sulla scheda Nodi.
Fai clic su Crea node pool gestito dall'utente. Viene visualizzata la pagina Aggiungi un node pool.
Nel riquadro Dettagli del node pool, segui questi passaggi:
- Seleziona Specifica le località dei nodi.
- Seleziona solo le zone supportate elencate nella sezione Disponibilità.
- Assicurati che la versione del control plane sia una delle versioni elencate nella sezione Disponibilità.
Nel menu di navigazione, fai clic su Nodi.
Nel riquadro Configura le impostazioni del nodo, segui questi passaggi:
- Nella sezione Configurazione macchina, fai clic su GPU.
- Nel menu Tipo di GPU, seleziona un tipo di GPU supportato da Confidential Computing.
- Nel menu Numero di GPU, seleziona il numero di GPU da collegare a ogni nodo. Seleziona un valore supportato dal tipo di GPU che hai scelto. Ad esempio, se hai scelto le GPU NVIDIA H100 (80 GB), seleziona 1.
- Assicurati che l'opzione Abilita condivisione GPU non sia selezionata.
Nella sezione Installazione del driver GPU, seleziona una delle seguenti opzioni:
Gestito da Google: GKE installa automaticamente un driver. Se selezioni questa opzione, nell'elenco a discesa Versione, seleziona una delle seguenti versioni del driver:
- Predefinito: installa la versione del driver predefinita per la versione GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.
- Più recente: installa la versione del driver più recente per la versione GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.
Gestito dall'utente: salta l'installazione automatica del driver. Se selezioni questa opzione, devi installare manualmente un driver GPU compatibile. Richiede la versione 1.32.2-gke.1297000 o successive.
Nella sezione Tipo di macchina, assicurati che il tipo di macchina sia un tipo di macchina GPU supportato da Confidential VM per il tipo di GPU selezionato.
Seleziona Abilita nodi sulle VM spot o configura le Flex-start VM con provisioning in coda.
Quando è tutto pronto per creare il pool di nodi, fai clic su Crea.
gcloud
Puoi creare pool di nodi GPU che eseguono Confidential GKE Node su VM spot o utilizzando VM con avvio flessibile con provisioning in coda.
Crea un pool di nodi GPU che esegue Confidential GKE Node su VM spot:
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_TYPESostituisci quanto segue:
NODE_POOL_NAME: un nome per il nuovo pool di nodi.CLUSTER_NAME: il nome del tuo cluster esistente.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare, ad esempioTDX. Scegli una tecnologia supportata dalla GPU che vuoi utilizzare.LOCATION: la località del nuovo pool di nodi. La località deve supportare l'utilizzo di GPU in Confidential GKE Node.NODE_LOCATION1,NODE_LOCATION2,...: un elenco separato da virgole di zone in cui eseguire i nodi. Specifica le zone che supportano la tecnologia Confidential Computing e il tipo di macchina che vuoi utilizzare. Per saperne di più, consulta Zone.GPU_TYPE: il tipo di GPU da utilizzare, ad esempionvidia-h100-80gb.GPU_COUNT: il numero di GPU da collegare a ogni nodo. Specifica un valore supportato da Confidential VM per il tipo di GPU. Ad esempio, se scegli il tipo di GPUnvidia-h100-80gb, devi specificare un valore1in questo campo.DRIVER_VERSION: la versione del driver della GPU da installare. Specifica uno dei seguenti valori:default: installa la versione predefinita del driver per la versione GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.latest: installa l'ultima versione del driver per la versione GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.disabled: ignora l'installazione automatica dei driver. Se specifichi questo valore, devi installare manualmente un driver GPU compatibile. Richiede la versione 1.32.2-gke.1297000 o successive.
MACHINE_TYPE: il tipo di macchina da utilizzare per i nodi. Specifica un tipo di macchina GPU supportato da Confidential VM per il tipo di GPU selezionato.
Crea un pool di nodi GPU che esegue Confidential GKE Node utilizzando VM con avvio flessibile con provisioning in coda:
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 --no-enable-autorepair \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSIONSostituisci
TOTAL_MAX_NODEScon il numero massimo di nodi a cui il pool di nodi può scalare automaticamente.Per saperne di più sulle opzioni di configurazione nell'avvio flessibile con provisioning in coda, consulta Esegui un workload su larga scala con l'avvio flessibile con provisioning in coda.
Per aggiornare i node pool esistenti in modo da utilizzare Confidential Computing, consulta Aggiorna un node pool esistente.
Installa manualmente i driver GPU che supportano i Confidential GKE Node
Se non hai attivato l'installazione automatica dei driver durante la creazione o l'aggiornamento dei node pool, devi installare manualmente un driver GPU che supporti i Confidential GKE Node.
Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni dei workload in esecuzione. Per informazioni dettagliate su questa modifica specifica, trova la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi senza rispettare le policy di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificazione delle interruzioni degli aggiornamenti dei nodi.
Per istruzioni, consulta la scheda "COS" in Installa manualmente i driver GPU NVIDIA.
Risoluzione dei problemi
Per informazioni sulla risoluzione dei problemi, consulta Risolvi i problemi relativi alle GPU in GKE.
Passaggi successivi
- Verifica che i nodi GPU utilizzino Confidential GKE Node
- Esegui il deployment di un workload sui nodi GPU
- Scopri i metodi per eseguire workload su larga scala con le GPU