Encripta los datos de la carga de trabajo de la GPU en uso con Confidential GKE Nodes


Puedes encriptar los datos en uso de cargas de trabajo de GPU ejecutando las cargas de trabajo en Confidential Google Kubernetes Engine Nodes encriptados. En esta página, se muestra a los ingenieros y operadores de seguridad cómo mejorar la seguridad de los datos en cargas de trabajo aceleradas, como las tareas de IA/AA. Debes conocer los siguientes conceptos:

Acerca de la ejecución de cargas de trabajo de GPU en Confidential GKE Nodes

Puedes solicitar Confidential GKE Nodes para tus cargas de trabajo de GPU con uno de los siguientes métodos:

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Requisitos y limitaciones

Independientemente del método de configuración de Confidential GKE Nodes que elijas, debes cumplir con todos los siguientes requisitos:

  • Los nodos deben estar en una zona que admita la función de Confidential Computing de NVIDIA. Para obtener más información, consulta Cómo ver las zonas admitidas.
  • Los nodos deben usar solo una GPU NVIDIA H100 de 80 GB y el tipo de máquina a3-highgpu-1g.
  • Los nodos deben usar la tecnología de Confidential Computing de Intel TDX.
  • Debes tener cuota para las GPU H100 de 80 GB interrumpibles (compute.googleapis.com/preemptible_nvidia_h100_gpus) en las ubicaciones de tus nodos. Para obtener más información sobre cómo administrar tu cuota, consulta Visualiza y administra cuotas.

Además de estos requisitos, debes cumplir con condiciones específicas según el método de configuración de Confidential GKE Nodes que elijas, como se describe en la siguiente tabla:

Método de configuración Requisitos Limitaciones
ComputeClasses
  • No puedes usar el inicio flexible con el aprovisionamiento en cola con ComputeClasses.
  • No puedes usar funciones de uso compartido de GPU, como el uso compartido de tiempo o las GPU de varias instancias.
Configuración manual en el modo estándar
  • Usa VMs Spot, VMs interrumpibles, inicio flexible (vista previa) o inicio flexible con aprovisionamiento en cola.
  • Usa una de las siguientes versiones de GKE:
    • Instalación manual del controlador de GPU: versión 1.32.2-gke.1297000 o posterior
    • Instalación automática del controlador de GPU: 1.33.3-gke.1392000 o versiones posteriores.
    • Inicio flexible con aprovisionamiento en cola: 1.32.2-gke.1652000 o posterior
  • No puedes usar flex-start (versión preliminar) si habilitas Confidential GKE Nodes para todo el clúster.
  • No puedes usar funciones de uso compartido de GPU, como el uso compartido de tiempo o las GPU de varias instancias.

Roles requeridos

Para obtener los permisos que necesitas para crear nodos de GKE confidenciales, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto Google Cloud :

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Usa ComputeClasses para ejecutar cargas de trabajo confidenciales de GPU

Puedes definir la configuración de tus Confidential GKE Nodes en un objeto ComputeClass. Las ComputeClasses son recursos personalizados de Kubernetes que te permiten establecer de forma declarativa la configuración de los nodos para el ajuste de escala automático y la programación de GKE. Puedes seguir los pasos de esta sección en cualquier clúster de Autopilot o Standard que ejecute la versión 1.33.3-gke.1392000 o posterior de GKE.

Para usar una ComputeClass y ejecutar cargas de trabajo de GPU en Confidential GKE Nodes, sigue estos pasos:

  1. Guarda el siguiente manifiesto de ComputeClass como un archivo 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
    

    Reemplaza lo siguiente:

    • COMPUTECLASS_NAME: Es un nombre para la ComputeClass.
    • ZONE1,ZONE2: Es una lista separada por comas de zonas en las que se crearán nodos, como ['us-central1-a','us-central1-b']. Especifica las zonas que admiten la tecnología de Confidential Computing de Intel TDX. Para obtener más información, consulta Cómo ver las zonas admitidas.
  2. Crea la ComputeClass:

    kubectl apply -f PATH_TO_MANIFEST
    

    Reemplaza PATH_TO_MANIFEST por la ruta de acceso al archivo de manifiesto de ComputeClass.

  3. Para ejecutar tu carga de trabajo de GPU en Confidential GKE Nodes, selecciona ComputeClass en el manifiesto de la carga de trabajo. Por ejemplo, guarda el siguiente manifiesto de Deployment, que selecciona una ComputeClass y GPUs, como un archivo 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"
    

    Reemplaza COMPUTECLASS_NAME por el nombre de la clase de procesamiento que creaste.

  4. Crea el Deployment:

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Reemplaza PATH_TO_DEPLOYMENT_MANIFEST por la ruta de acceso al manifiesto de Deployment.

Cuando creas tu carga de trabajo de GPU, GKE usa la configuración de ComputeClass para crear Confidential GKE Nodes con GPUs adjuntas.

Configura manualmente Confidential GKE Nodes en GKE Standard

Puedes ejecutar cargas de trabajo de GPU en Confidential GKE Nodes en clústeres o grupos de nodos en modo Standard. Para las cargas de trabajo de GPU, tus Confidential GKE Nodes deben usar la tecnología de Confidential Computing de Intel TDX.

Habilita los Confidential GKE Nodes en clústeres Standard nuevos

Puedes habilitar Confidential GKE Nodes para todo tu clúster estándar, de modo que cada grupo de nodos con GPU que crees use la misma tecnología de Confidential Computing. Cuando crees un clúster nuevo en modo estándar que use Confidential GKE Nodes para cargas de trabajo de GPU, asegúrate de especificar la siguiente configuración del clúster:

  • Ubicación: Es una región o una zona que admite la computación confidencial de NVIDIA. Para obtener más información, consulta Cómo ver las zonas admitidas.
  • Tipo de Confidential Computing: Intel TDX
  • Versión del clúster: Una de las siguientes versiones, según cómo desees instalar los controladores de GPU:

    • Instalación manual del controlador de GPU: 1.32.2-gke.1297000 o posterior
    • Instalación automática del controlador de GPU: 1.33.3-gke.1392000 o posterior

De forma opcional, puedes configurar GPUs para el grupo de nodos predeterminado que GKE crea en tu clúster. Sin embargo, te recomendamos que uses un grupo de nodos independiente para tus GPUs, de modo que al menos un grupo de nodos del clúster pueda ejecutar cualquier carga de trabajo.

Para obtener más información, consulta Habilita Confidential GKE Nodes en clústeres estándar.

Usa Confidential GKE Nodes con GPUs en grupos de nodos de Standard

Si tu clúster no tiene habilitados los Confidential GKE Nodes, puedes habilitarlos en grupos de nodos de GPU específicos, ya sean nuevos o existentes. El plano de control y los grupos de nodos deben cumplir con los requisitos de la sección Disponibilidad. Cuando configures el grupo de nodos, puedes optar por instalar los controladores de GPU de forma automática o manual.

  • Para crear un grupo de nodos de GPU nuevo que use Confidential GKE Nodes, selecciona una de las siguientes opciones:

    Console

    1. En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.

      Ir a clústeres de Kubernetes

    2. Haz clic en el nombre del clúster en modo estándar que deseas modificar.

    3. Haz clic en Agregar grupo de nodos. Se abrirá la página Agregar un grupo de nodos.

    4. En el panel Detalles del grupo de nodos, haz lo siguiente:

      1. Selecciona Especificar ubicaciones de nodos.
      2. Selecciona solo las zonas admitidas que se indican en la sección Disponibilidad.
      3. Asegúrate de que la versión del plano de control sea una de las versiones que se indican en la sección Disponibilidad.
    5. En el menú de navegación, haz clic en Nodos.

    6. En el panel Configurar parámetros del nodo, haz lo siguiente:

      1. En la sección Configuración de la máquina, haz clic en GPUs.
      2. En el menú Tipo de GPU, selecciona NVIDIA H100 80 GB.
      3. En el menú Cantidad de GPU, selecciona 1.
      4. Asegúrate de que la opción Habilitar el uso compartido de la GPU no esté seleccionada.
      5. En la sección GPU Driver installation, selecciona una de las siguientes opciones:

        • Administrada por Google: GKE instala un controlador de forma automática. Si seleccionas esta opción, en la lista desplegable Versión, selecciona una de las siguientes versiones del controlador:

          • Predeterminada: Instala la versión predeterminada del controlador para la versión de GKE del nodo. Se requiere la versión 1.33.3-gke.1392000 o posterior de GKE.
          • Más reciente: Instala la versión más reciente del controlador para la versión de GKE del nodo. Se requiere la versión 1.33.3-gke.1392000 o posterior de GKE.
        • Administrada por el usuario: Omite la instalación automática del controlador. Si seleccionas esta opción, debes instalar manualmente un controlador de GPU compatible. Se requiere la versión 1.32.2-gke.1297000 o posterior.

      6. En la sección Tipo de máquina, asegúrate de que el tipo de máquina sea a3-highgpu-1g.

      7. Selecciona Habilitar nodos en VMs Spot o configura el inicio flexible con aprovisionamiento en cola.

    7. Cuando esté todo listo para crear el grupo de nodos, haz clic en Crear.

    gcloud

    Puedes crear grupos de nodos de GPU que ejecuten Confidential GKE Nodes en VMs Spot o con flex-start con aprovisionamiento en cola.

    • Crea un grupo de nodos de GPU que ejecute nodos confidenciales de GKE en VMs 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
      

      Reemplaza lo siguiente:

      • NODE_POOL_NAME: Es el nombre de tu grupo de nodos nuevo.
      • CLUSTER_NAME: Es el nombre del clúster existente.
      • LOCATION: Es la ubicación de tu grupo de nodos nuevo. La ubicación debe admitir el uso de GPUs en Confidential GKE Nodes.
      • NODE_LOCATION1,NODE_LOCATION2,...: Es una lista de zonas separadas por comas en las que se ejecutarán los nodos. Estas zonas deben admitir el uso de Confidential Computing de NVIDIA. Para obtener más información, consulta Cómo ver las zonas admitidas.
      • DRIVER_VERSION: Es la versión del controlador de GPU que se instalará. Especifica uno de los siguientes valores:

      • default: Instala la versión predeterminada del controlador para la versión de GKE del nodo. Se requiere la versión 1.33.3-gke.1392000 o posterior de GKE.

      • latest: Instala la versión más reciente del controlador para la versión de GKE del nodo. Se requiere la versión 1.33.3-gke.1392000 o posterior de GKE.

      • disabled: Omite la instalación automática del controlador. Si especificas este valor, debes instalar un controlador de GPU compatible de forma manual. Se requiere la versión 1.32.2-gke.1297000 o posterior.

    • Crea un grupo de nodos de GPU que ejecute Confidential GKE Nodes con flex-start y aprovisionamiento en cola:

      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
      

      Reemplaza TOTAL_MAX_NODES por la cantidad máxima de nodos a la que el grupo de nodos puede escalar automáticamente.

      Para obtener más información sobre las opciones de configuración en el inicio flexible con aprovisionamiento en cola, consulta Ejecuta una carga de trabajo a gran escala con el inicio flexible con aprovisionamiento en cola.

  • Para actualizar tus grupos de nodos existentes para que usen la tecnología de Confidential Computing de Intel TDX, consulta Actualiza un grupo de nodos existente.

Instala manualmente los controladores de GPU que admiten Confidential GKE Nodes

Si no habilitaste la instalación automática de controladores cuando creaste o actualizaste tus grupos de nodos, debes instalar de forma manual un controlador de GPU que admita los nodos confidenciales de GKE.

Este cambio requiere volver a crear los nodos, lo que puede causar interrupciones en tus cargas de trabajo en ejecución. Para obtener detalles sobre este cambio específico, busca la fila correspondiente en la tabla de cambios manuales que recrean los nodos con una estrategia de actualización de nodos sin respetar las políticas de mantenimiento. Para obtener más información sobre las actualizaciones de nodos, consulta Planificación de interrupciones por actualizaciones de nodos.

Para obtener instrucciones, consulta la pestaña "COS" en Instala controladores de GPU de NVIDIA de forma manual.

Solucionar problemas

Para obtener información sobre la solución de problemas, consulta Soluciona problemas de las GPUs en GKE.

¿Qué sigue?