Crittografa i dati dei carichi di lavoro GPU in uso con Confidential GKE Node

Puoi criptare i dati del carico di lavoro della GPU in uso eseguendo i carichi di lavoro su nodi Google Kubernetes Engine confidenziali criptati. Questa pagina mostra agli ingegneri della sicurezza e agli operatori come migliorare la sicurezza dei dati nei workload accelerati, come le attività di AI/ML. Devi avere familiarità con i seguenti concetti:

Informazioni sull'esecuzione di carichi di lavoro GPU su Confidential GKE Nodes

Puoi richiedere Confidential GKE Nodes per i tuoi carichi di lavoro GPU utilizzando uno dei seguenti metodi:

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi 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 e limitazioni

Indipendentemente dal metodo di configurazione di Confidential GKE Nodes che scegli, devi soddisfare tutti i seguenti requisiti:

  • I nodi devono trovarsi in una zona che supporta NVIDIA Confidential Computing. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
  • I nodi devono utilizzare una sola GPU NVIDIA H100 da 80 GB e il tipo di macchina a3-highgpu-1g.
  • I nodi devono utilizzare la tecnologia Confidential Computing Intel TDX.
  • Devi disporre di una quota per le GPU H100 da 80 GB prerilasciabili (compute.googleapis.com/preemptible_nvidia_h100_gpus) nelle località dei nodi. Per ulteriori informazioni sulla gestione della quota, vedi Visualizza e gestisci le quote.

Oltre a questi requisiti, devi soddisfare condizioni specifiche a seconda del metodo di configurazione di Confidential GKE Nodes che scegli, come descritto nella tabella seguente:

Metodo di configurazione Requisiti Limitazioni
ComputeClasses
  • Utilizza VM spot o flex-start (anteprima).
  • Utilizza GKE 1.33.3-gke.1392000 o versioni successive.
  • Non puoi utilizzare l'avvio flessibile con il provisioning in coda con ComputeClasses.
  • Non puoi utilizzare le funzionalità di condivisione della GPU come la condivisione del tempo o le GPU multi-istanza.
Configurazione manuale in modalità Standard
  • Utilizza VM spot, VM preemptible, avvio flessibile (anteprima) o avvio flessibile con provisioning in coda.
  • Utilizza una delle seguenti versioni di GKE:
    • Installazione manuale del driver GPU: 1.32.2-gke.1297000 o versioni successive.
    • Installazione automatica del driver GPU: 1.33.3-gke.1392000 o versioni successive.
    • Avvio flessibile con provisioning in coda: 1.32.2-gke.1652000 o versioni successive.
  • Non puoi utilizzare l'avvio flessibile (anteprima) se abiliti Confidential GKE Nodes per l'intero cluster.
  • Non puoi utilizzare le funzionalità di condivisione della GPU come la condivisione del tempo o le GPU multi-istanza.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare nodi GKE confidenziali, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto Google Cloud :

Per ulteriori informazioni 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.

Utilizzare ComputeClasses per eseguire carichi di lavoro GPU confidenziali

Puoi definire la configurazione di Confidential GKE Nodes 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 ComputeClass per eseguire carichi di lavoro GPU su Confidential GKE Nodes, segui questi passaggi:

  1. Salva il seguente manifest ComputeClass come file 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
    

    Sostituisci quanto segue:

    • COMPUTECLASS_NAME: un nome per ComputeClass.
    • ZONE1,ZONE2: un elenco separato da virgole di zone in cui creare nodi, ad esempio ['us-central1-a','us-central1-b']. Specifica le zone che supportano la tecnologia Intel TDX Confidential Computing. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
  2. Crea ComputeClass:

    kubectl apply -f PATH_TO_MANIFEST
    

    Sostituisci PATH_TO_MANIFEST con il percorso del file manifest ComputeClass.

  3. Per eseguire il workload GPU su Confidential GKE Nodes, seleziona ComputeClass nel manifest del workload. Ad esempio, salva il seguente manifest di Deployment, che seleziona una ComputeClass e 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: 1
              requests:
                cpu: "4"
                memory: "16Gi"
    

    Sostituisci COMPUTECLASS_NAME con il nome della ComputeClass che hai creato.

  4. Crea il deployment:

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Sostituisci PATH_TO_DEPLOYMENT_MANIFEST con il percorso del manifest del deployment.

Quando crei il carico di lavoro GPU, GKE utilizza la configurazione in ComputeClass per creare Confidential GKE Nodes con GPU collegate.

Configura manualmente Confidential GKE Nodes in GKE Standard

Puoi eseguire carichi di lavoro GPU su Confidential GKE Nodes in cluster o node pool in modalità Standard. Per i workload GPU, i Confidential GKE Nodes devono utilizzare la tecnologia Intel TDX Confidential Computing.

Abilita Confidential GKE Nodes nei nuovi cluster Standard

Puoi abilitare Confidential GKE Nodes 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 Nodes per i carichi di lavoro GPU, assicurati di specificare le seguenti impostazioni del cluster:

  • Località: una regione o una zona che supporta NVIDIA Confidential Computing. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
  • Tipo di Confidential Computing: Intel TDX
  • Versione del cluster: una delle seguenti versioni, a seconda di come vuoi installare i driver GPU:

    • Installazione manuale del driver GPU: 1.32.2-gke.1297000 o versioni successive.
    • Installazione automatica del 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 Abilitare Confidential GKE Nodes sui cluster Standard.

Utilizzare Confidential GKE Node con GPU nei node pool standard

Se nel tuo cluster non sono abilitati i nodi GKE confidenziali, puoi abilitarli in node pool GPU nuovi o esistenti specifici. Il control plane e i pool di nodi devono soddisfare i requisiti indicati nella 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 utilizzi i nodi GKE confidenziali, seleziona una delle seguenti opzioni:

    Console

    1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes:

      Vai ai cluster Kubernetes

    2. Fai clic sul nome del cluster in modalità Standard da modificare.

    3. Fai clic su Aggiungi pool di nodi. Si apre la pagina Aggiungi un node pool.

    4. Nel riquadro Dettagli del node pool:

      1. Seleziona Specifica le località dei nodi.
      2. Seleziona solo le zone supportate elencate nella sezione Disponibilità.
      3. Assicurati che la versione del control plane sia una di quelle elencate nella sezione Disponibilità.
    5. Nel menu di navigazione, fai clic su Nodi.

    6. Nel riquadro Configura le impostazioni del nodo, segui questi passaggi:

      1. Nella sezione Configurazione macchina, fai clic su GPU.
      2. Nel menu Tipo di GPU, seleziona NVIDIA H100 80 GB.
      3. Nel menu Numero di GPU, seleziona 1.
      4. Assicurati che l'opzione Abilita condivisione GPU non sia selezionata.
      5. Nella sezione Installazione 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 più recente del driver per la versione di GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.
        • Gestita 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.

      6. Nella sezione Tipo di macchina, assicurati che il tipo di macchina sia a3-highgpu-1g.

      7. Seleziona Abilita nodi sulle VM Spot o configura le VM Flex-start con provisioning in coda.

    7. Quando è tutto pronto per creare il pool di nodi, fai clic su Crea.

    gcloud

    Puoi creare pool di nodi GPU che eseguono nodi GKE confidenziali su VM spot o utilizzando VM con avvio flessibile e provisioning in coda.

    • Crea un pool di nodi GPU che esegue Confidential GKE Nodes su 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
      

      Sostituisci quanto segue:

      • NODE_POOL_NAME: un nome per il nuovo pool di nodi.
      • CLUSTER_NAME: il nome del tuo cluster esistente.
      • LOCATION: la posizione del nuovo pool di nodi. La località deve supportare l'utilizzo delle GPU nei nodi riservati di GKE.
      • NODE_LOCATION1,NODE_LOCATION2,...: un elenco separato da virgole delle zone in cui eseguire i nodi. Queste zone devono supportare l'utilizzo di NVIDIA Confidential Computing. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
      • DRIVER_VERSION: la versione del driver GPU da installare. Specifica uno dei seguenti valori:

      • default: installa la versione del driver predefinita 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 di GKE del nodo. Richiede GKE versione 1.33.3-gke.1392000 o successive.

      • disabled: salta 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.

    • Crea un pool di nodi GPU che esegue Confidential GKE Nodes utilizzando VM flessibili con provisioning in coda:

      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
      

      Sostituisci TOTAL_MAX_NODES con il numero massimo di nodi a cui il pool di nodi può scalare automaticamente.

      Per saperne di più sulle opzioni di configurazione in avvio flessibile con provisioning in coda, vedi Esegui un carico di lavoro su larga scala con avvio flessibile con provisioning in coda.

  • Per aggiornare i pool di nodi esistenti in modo che utilizzino la tecnologia Intel TDX Confidential Computing, consulta Aggiornare un node pool esistente.

Installa manualmente i driver GPU che supportano i nodi GKE confidenziali

Se non hai abilitato l'installazione automatica dei driver durante la creazione o l'aggiornamento dei tuoi pool di nodi, devi installare manualmente un driver GPU che supporti i nodi GKE confidenziali.

Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni ai carichi di lavoro 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 norme di manutenzione. Per saperne di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni dell'aggiornamento dei nodi.

Per istruzioni, vedi la scheda "COS" in Installare manualmente i driver GPU NVIDIA.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi, consulta Risolvere i problemi relativi alle GPU in GKE.

Passaggi successivi