如需将 GPU 与机密虚拟机实例搭配使用,您必须使用受支持的机器类型和实例预配模型来创建虚拟机实例。创建虚拟机实例后,您需要在所挂接的 GPU 上启用机密计算模式。
搭载 NVIDIA GPU 的机密虚拟机实例可使用以下机器类型:
A3 High 机器类型:配备 Intel TDX 的 NVIDIA H100 GPU。支持竞价型和灵活启动配置模型。
G4 机器类型(预览版):NVIDIA RTX PRO 6000,支持 AMD SEV。支持标准(按需)、竞价型和灵活启动配置模型,以及预留。
在创建具有 GPU 的机密虚拟机实例之前,请确保您有足够的 GPU 配额。如需了解详情,请参阅 GPU 配额要求。
创建具有 GPU 的机密虚拟机实例
如需创建挂接了 GPU 的机密虚拟机实例,请使用以下预配模型之一:
标准(按需):创建标准(按需)加速器优化虚拟机实例。此模型仅适用于 G4(预览版)机器类型。如需了解详细步骤,请参阅标准(按需)或 Spot 模型。
Spot:创建加速器优化型 Spot 虚拟机实例,可选择 A3 High 或 G4(预览版)机器类型。如需了解详细步骤,请参阅标准(按需)模型或 Spot 模型。
灵活启动:为 A3 High 或 G4(预览版)机器类型创建托管式实例组 (MIG)。如需了解详细步骤,请参阅灵活启动模型。
标准(按需)或 Spot 模式
gcloud
如需使用 gcloud CLI 创建加速器优化标准(按需)或 Spot 虚拟机实例,请使用带有 --provisioning-model 标志的 instances create 子命令。
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
如需启用安全启动,您可以使用 --shielded-secure-boot 标志来启动虚拟机实例。
请提供以下值:
INSTANCE_NAME:新虚拟机实例的名称。PROVISIONING_MODEL:相应机器类型支持的预配模型。请按以下方式之一操作:A3 High 机器类型:
SPOT(适用于 Spot 虚拟机实例)。G4 机器类型(预览版):
STANDARD用于标准(按需)虚拟机实例,SPOT用于 Spot 虚拟机实例。如果未指定,此值默认为STANDARD。
CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请按以下方式之一操作:A3 High 机器类型 (
a3-highgpu-1g):TDXG4 机器类型 (
g4-standard-48):SEV
MACHINE_TYPE_NAME:虚拟机的机器类型。请从下列选项中选择一项:a3-highgpu-1gg4-standard-48(预览版)
ZONE_NAME:要在其中创建虚拟机的支持的可用区。IMAGE_PROJECT:包含受支持的操作系统映像的项目。请按以下方式之一操作:A3 High 机器类型:对于 Ubuntu 映像,为
ubuntu-os-cloud;对于 Container-Optimized OS 映像,为confidential-vm-images。G4 机器类型(预览版):对于 Ubuntu 映像,请选择
ubuntu-os-cloud;对于 Container-Optimized OS 映像,请选择cos-cloud。
IMAGE_FAMILY_NAME:机密虚拟机支持的操作系统映像的系列。请根据您的机器类型选择映像系列:A3 High 机器类型:
ubuntu-2204-lts(针对 Ubuntu 映像项目)。cos-tdx-113-lts,适用于 Container-Optimized OS 映像项目。
G4 机器类型(预览版):
ubuntu-2404-lts-amd64(针对 Ubuntu 映像项目)。cos-125-lts,适用于 Container-Optimized OS 映像项目。
REST
如需创建标准(按需)或 Spot 虚拟机实例,请发送以下 POST 请求并提供相应的正文内容。
使用以下 HTTP 方法和网址:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
使用以下请求 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"
}
]
}
请提供以下值:
PROJECT_ID:可选。要在其中创建虚拟机的项目的 ID。ZONE:要在其中创建虚拟机的支持的可用区。INSTANCE_NAME:新虚拟机实例的名称。MACHINE_TYPE_NAME:虚拟机的机器类型。请从下列选项中选择一项:a3-highgpu-1gg4-standard-48(预览版)
CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请按以下方式之一操作:A3 High 机器类型 (
a3-highgpu-1g):TDXG4 机器类型 (
g4-standard-48):SEV
PROVISIONING_MODEL:机器系列支持的预配模型。请按以下方式之一操作:A3 High 机器类型:对于 Spot 虚拟机实例,为
SPOT。G4 机器类型(预览版):对于标准(按需)虚拟机实例,请使用
STANDARD;对于 Spot 虚拟机实例,请使用SPOT。如果未指定,此值默认为STANDARD。
IMAGE_PROJECT:包含受支持的操作系统映像的项目。请按以下方式之一操作:A3 High 机器类型:对于 Ubuntu 映像,为
ubuntu-os-cloud;对于 Container-Optimized OS 映像,为confidential-vm-images。G4 机器类型(预览版):对于 Ubuntu 映像,请选择
ubuntu-os-cloud;对于 Container-Optimized OS 映像,请选择cos-cloud。
IMAGE_FAMILY:机密虚拟机支持的操作系统映像的系列。请根据您的机器类型选择映像系列:A3 High 机器类型:
ubuntu-2204-lts(针对 Ubuntu 映像项目)。cos-tdx-113-lts,适用于 Container-Optimized OS 映像项目。
G4 机器类型(预览版):
ubuntu-2404-lts-amd64(针对 Ubuntu 映像项目)。cos-125-lts,适用于 Container-Optimized OS 映像项目。
灵活启动模式
如需使用灵活启动模型,请先创建实例模板,然后使用该模板创建托管式实例组 (MIG)。然后,您可以使用调整大小请求将 GPU 虚拟机实例添加到 MIG。
将 MIG 调整大小请求与灵活启动预配模型结合使用可提高 GPU 虚拟机实例的获取率。如需了解详情,请参阅关于调整 MIG 中的请求大小。
准备工作
创建具有 GPU 虚拟机实例的 MIG
如需创建实例模板,然后使用该模板创建 MIG,请完成以下步骤。
创建一个实例模板。
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 \ --reservation-affinity=none \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID请提供以下值:
INSTANCE_TEMPLATE_NAME:新虚拟机实例模板的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请按以下方式之一操作:A3 High 机器类型 (
a3-highgpu-1g):TDXG4 机器类型 (
g4-standard-48):SEV
MACHINE_TYPE_NAME:虚拟机的机器类型。选择下列其中一种方式:a3-highgpu-1gg4-standard-48(预览版)
IMAGE_PROJECT:包含受支持的操作系统映像的项目。请按以下方式之一操作:A3 High 机器类型:对于 Ubuntu 映像,为
ubuntu-os-cloud;对于 Container-Optimized OS 映像,为confidential-vm-images。G4 机器类型(预览版):对于 Ubuntu 映像,请选择
ubuntu-os-cloud;对于 Container-Optimized OS 映像,请选择cos-cloud。
IMAGE_FAMILY_NAME:要使用的机密虚拟机支持的操作系统映像的系列。请根据您的机器类型选择映像系列:A3 High 机器类型:
ubuntu-2204-lts(针对 Ubuntu 映像项目)。cos-tdx-113-lts,适用于 Container-Optimized OS 映像项目。
G4 机器类型(预览版):
ubuntu-2404-lts-amd64(针对 Ubuntu 映像项目)。cos-125-lts,适用于 Container-Optimized OS 映像项目。
RUN_DURATION:您希望请求的虚拟机实例运行的时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,后面分别跟d、h、m和s。例如:6d8h44m。PROJECT_ID:要在其中创建虚拟机的项目的 ID。
REST
如需创建机密虚拟机实例模板,请发送以下 POST 请求并提供相应的正文内容。
使用以下 HTTP 方法和网址:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates使用以下请求 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" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false } }如需启用安全启动,您可以为虚拟机实例启动添加以下对象。
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }请提供以下值:
PROJECT_ID:要在其中创建模板的项目的 ID。REGION:要在其中创建模板的区域。INSTANCE_TEMPLATE_NAME:新虚拟机实例模板的名称。CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的机密计算技术的类型。请按以下方式之一操作:A3 High 机器类型 (
a3-highgpu-1g):TDXG4 机器类型 (
g4-standard-48):SEV
MACHINE_TYPE_NAME:虚拟机的机器类型。选择下列其中一种方式:a3-highgpu-1gg4-standard-48(预览版)
RUN_DURATION_IN_SECONDS:您希望请求的虚拟机实例运行的时长(以秒为单位)。该值必须介于600到604800秒之间。IMAGE_PROJECT:包含受支持的操作系统映像的项目。请按以下方式之一操作:A3 High 机器类型:对于 Ubuntu 映像,为
ubuntu-os-cloud;对于 Container-Optimized OS 映像,为confidential-vm-images。G4 机器类型(预览版):对于 Ubuntu 映像,请选择
ubuntu-os-cloud;对于 Container-Optimized OS 映像,请选择cos-cloud。
IMAGE_FAMILY_NAME:要使用的机密虚拟机支持的操作系统映像的系列。请根据您的机器类型选择映像系列:A3 High 机器类型:
ubuntu-2204-lts(针对 Ubuntu 映像项目)。cos-tdx-113-lts,适用于 Container-Optimized OS 映像项目。
G4 机器类型(预览版):
ubuntu-2404-lts-amd64(针对 Ubuntu 映像项目)。cos-125-lts,适用于 Container-Optimized OS 映像项目。
创建 MIG 和调整大小请求,以便一次性添加所有 GPU 虚拟机实例。
列出 MIG 中的实例。
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID请提供以下值:
INSTANCE_GROUP_NAME:MIG 的名称。ZONE_NAME:要从中获取虚拟机实例列表的支持的可用区。PROJECT_ID:可选。要从中获取虚拟机实例列表的项目的 ID。
REST
如需列出所有模板,请发送以下 GET 请求。
使用以下 HTTP 方法和网址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates如需将实例列表缩小到特定可用区,请发送以下 GET 请求。
使用以下 HTTP 方法和网址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates请提供以下值:
ZONE_NAME:要从中获取虚拟机实例列表的支持的可用区。PROJECT_ID:要从中获取虚拟机实例列表的项目的 ID。
将预留与机密虚拟机实例搭配使用
您可以使用预留来确保您仅有 G4 机器类型(预览版)的机密虚拟机实例有足够的容量。
如需为机密虚拟机实例使用预留,请执行以下操作:
在支持的可用区中创建标准预留。您可以在创建预留时使用
--require-specific-reservation标志来控制实例使用此预留的方式。创建机密虚拟机实例以使用预留。创建虚拟机实例时,请添加
--confidential-compute-type=SEV标志,使其成为机密虚拟机实例。此实例使用预留的方式取决于预留的亲和性设置。
以下示例展示了如何将预留与机密虚拟机实例搭配使用。使用预留的方法取决于预留的创建方式:
自动使用:如果创建预留时未添加
--require-specific-reservation标志,您可以创建具有匹配属性(例如机器类型或可用区)的 G4 机密虚拟机实例,以自动使用该预留。特定使用:如果使用
--require-specific-reservation标志创建预留,则在创建实例时,必须使用--reservation-affinity=specific和--reservation=RESERVATION_NAME标志来指定预留: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_NAME请提供以下值:
INSTANCE_NAME:新虚拟机实例的名称。PROJECT_ID:可选。要在其中创建虚拟机的项目的 ID。ZONE_NAME:要在其中创建虚拟机的支持的可用区。RESERVATION_NAME:预留的名称。
如需了解虚拟机实例如何使用预留以及亲和性如何发挥作用,请参阅使用预留。
在 GPU 上启用机密计算模式
使用 gcloud compute ssh 命令连接到 MIG 中的虚拟机实例。
gcloud compute ssh更新软件包列表并安装必要的工具和库。
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-12在虚拟机实例上安装相应的 GPU 驱动程序。对于已启用安全启动的虚拟机实例,请参阅安装 GPU 驱动程序(安全启动虚拟机)。建议使用 580 或更高版本的 NVIDIA 开源内核模块驱动程序。
如需配置 GPU 与 GPU 驱动程序之间的安全通信,请启用 Linux 内核加密 API (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 -u启用持久模式,以在 GPU 和 GPU 驱动程序之间建立安全的 SPDM 连接。
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-reload重新启动虚拟机实例以应用 LKCA 和持久性模式配置。
sudo reboot使用 gcloud compute ssh 命令连接到 MIG 中的虚拟机实例。
gcloud compute ssh-
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
价格
在预览期间,G4 机器类型上的机密虚拟机实例的额外费用将免费提供。这些费用包括机密计算附加费和 NVIDIA 许可费。底层 Compute Engine 资源(例如 G4 机器类型、GPU 和存储空间)的标准费用仍然适用。这些额外的机密计算费用将在预览期结束时(即正式版 [GA] 发布后)开始收取。如需详细了解价格,请参阅机密虚拟机价格。
后续步骤
了解如何验证是否已在 GPU 上启用机密模式。
详细了解 GPU 配额要求。
如需了解配额用量,请参阅 GPU 虚拟机和抢占式分配配额。