本文档介绍了如何批量创建大量相同且独立的高性能计算 (HPC) 虚拟机 (VM) 实例。这些实例使用 H4D HPC 优化机器类型,并在预留的容量块上运行。
如需详细了解如何批量创建虚拟机,请参阅虚拟机批量创建简介。如需批量创建不使用预留的实例以获得增强的集群管理功能,请改为参阅批量创建虚拟机。
如需了解创建紧密耦合的大型 H4D 虚拟机集群的其他方法,请参阅 HPC 集群创建概览页面。
准备工作
选择使用选项:如需批量创建计算实例并启用增强型集群管理功能,您可以选择日历模式下的未来预留或 Spot 虚拟机。
如果您选择使用 Spot 虚拟机,则这些虚拟机可能不会紧凑地共置。此外,Spot 虚拟机可以根据需要被抢占,并且不符合管理一组虚拟机的主机维护事件的条件。
获取容量:每种使用选项的容量获取流程各不相同。
如需了解详情,请参阅选择使用选项并获取容量。
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
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
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得批量创建虚拟机所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
Compute Network Admin (
roles/compute.networkAdmin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含批量创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
批量创建虚拟机需要以下权限:
-
针对项目的
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权限
概览
使用 H4D 机器类型批量创建 HPC 实例的步骤如下:
- 可选:创建 Virtual Private Cloud 网络。
- 可选:如果您不是在同一块或子块上创建计算实例,请创建布置政策。
- 批量创建 H4D 实例。
可选:创建 Virtual Private Cloud 网络
创建计算实例时,您可以指定 VPC 网络和子网。如果省略此配置,则系统会使用默认网络和子网。
- 如果您要将 MIG 中的 H4D 实例配置为使用 Cloud RDMA,请完成本部分中的步骤。
- 如果您不想使用 Cloud RDMA,可以跳过本部分,改为使用默认网络。
如需将 Cloud RDMA 与 H4D 实例搭配使用,您必须至少配置两个网络,每个网络接口 (NIC) 类型对应一个网络:
- NIC 类型
GVNIC:使用gve驱动程序处理 TCP/IP 和网络流量,以实现正常的虚拟机间和虚拟机到网络的通信。 - NIC 类型
IRDMA:使用 IDPF/iRDMA 驱动程序在实例之间实现 Cloud RDMA 网络通信。
使用 Cloud RDMA 的实例只能有一个
IRDMA接口。您最多可以添加 8 个额外的GVNIC网络接口,使每个实例的总 vNIC 数达到 10 个。如需设置要与实例搭配使用的 Falcon VPC 网络,您可以按照文档中的说明操作,也可以使用提供的脚本。
说明指南
如需创建网络,您可以按照以下说明操作:
如需为
GVNIC网络接口创建主机网络,请参阅创建和管理 VPC 网络。如果您仅配置一个
GVNIC网络接口,则可以使用默认 VPC 网络以及与实例位于同一区域的自动子网。如需为
IRDMA网络接口创建网络,请参阅创建使用 Falcon VPC 网络配置文件的 VPC 网络。 为 Falcon VPC 网络使用最大传输单元 (MTU) 的默认值,即8896。
脚本
您最多可以为每个实例创建 9 个 gVNIC 网络接口和 1 个 IRDMA 网络接口。每个网络接口都必须连接到单独的网络。如需创建网络,您可以使用以下脚本,该脚本会为 gVNIC 创建两个网络并为 IRDMA 创建一个网络。
- 可选:在运行脚本之前,列出 Falcon VPC 网络配置文件,以验证是否有可用的配置文件。
gcloud compute network-profiles list
复制以下代码,然后在 Linux shell 窗口中运行该代码。
#!/bin/bash # Set the number of GVNIC interfaces to create. You can create up to 9. NUM_GVNIC=NUMBER_OF_GVNIC # Create regular VPC networks and subnets for the GVNIC interfaces for N in $(seq 0 $(($NUM_GVNIC - 1))); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom 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 # Optional: Create a firewall rule for the external IP address for the # first GVNIC network interface 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 # Create a Falcon VPC network for the Cloud RDMA network interface gcloud compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create a subnet in the Falcon VPC network gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.2.0.0/16 # offset to avoid overlap with GVNIC subnet ranges替换以下内容:
NUMBER_OF_GVNIC:要创建的 GVNIC 接口的数量。 指定一个 1 到 9 之间的数字。GVNIC_NAME_PREFIX:用于使用 GVNIC NIC 类型的常规 VPC 网络和子网的名称前缀。REGION:要在其中创建网络的区域。此区域必须与创建 Falcon VPC 网络时为--network-profile标志指定的可用区对应。 例如,如果您将可用区指定为europe-west4-b,则区域为europe-west4。IP_RANGE:VPC 网络外部用于 SSH 防火墙规则的 IP 地址范围。 最佳实践是指定您需要允许访问的特定来源 IP 地址范围,而不是所有 IPv4 或 IPv6 来源。 请勿使用0.0.0.0/0或::/0作为来源范围,因为这会允许来自所有 IPv4 或 IPv6 来源(包括 Google Cloud外部的来源)的流量。RDMA_NAME_PREFIX:用于使用 IRDMA NIC 类型的 VPC 网络和子网的名称前缀。ZONE:您要在其中创建网络和计算实例的可用区。请使用us-central1-a或europe-west4-b。
可选:如需验证 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替换以下内容:
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 } }替换以下内容:
批量创建虚拟机实例
本部分中的说明介绍了如何批量创建 H4D 虚拟机。
在创建具有 Cloud RDMA 的 H4D 实例之前,请查看以下限制:
- 对于具有 Cloud RDMA 网络接口的实例,您无法在主机维护事件期间使用实时迁移。您必须将实例配置为在维护事件期间终止。
- gVNIC 网络接口只能有一个 IPv6 地址(内部或外部),但不能同时具有这两者。
您只能将 IPv4 地址与 IRDMA 网络接口和 Falcon VPC 网络搭配使用。
gcloud
如需批量创建虚拟机,请使用
gcloud compute instances create命令。您需要指定的参数取决于您为此部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
首先运行以下
gcloud compute instances create命令。gcloud compute instances bulk create \ --name-pattern=NAME_PATTERN \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image=project= IMAGE_PROJECT \ --instance-termination=action=DELETE \ --maintenance-policy=TERMINATE \ --region=REGION \ --boot-disk-type=hyperdisk-balanced \ --boot-disk-size=DISK_SIZE请完成以下步骤:
替换以下内容:
NAME_PATTERN:实例的名称格式。 例如,将vm-#用于名称模式会生成名称为vm-1、vm-2等依次递增的实例,数量最多为--count标志指定的数量。COUNT:要创建的实例数量。MACHINE_TYPE:用于实例的机器类型。 使用 H4D 机器类型之一,例如h4d-highmem-192-lssd。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如rocky-linux-9-optimized-gcp。如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。
IMAGE_PROJECT:操作系统映像的项目 ID,例如rocky-linux-cloud。REGION:指定提供您要使用的机器类型的区域,例如europe-west4。如需了解可用区域,请参阅可用区域和可用区。DISK_SIZE(可选):启动磁盘的大小(以 GiB 为单位)。该值必须是整数。
可选:如果您选择使用紧凑布置政策,请添加
--resource-policies标志:--resource-policies=POLICY_NAME将 POLICY_NAME 替换为紧凑布置政策的名称。
如需指定预留,请执行以下操作之一:
-
如果您使用的是布置政策,或者虚拟机可以布置在预留块中的任何位置,请向命令添加以下标志:
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME \将 RESERVATION_NAME 替换为预留的名称,例如
h4d-highmem-exfr-prod。 -
如果您未使用紧凑布置政策,但希望将实例布置在特定块中,请向命令添加以下标志:
--provisioning-model=RESERVATION_BOUND \ --reservation-affinity=specific \ --reservation=<RESERVATION_BLOCK_NAME \将 RESERVATION_BLOCK_NAME 替换为预留中的某个块的名称,例如
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1。
如需查看预留名称或可用预留块,请参阅查看容量。
-
-
可选:如需将实例配置为使用 Cloud RDMA,请向命令添加类似于以下内容的标志。此示例配置了两个 GVNIC 网络接口和一个 IRDMA 网络接口:
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \替换以下内容:
GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀。对于第一个 GVNIC 网络接口,您可以省略
network和subnet标志,改为使用default网络。STACK_TYPE(可选):GVNIC 网络接口的栈类型。STACK_TYPE必须是IPV4_ONLY或IPV4_IPV6中的一个。默认值为IPV4_ONLY。EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。 执行以下任一操作:- 指定子网中的有效 IPv4 地址。
- 如果您不希望网络接口具有外部 IP 地址,请改用
no-address标志。 - 如果您希望接口接收临时外部 IP 地址,请指定
address=''。
如需指定外部 IPv6 地址,请改用
--external-ipv6-address标志。RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。
- 可选:根据需要添加其他标志,以自定义其余的实例属性。
- 运行以上命令。
Spot
首先运行以下
gcloud compute instances create命令。gcloud compute instances bulk create \ --name-pattern=NAME_PATTERN \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image=project= IMAGE_PROJECT \ --region=REGION \ --boot-disk-type=hyperdisk-balanced \ --boot-disk-size=DISK_SIZE \ --provisioning-model=SPOT \ --instance-termination=action=TERMINATION_ACTION请完成以下步骤:
替换以下内容:
NAME_PATTERN:实例的名称格式。 例如,将vm-#用于名称模式会生成名称为vm-1、vm-2等依次递增的实例,数量最多为--count标志指定的数量。COUNT:要创建的实例数量。MACHINE_TYPE:用于实例的机器类型。 使用 H4D 机器类型之一,例如h4d-highmem-192-lssd。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如rocky-linux-9-optimized-gcp。如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。
IMAGE_PROJECT:操作系统映像的项目 ID,例如rocky-linux-cloud。REGION:指定提供您要使用的机器类型的区域,例如europe-west4。如需了解可用区域,请参阅可用区域和可用区。DISK_SIZE(可选):启动磁盘的大小(以 GiB 为单位)。该值必须是整数。TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP[默认] 或DELETE)。
-
可选:如果您选择使用紧凑布置政策,请向命令添加以下标志:
--resource-policies=POLICY_NAME \将
POLICY_NAME替换为紧凑布置政策的名称。 -
可选:如需将实例配置为使用 Cloud RDMA,请向命令添加类似于以下内容的标志。此示例配置了两个 GVNIC 网络接口和一个 IRDMA 网络接口:
--network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-0, \ subnet=GVNIC_NAME_PREFIX-sub-0, \ stack-type=STACK_TYPE, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface=nic-type=GVNIC, \ network=GVNIC_NAME_PREFIX-net-1, \ subnet=GVNIC_NAME_PREFIX-sub-1, no-address \ --network-interface=nic-type=IRDMA, \ network=RDMA_NAME_PREFIX-irdma, \ subnet=RDMA_NAME_PREFIX-irdma-sub, \ stack-type=IPV4_ONLY, no-address \替换以下内容:
GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀。对于第一个 GVNIC 网络接口,您可以省略
network和subnet标志,改为使用default网络。STACK_TYPE(可选):GVNIC 网络接口的栈类型。STACK_TYPE必须是IPV4_ONLY或IPV4_IPV6中的一个。默认值为IPV4_ONLY。EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。 执行以下任一操作:- 指定子网中的有效 IPv4 地址。
- 如果您不希望网络接口具有外部 IP 地址,请改用
no-address标志。 - 如果您希望接口接收临时外部 IP 地址,请指定
address=''。
如需指定外部 IPv6 地址,请改用
--external-ipv6-address标志。RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。
- 可选:根据需要添加其他标志,以自定义其余的实例属性。
- 运行以上命令。
REST
如需批量创建虚拟机实例,请向
instances.bulkInsert方法发出POST请求您需要指定的参数取决于您为此部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
首先,向
instances.bulkInsert方法发送以下POST请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "namePattern":"NAME_PATTERN", "count":"COUNT", "instanceProperties":{ "machineType":"MACHINE_TYPE", "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "scheduling":{ "provisioningModel":"RESERVATION_BOUND", "instanceTerminationAction":"DELETE", "onHostMaintenance": "TERMINATE", "automaticRestart":true } } }请完成以下步骤:
替换以下内容:
PROJECT_ID:您要在其中创建实例的项目的 ID。ZONE:指定提供您要使用的机器类型的可用区。如果您使用的是紧凑布置政策,请使用与该政策位于同一区域的可用区。如需了解提供 H4D 机器类型的区域,请参阅可用区域和可用区。NAME_PATTERN:实例的名称格式。 例如,将vm-#用于名称模式会生成名称为vm-1、vm-2等依次递增的实例,数量最多为count字段指定的数量。COUNT:要创建的实例数量。MACHINE_TYPE:用于实例的机器类型。 使用 H4D 机器类型之一,例如h4d-highmem-192-lssd。DISK_SIZE:启动磁盘的大小(以 GiB 为单位)。IMAGE_PROJECT:操作系统映像的项目 ID,例如debian-cloud。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如rocky-linux-9-optimized-gcp。 如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。
可选:如果您选择使用紧凑布置政策,请在请求正文中添加
resourcePolicies参数,作为"instanceProperties"参数的一部分。"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],将 POLICY_NAME 替换为紧凑布置政策的名称。
-
如需指定预留,请执行以下操作之一:
-
如果您使用的是布置政策,或者虚拟机可以布置在预留块中的任何位置,请将以下内容添加到请求正文中,作为
"instanceProperties"参数的一部分:"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_NAME" ], },将 RESERVATION_NAME 替换为预留的名称,例如
h4d-highmem-exfr-prod。 -
如果您未使用紧凑布置政策,或者希望将实例布置在特定块中,请将以下内容作为
"instanceProperties"参数的一部分添加到请求正文中:"reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION_BLOCK_NAME" ], },将 RESERVATION_BLOCK_NAME 替换为预留中的某个块的名称,例如
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1。
如需查看预留名称或可用预留块,请参阅查看容量。
-
如果您想将实例配置为使用 Cloud RDMA,请在请求正文中添加一个类似于以下内容的参数块,作为
"instanceProperties"参数的一部分。此示例配置了两个 GVNIC 网络接口和一个 IRDMA 网络接口:"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],替换以下内容:
GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀。对于 GVNIC 网络接口,您可以省略
network和subnetwork字段,改为使用default网络。EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。
- 可选:根据需要自定义其余的实例属性。
- 提交请求。
Spot
首先,向
instances.bulkInsert方法发送以下POST请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "namePattern":"NAME_PATTERN", "count":"COUNT", "instanceProperties":{ "machineType":"MACHINE_TYPE", "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "scheduling":{ "provisioningModel":"SPOT", "instanceTerminationAction":"TERMINATION_ACTION" } } }请完成以下步骤:
替换以下内容:
PROJECT_ID:您要在其中创建实例的项目的 ID。ZONE:指定提供您要使用的机器类型的可用区。如果您使用的是紧凑布置政策,请使用与该政策位于同一区域的可用区。如需了解提供 H4D 机器类型的区域,请参阅可用区域和可用区。NAME_PATTERN:实例的名称格式。 例如,将vm-#用于名称模式会生成名称为vm-1、vm-2等依次递增的实例,数量最多为count字段指定的数量。COUNT:要创建的实例数量。MACHINE_TYPE:用于实例的机器类型。 使用 H4D 机器类型之一,例如h4d-highmem-192-lssd。DISK_SIZE:启动磁盘的大小(以 GiB 为单位)。IMAGE_PROJECT:操作系统映像的项目 ID,例如debian-cloud。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如rocky-linux-9-optimized-gcp。 如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP[默认] 或DELETE)。
可选:如果您选择使用紧凑布置政策,请将
resourcePolicies参数作为"instanceProperties"参数的一部分包含在内。"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]如果您想将实例配置为使用 Cloud RDMA,请在请求正文中添加一个类似于以下内容的参数块,作为
"instanceProperties"参数的一部分。此示例配置了两个 GVNIC 网络接口和一个 IRDMA 网络接口:"networkInterfaces": [ { "network": "GVNIC_NAME_PREFIX-net-0", "subnetwork": "GVNIC_NAME_PREFIX-sub-0", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "GVNIC_NAME_PREFIX-net-1", "subnetwork": "GVNIC_NAME_PREFIX-sub-1", "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NAME_PREFIX-irdma", "subnetwork": "RDMA_NAME_PREFIX-irdma-sub", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ],替换以下内容:
GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀。对于 GVNIC 网络接口,您可以省略
network和subnetwork字段,改为使用default网络。EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。
- 可选:根据需要自定义其余的实例属性。
- 提交请求。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-12-02。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-12-02。"],[],[]] -