Para usar GPU con instancias de Confidential VM, debes crear una instancia de VM con un tipo de máquina y un modelo de aprovisionamiento de instancias compatibles. Después de crear la instancia de VM, debes habilitar el modo de Confidential Computing en la GPU adjunta.
Las instancias de Confidential VM con GPU de NVIDIA están disponibles en los siguientes tipos de máquinas:
Tipo de máquina A3 High: GPUs NVIDIA H100 con Intel TDX. Admite modelos de aprovisionamiento de inicio flexible y de instancias Spot.
Tipo de máquina G4: NVIDIA RTX PRO 6000 con AMD SEV. Admite modelos de aprovisionamiento estándar (según demanda), de instancias interrumpibles y de inicio flexible, así como reservas.
El uso de GPU NVIDIA RTX Pro 6000 con instancias de Confidential VM G4 genera automáticamente una tarifa de licencia para el software y los servicios de NVIDIA Confidential Computing. Para obtener más detalles, consulta Precios de Confidential Computing con GPUs.
Antes de crear una instancia de VM confidencial con GPU, asegúrate de tener suficiente cuota de GPU. Para obtener más información, consulta Requisito de cuota de GPU.
Crea una instancia de Confidential VM con GPU
Para crear una instancia de Confidential VM con una GPU conectada, usa uno de los siguientes modelos de aprovisionamiento:
Estándar (según demanda): Crea una instancia de VM estándar (según demanda) optimizada para el acelerador. Este modelo solo está disponible para el tipo de máquina G4. Para ver los pasos detallados, consulta Modelo estándar (a pedido) o de Spot.
Spot: Crea una instancia de VM Spot optimizada para aceleradores para los tipos de máquinas A3 High o G4. Para ver los pasos detallados, consulta Modelo estándar (a pedido) o de Spot.
Inicio flexible: Crea un grupo de instancias administrado (MIG) para los tipos de máquinas A3 High o G4. Para obtener los pasos detallados, consulta Modelo de inicio flexible.
Modelo estándar (a pedido) o de spot
gcloud
Para crear una instancia de VM estándar (a pedido) o de VM Spot optimizada para aceleradores con la gcloud CLI, usa el subcomando instances create con la marca --provisioning-model.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=PROVISIONING_MODEL \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Para habilitar el inicio seguro, puedes usar la marca --shielded-secure-boot para los inicios de instancias de VM.
Ingresa los siguientes valores:
INSTANCE_NAME: Es el nombre de la instancia de VM nueva.PROVISIONING_MODEL: Es el modelo de aprovisionamiento que admite el tipo de máquina. Elige una de estas opciones:Tipo de máquina A3 High:
SPOTpara instancias de VM Spot.Tipo de máquina G4:
STANDARDpara instancias de VM estándar (a pedido) oSPOTpara instancias de VM Spot Si no se especifica, el valor predeterminado esSTANDARD.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: Es el tipo de máquina de la VM. Elige una de las siguientes opciones:a3-highgpu-1gg4-standard-48
ZONE_NAME: Es la zona admitida en la que se creará la VM.IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible. Elige una de estas opciones:Tipo de máquina A3 High:
ubuntu-os-cloudpara imágenes de Ubuntu oconfidential-vm-imagespara imágenes de Container-Optimized OS.Tipo de máquina G4:
ubuntu-os-cloudpara imágenes de Ubuntu ocos-cloudpara imágenes de Container-Optimized OS
IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VM. Elige la familia de imágenes según el tipo de máquina:Tipo de máquina A3 High:
ubuntu-2204-ltspara proyectos de imágenes de Ubuntu.cos-tdx-113-ltspara proyectos de imágenes de Container-Optimized OS
Tipo de máquina G4:
ubuntu-2404-lts-amd64para proyectos de imágenes de Ubuntu.cos-125-ltspara proyectos de imágenes de Container-Optimized OS
REST
Para crear una instancia de VM estándar (a pedido) o Spot, envía la siguiente solicitud POST con el contenido del cuerpo adecuado.
Usa el siguiente método y URL de HTTP:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Usa el siguiente cuerpo de la solicitud JSON:
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"automaticRestart": true,
"provisioningModel": "PROVISIONING_MODEL"
},
"disks": [
{
"boot": true,
"autoDelete": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
"diskSizeGb": "30"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
Ingresa los siguientes valores:
PROJECT_ID: Opcional ID del proyecto en el que se creará la VM.ZONE: Es la zona admitida en la que se creará la VM.INSTANCE_NAME: Es el nombre de la instancia de VM nueva.MACHINE_TYPE_NAME: Es el tipo de máquina de la VM. Elige una de las siguientes opciones:a3-highgpu-1gg4-standard-48
CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
PROVISIONING_MODEL: Es el modelo de aprovisionamiento admitido por la serie de máquinas. Elige una de estas opciones:Tipo de máquina A3 High:
SPOTpara instancias de VM SpotTipo de máquina G4:
STANDARDpara instancias de VM estándar (a pedido) oSPOTpara instancias de VM Spot Si no se especifica, el valor predeterminado esSTANDARD.
IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible. Elige una de estas opciones:Tipo de máquina A3 High:
ubuntu-os-cloudpara imágenes de Ubuntu oconfidential-vm-imagespara imágenes de Container-Optimized OS.Tipo de máquina G4:
ubuntu-os-cloudpara imágenes de Ubuntu ocos-cloudpara imágenes de Container-Optimized OS
IMAGE_FAMILY: Es la familia de la imagen del sistema operativo compatible con Confidential VM. Elige la familia de imágenes según el tipo de máquina:Tipo de máquina A3 High:
ubuntu-2204-ltspara proyectos de imágenes de Ubuntu.cos-tdx-113-ltspara proyectos de imágenes de Container-Optimized OS
Tipo de máquina G4:
ubuntu-2404-lts-amd64para proyectos de imágenes de Ubuntu.cos-125-ltspara proyectos de imágenes de Container-Optimized OS
Modelo de inicio flexible
Para usar el modelo de inicio flexible, primero crea una plantilla de instancias y, luego, usa esa plantilla para crear un grupo de instancias administrado (MIG). Luego, puedes agregar instancias de VM con GPU al MIG con solicitudes de cambio de tamaño.
Usar una solicitud de cambio de tamaño del MIG con el modelo de aprovisionamiento de inicio flexible mejora la disponibilidad de las instancias de VM con GPU. Para obtener más información, consulta Información sobre las solicitudes de cambio de tamaño en un MIG.
Antes de comenzar
- Para crear un MIG, consulta los requisitos previos del MIG.
- Para crear una solicitud de cambio de tamaño en un MIG, consulta las limitaciones de las solicitudes de cambio de tamaño.
Crea un MIG con instancias de VM de GPU
Para crear una plantilla de instancias y, luego, usarla para crear un MIG, completa los siguientes pasos.
Crea una plantilla de instancias.
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \ --machine-type=MACHINE_TYPE_NAME \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_IDIngresa los siguientes valores:
INSTANCE_TEMPLATE_NAME: Es el nombre de la nueva plantilla de instancias de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: Es el tipo de máquina de la VM. Elige una de las siguientes opciones:a3-highgpu-1gg4-standard-48
IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible. Elige una de estas opciones:Tipo de máquina A3 High:
ubuntu-os-cloudpara imágenes de Ubuntu oconfidential-vm-imagespara imágenes de Container-Optimized OS.Tipo de máquina G4:
ubuntu-os-cloudpara imágenes de Ubuntu ocos-cloudpara imágenes de Container-Optimized OS
IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VM que se usará. Elige la familia de imágenes según el tipo de máquina:Tipo de máquina A3 High:
ubuntu-2204-ltspara proyectos de imágenes de Ubuntu.cos-tdx-113-ltspara proyectos de imágenes de Container-Optimized OS
Tipo de máquina G4:
ubuntu-2404-lts-amd64para proyectos de imágenes de Ubuntu.cos-125-ltspara proyectos de imágenes de Container-Optimized OS
RUN_DURATION: Es la duración durante la que deseas que se ejecuten las instancias de VM solicitadas. Debes darle formato al valor como la cantidad de días, horas, minutos o segundos, seguidos ded,h,mys, respectivamente. Por ejemplo:6d8h44m.PROJECT_ID: Es el ID del proyecto en el que se creará la VM.
REST
Para crear una plantilla de instancias de Confidential VM, envía la siguiente solicitud POST con el contenido del cuerpo adecuado.
Usa el siguiente método HTTP y URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplatesUsa el siguiente cuerpo de la solicitud JSON:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY" }, "machineType": "MACHINE_TYPE_NAME", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": "RUN_DURATION_IN_SECONDS" }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "canIpForward": false } }Para habilitar el inicio seguro, puedes incluir el siguiente objeto para los inicios de instancias de VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }Ingresa los siguientes valores:
PROJECT_ID: ID del proyecto en el que se creará la plantilla.REGION: Es la región en la que se creará la plantilla.INSTANCE_TEMPLATE_NAME: Es el nombre de la nueva plantilla de instancias de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: Es el tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: Es el tipo de máquina de la VM. Elige una de las siguientes opciones:a3-highgpu-1gg4-standard-48
RUN_DURATION_IN_SECONDS: Es la duración, en segundos, por la que deseas que se ejecuten las instancias de VM solicitadas. El valor debe estar entre600y604800segundos.IMAGE_PROJECT: Es el proyecto que contiene la imagen del sistema operativo compatible. Elige una de estas opciones:Tipo de máquina A3 High:
ubuntu-os-cloudpara imágenes de Ubuntu oconfidential-vm-imagespara imágenes de Container-Optimized OS.Tipo de máquina G4:
ubuntu-os-cloudpara imágenes de Ubuntu ocos-cloudpara imágenes de Container-Optimized OS
IMAGE_FAMILY_NAME: Es la familia de la imagen del sistema operativo compatible con Confidential VM que se usará. Elige la familia de imágenes según el tipo de máquina:Tipo de máquina A3 High:
ubuntu-2204-ltspara proyectos de imágenes de Ubuntu.cos-tdx-113-ltspara proyectos de imágenes de Container-Optimized OS
Tipo de máquina G4:
ubuntu-2404-lts-amd64para proyectos de imágenes de Ubuntu.cos-125-ltspara proyectos de imágenes de Container-Optimized OS
Crea un MIG y una solicitud de cambio de tamaño para agregar instancias de VM con GPU de una sola vez.
Enumera las instancias presentes en el MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_IDIngresa los siguientes valores:
INSTANCE_GROUP_NAME: el nombre del MIGZONE_NAME: Es la zona admitida desde la que se obtendrá una lista de instancias de VM.PROJECT_ID: Opcional Es el ID del proyecto del que se obtendrá una lista de instancias de VM.
REST
Para enumerar todas las plantillas, envía la siguiente solicitud GET.
Usa el siguiente método y URL de HTTP:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesPara limitar la lista de instancias a una zona específica, envía la siguiente solicitud GET.
Usa el siguiente método y URL de HTTP:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplatesIngresa los siguientes valores:
ZONE_NAME: Es la zona admitida desde la que se obtendrá una lista de instancias de VM.PROJECT_ID: Es el ID del proyecto del que se obtendrá una lista de instancias de VM.
Usa reservas con instancias de Confidential VMs
Puedes usar reservas para asegurarte de tener capacidad para tus instancias de Confidential VMs solo con el tipo de máquina G4.
Para usar una reserva para tu instancia de Confidential VM, haz lo siguiente:
Crea una reserva estándar en la zona admitida. Puedes controlar cómo las instancias consumen esta reserva con la marca
--require-specific-reservationdurante la creación de la reserva.Crea una instancia de Confidential VM para usar la reserva. Cuando crees la instancia de VM, incluye la marca
--confidential-compute-type=SEVpara que sea una instancia de Confidential VM. La forma en que esta instancia consume la reserva depende de la configuración de afinidad de la reserva.
En los siguientes ejemplos, se muestra cómo usar reservas con instancias de Confidential VMs. El método para consumir la reserva depende de cómo se creó:
Consumo automático: Si se crea una reserva sin la marca
--require-specific-reservation, puedes crear una instancia de VM confidencial de G4 con propiedades coincidentes (como el tipo de máquina o la zona) para usar automáticamente la reserva.Consumo específico: Si se crea una reserva con la marca
--require-specific-reservation, debes segmentar la reserva con las marcas--reservation-affinity=specificy--reservation=RESERVATION_NAMEcuando crees la instancia:gcloud compute instances create INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE_NAME \ --machine-type=g4-standard-48 \ --confidential-compute-type=SEV \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2404-lts-amd64 \ --reservation-affinity=specific \ --reservation=RESERVATION_NAMEIngresa los siguientes valores:
INSTANCE_NAME: Es el nombre de la instancia de VM nueva.PROJECT_ID: Opcional ID del proyecto en el que se creará la VM.ZONE_NAME: Es la zona admitida en la que se creará la VM.RESERVATION_NAME: Es el nombre de la reserva.
Para obtener información sobre cómo las instancias de VM consumen reservas y cómo funciona la afinidad, consulta Consume reservas.
Habilita el modo de Confidential Computing en la GPU
Conéctate a una instancia de VM en el MIG con el comando gcloud compute ssh.
gcloud compute sshActualiza la lista de paquetes y, luego, instala las herramientas y bibliotecas necesarias.
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12Instala los controladores de GPU adecuados en la instancia de VM. Para las instancias de VM con el inicio seguro habilitado, consulta Instala controladores de GPU (VMs con inicio seguro). Te recomendamos usar la versión 580 o posterior de los controladores de módulos de kernel abiertos de NVIDIA.
Para configurar la comunicación segura entre la GPU y el controlador de GPU, habilita la API de criptografía del kernel de Linux (LKCA).
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -uHabilita el modo de persistencia para establecer una conexión segura de Security Protocol and Data Model (SPDM) entre la GPU y el controlador de la GPU.
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reloadReinicia la instancia de VM para aplicar la LKCA y la configuración del modo de persistencia.
sudo rebootConéctate a una instancia de VM en el MIG con el comando gcloud compute ssh.
gcloud compute sshInstala las muestras de CUDA que admitan la versión del controlador que necesitas (opcional).
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz tar xzvf cuda-samples.tar.gz
¿Qué sigue?
Obtén más información para verificar que el modo confidencial esté habilitado en las GPUs.
Obtén más información sobre el requisito de cuota de GPU.
Para comprender el consumo de cuota, consulta VMs de GPU y cuotas de asignación interrumpibles.