Puedes cifrar los datos en uso de las cargas de trabajo de GPU ejecutando las cargas de trabajo en nodos confidenciales cifrados de Google Kubernetes Engine. 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 o aprendizaje automático. Debes familiarizarte con los siguientes conceptos:
Información sobre cómo ejecutar cargas de trabajo de GPU en nodos confidenciales de GKE
Puedes solicitar nodos de Confidential GKE para tus cargas de trabajo de GPU mediante uno de los siguientes métodos:
- Aprovisiona automáticamente nodos de Confidential GKE Node para tus cargas de trabajo de GPU con ComputeClasses de GKE. Puedes usar este método en clústeres de Autopilot y en clústeres estándar. Para obtener más información, consulta la sección Usar ComputeClasses para ejecutar cargas de trabajo de GPU en nodos confidenciales de GKE.
- Configura manualmente los nodos confidenciales de GKE en tus clústeres o grupos de nodos estándar. Para obtener más información, consulta la sección Configurar manualmente nodos de GKE confidenciales en GKE Standard.
Antes de empezar
Antes de empezar, asegúrate de que has 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, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
Requisitos y limitaciones
Independientemente del método de configuración de los nodos confidenciales de GKE que elijas, debes cumplir todos los requisitos siguientes:
- Los nodos deben estar en una zona que admita la función de computación confidencial de NVIDIA. Para obtener más información, consulta 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 computación confidencial Intel TDX.
- Debes tener cuota para las GPUs H100 de 80 GB no garantizadas (
compute.googleapis.com/preemptible_nvidia_h100_gpus
) en las ubicaciones de tus nodos. Para obtener más información sobre cómo gestionar tu cuota, consulta Ver y gestionar cuotas.
Además de estos requisitos, debes cumplir condiciones específicas en función del método de configuración de los nodos confidenciales de GKE que elijas, tal como se describe en la siguiente tabla:
Método de configuración | Requisitos | Limitaciones |
---|---|---|
ComputeClasses |
|
|
Configuración manual en el modo Estándar |
|
|
Roles obligatorios
Para obtener los permisos que necesitas para crear nodos confidenciales de GKE, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto Google Cloud :
-
Crea nodos de GKE confidenciales:
Administrador de clústeres de Kubernetes Engine (
roles/container.clusterAdmin
) -
Despliega cargas de trabajo de GPU:
Desarrollador de Kubernetes Engine (
roles/container.developer
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Usar ComputeClasses para ejecutar cargas de trabajo de GPU confidenciales
Puedes definir la configuración de los nodos confidenciales de GKE en un ComputeClass. Las clases de Compute son recursos personalizados de Kubernetes que te permiten definir de forma declarativa las configuraciones de los nodos para el autoescalado y la programación de GKE. Puedes seguir los pasos de esta sección en cualquier clúster Autopilot o Standard que ejecute la versión 1.33.3-gke.1392000 de GKE o una posterior.
Para usar una ComputeClass para ejecutar cargas de trabajo de GPU en nodos de Confidential GKE, sigue estos pasos:
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
Haz los cambios siguientes:
COMPUTECLASS_NAME
: un nombre para ComputeClass.ZONE1,ZONE2
: lista separada por comas de las zonas en las que se crearán los nodos, como['us-central1-a','us-central1-b']
. Especifica las zonas que admiten la tecnología de computación confidencial Intel TDX. Para obtener más información, consulta Ver las zonas admitidas.
Crea el ComputeClass:
kubectl apply -f PATH_TO_MANIFEST
Sustituye
PATH_TO_MANIFEST
por la ruta al archivo de manifiesto de ComputeClass.Para ejecutar tu carga de trabajo de GPU en nodos de GKE confidenciales, 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 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"
Sustituye
COMPUTECLASS_NAME
por el nombre de la ComputeClass que has creado.Crea el despliegue:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Sustituye
PATH_TO_DEPLOYMENT_MANIFEST
por la ruta al manifiesto de Deployment.
Cuando creas tu carga de trabajo de GPU, GKE usa la configuración de ComputeClass para crear nodos confidenciales de GKE con GPUs conectadas.
Configurar manualmente Confidential GKE Nodes en GKE Standard
Puedes ejecutar cargas de trabajo de GPU en nodos confidenciales de GKE en clústeres o grupos de nodos en modo Estándar. En el caso de las cargas de trabajo de GPU, tus nodos confidenciales de GKE deben usar la tecnología de computación confidencial Intel TDX.
Habilitar nodos confidenciales de GKE en clústeres estándar nuevos
Puedes habilitar los nodos confidenciales de GKE en todo tu clúster Estándar para que todos los grupos de nodos con GPU que crees usen la misma tecnología de computación confidencial. Cuando crees un clúster en modo estándar que utilice nodos de GKE confidenciales para cargas de trabajo de GPU, asegúrate de especificar los siguientes ajustes del clúster:
- Ubicación: una región o una zona que admita la computación confidencial de NVIDIA. Para obtener más información, consulta Ver las zonas admitidas.
- Tipo de Confidential Computing: Intel TDX
Versión del clúster: una de las siguientes versiones, en función de cómo quieras instalar los controladores de GPU:
- Instalación manual del controlador de GPU: 1.32.2-gke.1297000 o versiones posteriores.
- Instalación automática de controladores de GPU: 1.33.3-gke.1392000 o versiones posteriores.
También 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 forma que al menos un grupo de nodos del clúster pueda ejecutar cualquier carga de trabajo.
Para obtener más información, consulta Habilitar nodos confidenciales de GKE en clústeres estándar.
Usar nodos confidenciales de GKE con GPUs en grupos de nodos estándar
Si tu clúster no tiene habilitados los nodos confidenciales de GKE, puedes habilitarlos en grupos de nodos de GPU nuevos o ya creados. El plano de control y los grupos de nodos deben cumplir los requisitos que se indican en la sección Disponibilidad. Cuando configures el pool de nodos, podrás instalar los controladores de GPU automáticamente o manualmente.
Para crear un grupo de nodos de GPU que use nodos confidenciales de GKE, selecciona una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Clústeres de Kubernetes:
Haga clic en el nombre del clúster del modo Estándar que quiera modificar.
Haz clic en
Añadir grupo de nodos. Se abrirá la página Añadir un grupo de nodos.En el panel Detalles del grupo de nodos, haz lo siguiente:
- Selecciona Especificar ubicaciones de nodos.
- Selecciona solo las zonas admitidas que se indican en la sección Disponibilidad.
- Asegúrate de que la versión del plano de control sea una de las que se indican en la sección Disponibilidad.
En el menú de navegación, haz clic en Nodos.
En el panel Configurar ajustes de nodo, haz lo siguiente:
- En la sección Configuración de la máquina, haz clic en GPUs.
- En el menú Tipo de GPU, selecciona NVIDIA H100 de 80 GB.
- En el menú Número de GPUs, selecciona 1.
- Comprueba que la opción Habilitar el uso compartido de la GPU no esté seleccionada.
En la sección Instalación del controlador de GPU, selecciona una de las siguientes opciones:
Gestionado por Google: GKE instala automáticamente un controlador. Si selecciona esta opción, en la lista desplegable Versión, elija una de las siguientes versiones del controlador:
- Predeterminada: instala la versión predeterminada del controlador para la versión de GKE del nodo. Se necesita GKE versión 1.33.3-gke.1392000 o posterior.
- Última: 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 de GKE o una posterior.
Gestionado por el usuario: omite la instalación automática de controladores. Si seleccionas esta opción, debes instalar manualmente un controlador de GPU compatible. Requiere la versión 1.32.2-gke.1297000 o posterior.
En la sección Tipo de máquina, comprueba que el tipo de máquina sea
a3-highgpu-1g
.Selecciona Habilitar nodos en VMs de acceso puntual o configurar el inicio flexible con aprovisionamiento en cola.
Cuando lo tengas todo listo para crear el grupo de nodos, haz clic en Crear.
gcloud
Puedes crear grupos de nodos de GPU que ejecuten nodos de GKE confidenciales en máquinas virtuales Spot o mediante flex-start con aprovisionamiento en cola.
Crea un grupo de nodos con GPU que ejecute nodos confidenciales de GKE en VMs de aprovisionamiento esporádico:
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
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre del nuevo grupo de nodos.CLUSTER_NAME
: el nombre del clúster.LOCATION
: la ubicación del nuevo grupo de nodos. La ubicación debe admitir el uso de GPUs en nodos confidenciales de GKE.NODE_LOCATION1,NODE_LOCATION2,...
: 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 Ver las zonas admitidas.DRIVER_VERSION
: la versión del controlador de la GPU que se va a instalar. Se debe utilizar uno de los valores indicados a continuación.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 de GKE o una posterior.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 de GKE o una posterior.disabled
: omite la instalación automática de controladores. Si especificas este valor, debes instalar manualmente un controlador de GPU compatible. Requiere la versión 1.32.2-gke.1297000 o posterior.
Crea un grupo de nodos de GPU que ejecute nodos confidenciales de GKE mediante el inicio flexible con 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
Sustituye
TOTAL_MAX_NODES
por el número máximo de nodos al que se puede escalar automáticamente el grupo de nodos.Para obtener más información sobre las opciones de configuración de flex-start con aprovisionamiento en cola, consulta el artículo Ejecutar una carga de trabajo a gran escala con flex-start con aprovisionamiento en cola.
Para actualizar los grupos de nodos que ya tienes para que usen la tecnología de computación confidencial Intel TDX, consulta Actualizar un grupo de nodos.
Instalar manualmente los controladores de GPU compatibles con los nodos confidenciales de GKE
Si no habilitaste la instalación automática de controladores al crear o actualizar tus grupos de nodos, debes instalar manualmente un controlador de GPU que admita nodos de GKE confidenciales.
Para aplicar este cambio, es necesario volver a crear los nodos, lo que puede provocar interrupciones en las cargas de trabajo en ejecución. Para obtener información sobre este cambio concreto, busca la fila correspondiente en la tabla Cambios manuales que recrean los nodos mediante 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 Planificar interrupciones de actualizaciones de nodos.
Para obtener instrucciones, consulta la pestaña "COS" en Instalar manualmente los controladores de las GPU NVIDIA.
Solucionar problemas
Para obtener información sobre cómo solucionar problemas, consulta el artículo Solucionar problemas con las GPUs en GKE.
Siguientes pasos
- Verificar que los nodos de GPU usan nodos de GKE confidenciales
- Desplegar una carga de trabajo en los nodos de GPU
- Información sobre los métodos para ejecutar cargas de trabajo a gran escala con GPUs