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 las cargas de trabajo aceleradas, como las tareas de IA y AA. Debes estar familiarizado con 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:
- Aprovisiona automáticamente nodos de GKE confidenciales para tus cargas de trabajo de GPU con ComputeClasses de GKE. Puedes usar este método en clústeres de Autopilot y Standard. Para obtener más información, consulta la sección Usa ComputeClasses para ejecutar cargas de trabajo de GPU en Confidential GKE Nodes.
- Configura manualmente los Confidential GKE Nodes para tus clústeres o grupos de nodos de Standard. Para obtener más información, consulta la sección Configura manualmente Confidential GKE Nodes en GKE Standard.
Limitaciones
El modo Autopilot solo admite GPU NVIDIA H100 (80 GB) con nodos de GKE confidenciales.
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 deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste la gcloud CLI, ejecuta el comando
gcloud components updatepara obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se indican en este documento.
Requisitos
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 un tipo de máquina, una tecnología de Confidential Computing y una GPU compatibles. Para obtener más información, consulta Configuraciones compatibles.
- Debes tener una cuota interrumpible para las GPUs que deseas usar en las ubicaciones de tus nodos. Por ejemplo, si usas GPUs NVIDIA H100 (80 GB), debes tener
cuota para
compute.googleapis.com/preemptible_nvidia_h100_gpus. 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 |
|
|
| Configuración manual en el modo estándar |
|
|
Roles obligatorios
Para obtener los permisos que necesitas para crear Confidential GKE Nodes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto de Google Cloud :
-
Crea Confidential GKE Nodes:
Administrador de clústeres de Kubernetes Engine (
roles/container.clusterAdmin) -
Implementa cargas de trabajo de GPU:
Desarrollador de Kubernetes Engine (
roles/container.developer)
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 de GPU confidenciales
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:
Guarda el siguiente manifiesto de ComputeClass como un archivo 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: DoNotScaleUpReemplaza lo siguiente:
COMPUTECLASS_NAME: Es un nombre para la ComputeClass.CONFIDENTIAL_COMPUTE_TECHNOLOGY: Es la tecnología de Confidential Computing que se usará, comoTDX. Elige una tecnología compatible con la GPU que deseas usar.ZONE1,ZONE2: Es una lista separada por comas de las 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 y el tipo de máquina que deseas usar. Para obtener más información, consulta Cómo ver las zonas admitidas.GPU_TYPE: Es el tipo de GPU que se usará, comonvidia-h100-80gb.GPU_COUNT: Es la cantidad de GPUs que se deben conectar a cada nodo. Especifica un valor que admita Confidential VM para el tipo de GPU. Por ejemplo, si eliges el tipo de GPUnvidia-h100-80gb, debes especificar un valor de1en este campo.
Crea el objeto ComputeClass:
kubectl apply -f PATH_TO_MANIFESTReemplaza
PATH_TO_MANIFESTpor la ruta de acceso al archivo de manifiesto de ComputeClass.Para ejecutar tu carga de trabajo de GPU en Confidential GKE Nodes, selecciona la ComputeClass en el manifiesto de la carga de trabajo. Por ejemplo, guarda el siguiente manifiesto de Deployment, que selecciona una ComputeClass y GPU, 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: GPU_REQUEST requests: cpu: "4" memory: "16Gi"Reemplaza lo siguiente:
COMPUTECLASS_NAME: Es el nombre de la ComputeClass que creaste.GPU_REQUEST: Es la cantidad de GPUs que se usarán en el contenedor. Especifica un valor menor o igual al que especificaste en el campogpu.countde ComputeClass.
Crea el Deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFESTReemplaza
PATH_TO_DEPLOYMENT_MANIFESTpor la ruta de acceso al manifiesto del 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.
Habilita Confidential GKE Nodes en clústeres de 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 el 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: una región o una zona que admita la Confidential Computing de NVIDIA. Para obtener más información, consulta Visualiza las zonas compatibles.
- Tipo de Confidential Computing: Es una tecnología de Confidential Computing que admite GPUs. Para obtener más información, consulta Configuraciones compatibles.
Versión del clúster: una de las siguientes versiones, según cómo quieras 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 manera 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 Node en clústeres estándar.
Usa Confidential GKE Nodes con GPUs en grupos de nodos 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 configuras el grupo de nodos, puedes elegir 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
En la consola de Google Cloud , accede a la página de los clústeres de Kubernetes.
Haz clic en el nombre del clúster en modo estándar que deseas modificar.
Haz clic en la pestaña Nodos.
Haz clic en Crear grupo de nodos administrado por el usuario. Se abrirá la página Agregar 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 aparecen en la sección Disponibilidad.
En el menú de navegación, haz clic en Nodos.
En el panel Configurar parámetros del 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 un tipo de GPU compatible con Confidential Computing.
- En el menú Cantidad de GPU, selecciona la cantidad de GPU que se adjuntarán a cada nodo. Selecciona un valor que sea compatible con el tipo de GPU que elegiste. Por ejemplo, si elegiste GPU NVIDIA H100 (80 GB), selecciona 1.
- Asegúrate de 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:
Administrada por Google: GKE instala un controlador de forma automática. Si seleccionas esta opción, en la lista desplegable Versión, elige una de las siguientes versiones del controlador:
- Predeterminado: 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 un controlador de GPU compatible de forma manual. Se requiere la versión 1.32.2-gke.1297000 o posterior.
En la sección Tipo de máquina, asegúrate de que el tipo de máquina sea un tipo de máquina con GPU compatible con Confidential VM para el tipo de GPU seleccionado.
Selecciona Habilitar nodos en VMs Spot o configura VMs de inicio flexible con aprovisionamiento en cola.
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 VMs de inicio flexible con aprovisionamiento en cola.
Crea un grupo de nodos de GPU que ejecute Confidential GKE Nodes en VMs 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_TYPEReemplaza lo siguiente:
NODE_POOL_NAME: Es el nombre de tu grupo de nodos nuevo.CLUSTER_NAME: Es el nombre del clúster existente.CONFIDENTIAL_COMPUTE_TECHNOLOGY: Es la tecnología de Confidential Computing que se usará, comoTDX. Elige una tecnología que sea compatible con la GPU que deseas usar.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 separada por comas de las zonas en las que se ejecutarán los nodos. Especifica las zonas que admiten la tecnología de Confidential Computing y el tipo de máquina que deseas usar. Para obtener más información, consulta Cómo ver las zonas admitidas.GPU_TYPE: Es el tipo de GPU que se usará, comonvidia-h100-80gb.GPU_COUNT: Es la cantidad de GPUs que se deben conectar a cada nodo. Especifica un valor que admita Confidential VM para el tipo de GPU. Por ejemplo, si eliges el tipo de GPUnvidia-h100-80gb, debes especificar un valor de1en este campo.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.
MACHINE_TYPE: Es el tipo de máquina que se usará para los nodos. Especifica un tipo de máquina de GPU que sea compatible con Confidential VM para el tipo de GPU que seleccionaste.
Crea un grupo de nodos de GPU que ejecute Confidential GKE Nodes con VMs de inicio flexible y aprovisionamiento en cola:
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_VERSIONReemplaza
TOTAL_MAX_NODESpor la cantidad máxima de nodos a la que el grupo de nodos puede ajustarse 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 inicio flexible con aprovisionamiento en cola.
Para actualizar tus grupos de nodos existentes para usar Confidential Computing, consulta Actualiza un grupo de nodos existente.
Instala de forma manual 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 Confidential GKE Nodes.
Este cambio requiere que se vuelvan 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 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 Planifica las interrupciones de las actualizaciones de nodos.
Para obtener instrucciones, consulta la pestaña "COS" en Instala controladores de GPU de NVIDIA de forma manual.
Solucionar problemas
Si deseas obtener información para solucionar problemas, consulta Soluciona problemas de GPUs en GKE.
¿Qué sigue?
- Verifica que tus nodos de GPU usen Confidential GKE Nodes
- Implementa una carga de trabajo en tus nodos de GPU.
- Obtén información sobre los métodos para ejecutar cargas de trabajo a gran escala con GPU.