本文档介绍了创建使用 A4 或 A3 Ultra 机器类型的独立虚拟机 (VM) 实例的步骤。如需详细了解这些加速器优化机器类型,请参阅 A4 或 A3 Ultra。
如需了解创建虚拟机或集群的其他方式,请参阅部署选项概览。
限制
创建独立 A4 或 A3 Ultra 虚拟机时,存在以下限制:
A4
- 使用 A4 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A4 机器类型。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- A4 机器类型仅在 Emerald Rapids CPU 平台上提供。
- 您不能将实例的机器类型更改为 A4 机器类型,也不能从 A4 机器类型更改为其他机器类型。您必须使用此机器类型创建新实例。
- A4 机器类型不支持单租户。
- 不能在 A4 机器类型上运行 Windows 操作系统。
- 对于 A4 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。 如需了解详情,请参阅 MRDMA 函数和网络监控工具。 - 您无法将 2026 年 2 月 4 日之前创建的 Hyperdisk ML 磁盘挂接到 A4 机器类型。
A3 Ultra
- 使用 A3 Ultra 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A3 Ultra 机器类型。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- A3 Ultra 机器类型仅在 Emerald Rapids CPU 平台上提供。
- A3 Ultra 机器类型不支持更改机器类型。如需改用或停用此机器类型,您必须创建新的实例。
- 不能在 A3 Ultra 机器类型上运行 Windows 操作系统。
- A3 Ultra 机器类型不支持单租户。
- 对于 A3 Ultra 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。如需了解详情,请参阅 MRDMA 函数和网络监控工具。
准备工作
在创建虚拟机之前,如果您尚未完成以下步骤,请先完成这些步骤:
- 选择使用选项:您选择的使用选项决定了您如何获取和使用 GPU 资源。
如需了解详情,请参阅选择消费选项。
- 获取容量:每种使用选项的容量获取流程各不相同。
如需了解所选使用选项的容量获取流程,请参阅容量概览。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建虚拟机所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建虚拟机需要以下权限:
-
针对项目的
compute.instances.create权限 -
使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly权限 -
使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly权限 -
使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly权限 -
为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use权限 -
为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use权限 -
在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp权限 -
为虚拟机分配旧版网络:针对项目的
compute.networks.use权限 -
使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp权限 -
为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata权限 -
为虚拟机设置标记:针对虚拟机的
compute.instances.setTags权限 -
为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels权限 -
为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount权限 -
为虚拟机创建新磁盘:针对项目的
compute.disks.create权限 -
以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use权限 -
以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly权限
概览
创建采用 A4 或 A3 Ultra 机器类型的实例包括以下步骤:
创建 VPC 网络
如需为 A4 或 A3 Ultra 机器类型设置网络,请为以下网络接口创建三个 VPC 网络:
- 2 个常规 VPC 网络,用于 gVNIC 网络接口 (NIC)。这些接口用于主机到主机的通信。
- CX-7 NIC 需要 1 个采用 RoCE 网络配置文件的 VPC 网络。RoCE VPC 网络需要有 8 个子网,每个 CX-7 NIC 对应一个子网。这些 NIC 使用 RDMA over Converged Ethernet (RoCE),可提供对于 GPU 到 GPU 通信至关重要的高带宽、低延迟通信。
如需详细了解 NIC 配置,请参阅查看网络带宽和 NIC 配置。
您可以按照说明指南手动创建网络,也可以使用提供的脚本自动创建。
说明指南
如需创建网络,您可以按照以下说明操作:
- 如需为 gVNIC 创建常规 VPC 网络,请参阅创建和管理 Virtual Private Cloud 网络。
- 如需创建 RoCE VPC 网络,请参阅为 RDMA NIC 创建 Virtual Private Cloud 网络。
对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。
如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置。
脚本
如需创建网络,请按照以下步骤操作。
对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。
如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置。
使用以下脚本为 gVNIC 和 CX-7 NIC 创建 VPC 网络。
#!/bin/bash # Create regular VPC networks and subnets for the gVNICs for N in $(seq 0 1); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom \ --mtu=8896 gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --region=REGION \ --range=10.$N.0.0/16 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 done # Create SSH firewall rules gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=IP_RANGE # Assumes that an external IP is only created for vNIC 0 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=icmp \ --source-ranges=IP_RANGE # List and make sure network profiles exist in the machine type's zone gcloud compute network-profiles list --filter "location.name=ZONE" # Create network for CX-7 gcloud compute networks create RDMA_NAME_PREFIX-mrdma \ --network-profile=ZONE-vpc-roce \ --subnet-mode custom \ --mtu=8896 # Create subnets for N in $(seq 0 7); do gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \ --network=RDMA_NAME_PREFIX-mrdma \ --region=REGION \ --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs done替换以下内容:
GVNIC_NAME_PREFIX:用于 gVNIC 的常规 VPC 网络和子网的自定义名称前缀。RDMA_NAME_PREFIX:用于 CX-7 NIC 的 RoCE VPC 网络和子网的自定义名称前缀。ZONE:指定提供您要使用的机器类型的可用区,例如us-central1-a。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。REGION:您想要在其中创建子网的区域。此区域必须与指定的可用区相对应。例如,如果可用区为us-central1-a,则区域为us-central1。IP_RANGE:用于 SSH 防火墙规则的 IP 范围。
- 可选:如需验证 VPC 网络资源是否已成功创建,请在 Google Cloud 控制台中检查网络设置:
- 在 Google Cloud 控制台中,前往 VPC 网络页面。
- 在列表中搜索您在上一步中创建的网络。
- 如需查看子网、防火墙规则和其他网络设置,请点击网络的名称。
可选:创建紧凑布置政策
您可以通过创建紧凑布置政策来指定虚拟机布置。当您将紧凑布置政策应用于虚拟机时,Compute Engine 会尽力尝试创建尽可能彼此靠近的虚拟机。如果您的应用对延迟时间敏感,并且您希望虚拟机布置得更靠近(紧凑性最大),请在创建紧凑布置政策时指定 maxDistance 字段(预览版)。maxDistance 值越小,虚拟机之间的距离就越近;但如果对应位置空间不足,这也会增加部分虚拟机创建失败的概率。
gcloud
如需创建紧凑布置政策,请使用
gcloud beta compute resource-policies create group-placement 命令:
gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--max-distance=MAX_DISTANCE \
--region=REGION
替换以下内容:
POLICY_NAME:紧凑布置政策的名称。MAX_DISTANCE:虚拟机的最大距离配置。该值必须为3(用于将虚拟机布置在相邻的块中)或2(用于将虚拟机布置在同一块中)。如需了解每种机器系列支持的每个maxDistance的虚拟机数量上限,请参阅 Compute Engine 文档中的紧凑布置政策简介。REGION:要用于创建紧凑布置政策的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。
REST
如需创建紧凑布置政策,请向 Beta 版 resourcePolicies.insert 方法发出 POST 请求。
在请求正文中,添加设置为 COLLOCATED 的 collocation 字段和 maxDistance 字段。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": MAX_DISTANCE
}
}
替换以下内容:
PROJECT_ID:您的项目 IDPOLICY_NAME:紧凑布置政策的名称。MAX_DISTANCE:虚拟机的最大距离配置。该值必须为3(用于将虚拟机布置在相邻的块中)或2(用于将虚拟机布置在同一块中)。如需了解每种机器系列支持的每个maxDistance的虚拟机数量上限,请参阅 Compute Engine 文档中的紧凑布置政策简介。REGION:要用于创建紧凑布置政策的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。
创建 A4 或 A3 Ultra 虚拟机
如需创建 A4 或 A3 Ultra 虚拟机,请使用以下方法之一。如果您选择使用紧凑放置政策,则必须使用 Google Cloud CLI 或 REST 来创建虚拟机。
以下命令还会设置实例的访问权限范围。为了简化权限管理,Google 建议您将实例的访问权限范围设置为cloud-platform 访问权限,然后使用 IAM 角色定义实例可以访问哪些服务。如需了解详情,请参阅范围最佳实践。
控制台
在 Google Cloud 控制台中,前往创建实例页面。
为您的虚拟机指定名称。请参阅资源命名惯例。
选择要预留容量的区域和可用区。查看可用的 GPU 区域和可用区列表。
点击 GPU 标签页,然后完成以下步骤:
- 在 GPU 类型列表中,选择您的 GPU 类型。
- 对于 A4 虚拟机,请选择
NVIDIA B200 180GB - 对于 A3 Ultra 虚拟机,请选择
NVIDIA H200 141GB
- 对于 A4 虚拟机,请选择
- 在 GPU 数量列表中,选择
8。
- 在 GPU 类型列表中,选择您的 GPU 类型。
在导航菜单中,点击操作系统和存储空间,然后完成以下步骤:
- 点击更改。 系统会打开启动磁盘配置窗格。
- 在公共映像标签页中,选择推荐的映像。如需查看推荐映像的列表,请参阅操作系统。
- 如需确认您的启动磁盘选项,请点击选择。
按如下方式配置服务账号和访问权限范围。在实例上运行的工作负载使用关联的服务账号来授权对其他 Google Cloud 服务的请求。
- 在导航菜单中,点击安全。
- 在服务账号列表中,选择要使用的服务账号。
- 对于访问权限范围,选择授予对所有 Cloud API 的完整访问权限选项。建议采用此最佳实践,因为这样一来,您就可以通过向服务账号添加或从中移除 IAM 角色来管理访问权限。如需了解详情,请参阅将服务账号关联到实例。
如需创建多 NIC 虚拟机,请完成以下步骤。否则,如需创建单 NIC 虚拟机,请跳过这些步骤。
在导航菜单中,点击网络。
在网络接口部分中,完成以下步骤:
- 删除默认网络接口。如需删除该接口,请点击 删除。
- 点击添加网络接口。使用此选项添加连接到您在上一部分中创建的 VPC 网络的网络接口。添加网络接口时,请注意以下事项:
- 对于用于主机到主机通信的网络接口,请从网络和子网列表中选择常规 VPC 网络和子网,并将网络接口卡列表设置为 gVNIC。
- 对于用于 GPU 到 GPU 通信的网络接口,请从网络和子网列表中选择 RoCE VPC 网络和子网,并将这些网络接口的网络接口卡列表设置为 MRDMA。
在导航菜单中,点击高级。然后,根据您要使用的配置模型完成以下步骤
灵活启动
- 在预配模型部分中,从虚拟机预配模型列表中选择灵活启动。
在输入小时数中,输入您希望虚拟机运行的最长时间。该值必须介于 46 秒 (
0.01) 和 7 天(168,即 168 小时)之间。选择设置虚拟机创建等待时间。
根据工作负载的可用区要求,指定以下时长之一,以提高虚拟机创建请求的成功率:
- 对地区有严格要求的工作负载:如果您的工作负载要求您在特定地区创建虚拟机,请指定介于 90 秒和 2 小时之间的时长。持续时间越长,获得资源的机会就越大。
- 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,请指定 0 秒的持续时间,或清除设置虚拟机创建等待时间复选框。此操作指定 Compute Engine 仅在资源可立即使用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。
在虚拟机终止时字段中,选择在虚拟机的运行时长结束时是停止还是删除虚拟机:
- 如需删除虚拟机,请选择删除。
- 如需停止虚拟机,请选择停止。
受预留约束
点击选择预留。此操作会打开一个窗格,其中列出了所选可用区内的可用预留。在预订列表中,完成以下步骤:
- 选择要用于虚拟机的预留。您还可以选择预留中的特定区块。
- 点击选择。
Spot
- 在预配模型部分中,从虚拟机预配模型列表中选择 Spot。
可选:如需选择 Compute Engine 抢占虚拟机时发生的终止操作,请完成以下步骤:
- 展开虚拟机预配模型高级设置部分。
- 在虚拟机终止时列表中,选择以下选项之一:
- 如需在抢占期间停止虚拟机,请选择停止(默认)。
- 如需在抢占期间删除虚拟机,请选择删除。
要创建并启动该虚拟机,请点击创建。
gcloud
如需创建虚拟机,请使用 gcloud compute instances create 命令。
您需要指定的参数取决于您为此部署使用的消费选项。选择与您的使用选项的配置模式对应的标签页。
灵活启动
gcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--scopes=cloud-platform \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
--reservation-affinity=none \
--provisioning-model=FLEX_START \
--request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
--max-run-duration=MAX_RUN_DURATION \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE
替换以下内容:
VM_NAME:虚拟机的名称。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。IMAGE_PROJECT:操作系统映像的项目 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。REQUEST_VALID_FOR_DURATION:创建虚拟机的请求保持有效的时间。您必须将该值的格式设置为天数、小时数、分钟数或秒数,并分别添加对应的后缀d、h、m或s。例如,指定30m表示 30 分钟,或指定1h2m3s表示 1 小时 2 分钟 3 秒。根据工作负载的可用区要求,指定以下时长之一,以提高虚拟机创建请求的成功率:
- 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒 (
90s) 到 2 小时 (2h) 之间的时长。时长越长,获得资源的机会就越大。 - 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,则指定时长为零秒 (
0s)。此操作指定 Compute Engine 仅在资源立即可用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。
- 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒 (
MAX_RUN_DURATION:您希望请求的虚拟机运行的时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,并分别添加对应的后缀d、h、m或s。该值必须介于 10 分钟到 7 天之间。TERMINATION_ACTION:指示在运行时长结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。
受预留约束
在运行该命令之前,您可以选择添加紧凑布置政策的标志。
gcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--scopes=cloud-platform \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
--reservation-affinity=specific \
--reservation=RESERVATION \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--restart-on-failure
请完成以下步骤:
-
替换以下内容:
VM_NAME:虚拟机的名称。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。IMAGE_PROJECT:操作系统映像的项目 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。-
RESERVATION:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:如需在任意块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
此外,如需在同一块中创建多个实例,请在创建每个实例时应用相同的紧凑布置政策,该政策指定了块共置 (
maxDistance=2)。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。如需在特定块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。
-
可选:如果您选择使用紧凑布置政策,请向命令添加以下标志:
--resource-policies=POLICY_NAME
替换以下内容:
POLICY_NAME:紧凑布置政策的名称。
- 运行以上命令。
Spot
在运行该命令之前,您可以选择添加紧凑布置政策的标志。
gcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--scopes=cloud-platform \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
--provisioning-model=SPOT \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--no-restart-on-failure
请完成以下步骤:
-
替换以下内容:
VM_NAME:虚拟机的名称。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。IMAGE_PROJECT:操作系统映像的项目 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP[默认] 或DELETE)。
-
可选:如果您选择使用紧凑布置政策,请向命令添加以下标志:
--resource-policies=POLICY_NAME
替换以下内容:
POLICY_NAME:紧凑布置政策的名称。
- 运行以上命令。
REST
如需创建虚拟机,请向 instances.insert 方法发出 POST 请求。
您需要指定的参数取决于您为此部署使用的消费选项。选择与您的使用选项的配置模式对应的标签页。
灵活启动
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"name": "VM_NAME",
"disks":[
{
"boot":true,
"initializeParams":{
"diskSizeGb": "DISK_SIZE",
"diskType": "hyperdisk-balanced",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"serviceAccounts": [
{
"email": "default",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
}
],
"reservationAffinity":{
"consumeReservationType": "NO_RESERVATION",
},
"scheduling":{
"provisioningModel": "FLEX_START",
"requestValidForDuration": {
"seconds": REQUEST_VALID_FOR_DURATION
},
"maxRunDuration": {
"seconds": MAX_RUN_DURATION
},
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
}
}
替换以下内容:
PROJECT_ID:您要在其中创建虚拟机的项目的 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。VM_NAME:虚拟机的名称。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。IMAGE_PROJECT:操作系统映像的项目 ID。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。NETWORK_PROJECT_ID:网络的项目 ID。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。REGION:子网所在的区域。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。REQUEST_VALID_FOR_DURATION:创建虚拟机的请求保持有效的时长(以秒为单位)。根据工作负载的可用区要求,指定以下时长之一,以提高虚拟机创建请求的成功率:
- 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒 (
90) 到 2 小时 (7200) 之间的时长。时长越长,获得资源的机会就越大。 - 对可用区没有严格要求的工作负载:如果虚拟机可以在区域内的任何可用区中运行,则指定时长为零秒 (
0)。此操作指定 Compute Engine 仅在资源立即可用时才分配资源。如果虚拟机创建请求因资源不可用而失败,请在其他可用区中重试该请求。
- 对可用区有严格要求的工作负载:如果您的工作负载要求您在特定可用区中创建虚拟机,请指定 90 秒 (
MAX_RUN_DURATION:您希望请求的虚拟机运行的时长。您必须将该值格式化为秒数。例如,指定86400表示 86,400 秒(24 小时)。该值必须介于 10 分钟到 7 天之间。TERMINATION_ACTION:指示在运行时长结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。
受预留约束
在提交请求之前,您可以选择向请求正文添加紧凑布置政策的字段。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"name": "VM_NAME",
"disks":[
{
"boot":true,
"initializeParams":{
"diskSizeGb": "DISK_SIZE",
"diskType": "hyperdisk-balanced",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"serviceAccounts": [
{
"email": "default",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
}
],
"reservationAffinity":{
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values":[
"RESERVATION"
]
},
"scheduling":{
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": true
}
}
请完成以下步骤:
-
替换以下内容:
PROJECT_ID:您要在其中创建虚拟机的项目的 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。VM_NAME:虚拟机的名称。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。IMAGE_PROJECT:操作系统映像的项目 ID。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。NETWORK_PROJECT_ID:网络的项目 ID。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。REGION:子网所在的区域。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。-
RESERVATION:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:如需在任意块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
此外,如需在同一块中创建多个实例,请在创建每个实例时应用相同的紧凑布置政策,该政策指定了块共置 (
maxDistance=2)。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。如需在特定块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。
-
可选:如果您选择使用紧凑布置政策,请将以下字段添加到请求正文中:
"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]替换以下内容:
PROJECT_ID:紧凑布置政策的项目 ID。REGION:紧凑布置政策所在的区域。POLICY_NAME:紧凑布置政策的名称。
- 提交请求。
Spot
在提交请求之前,您可以选择向请求正文添加紧凑布置政策的字段。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"name": "VM_NAME",
"disks":[
{
"boot":true,
"initializeParams":{
"diskSizeGb": "DISK_SIZE",
"diskType": "hyperdisk-balanced",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"serviceAccounts": [
{
"email": "default",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
}
],
"scheduling":
{
"provisioningModel": "SPOT",
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": false
}
}
请完成以下步骤:
-
替换以下内容:
PROJECT_ID:您要在其中创建虚拟机的项目的 ID。ZONE:您要使用的机器类型在其中可用的可用区。如果您要指定紧凑布置政策,则必须使用与紧凑布置政策位于同一区域的可用区。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。MACHINE_TYPE:要用于虚拟机的机器类型。 如需了解详情,请参阅 GPU 机器类型。VM_NAME:虚拟机的名称。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。IMAGE_PROJECT:操作系统映像的项目 ID。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅操作系统详细信息。NETWORK_PROJECT_ID:网络的项目 ID。GVNIC_NAME_PREFIX:您在创建使用 gVNIC 的标准 VPC 网络和子网时指定的名称前缀。REGION:子网所在的区域。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP[默认] 或DELETE)。
-
可选:如果您选择使用紧凑布置政策,请将以下字段添加到请求正文中:
"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]替换以下内容:
PROJECT_ID:紧凑布置政策的项目 ID。REGION:紧凑布置政策所在的区域。POLICY_NAME:紧凑布置政策的名称。
- 提交请求。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-02-24。