本教程介绍了如何创建使用 H4D 机器类型的代管式实例组 (MIG)。MIG 使用受预留约束的预配模型来获取计算资源。
创建 MIG 后,您可以将多个虚拟机 (VM) 作为单个实体进行管理。在 MIG 中,每个虚拟机均基于一个实例模板。通过自动管理组中的虚拟机,MIG 可提供高可用性和可伸缩性。如需详细了解 MIG,请参阅托管式实例组。
如需了解 HPC 虚拟机和 HPC 集群创建选项,请参阅 HPC 集群创建概览。
本教程适用于 HPC 工程师、平台管理员和运维人员,以及对创建一组互连的 HPC 实例来运行工作负载感兴趣的数据和 MPI 专家。生成的实例不使用编排器进行实例管理或作业调度。
如果您想创建托管式实例组,但不需要创建密集部署的实例,请改为参阅创建托管式实例组 (MIG) 的基本场景。
目标
- 为虚拟机实例预留容量块。
- 可选:创建 Virtual Private Cloud (VPC) 网络。
- 可选:创建工作负载政策。
- 创建一个实例模板。
- 使用以下方法之一创建 MIG:
- 创建具有目标大小的 MIG。
- 创建 MIG 和调整大小请求。
- 清理您创建的资源。
费用
在本文档中,您将使用 Google Cloud的以下收费组件:
如需根据您的预计使用量来估算费用,请使用价格计算器。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1,roles/compute.networkAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
请按照 AI Hypercomputer 文档中的流程通过联系您的客户团队来预留容量。在未来的预留请求中,请按照文档中的说明提供信息,但以下情况除外:
- 机器类型:指定 H4D 机器类型
h4d-highmem-192-lssd
。 - 可用区:指定 可用区域和可用区表中记录的提供 H4D 实例的可用区之一。如需仅显示 H4D 的可用区,请在选择机器系列列表中选择
H4D
。 - 维护安排类型:对于 H4D 实例,您可以指定
GROUPED
或INDEPENDENT
。 - 预留资源运行模式:对于 H4D 实例,请指定值
HIGHLY_AVAILABLE_CAPACITY
。
- 机器类型:指定 H4D 机器类型
系统会在交付容量之前自动增加配额。您无需采取任何行动。
创建实例模板时,请指定与预留绑定的预配模型。MIG 中的虚拟机实例是从预留容量中预配的。
- 使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 搜索可用容量并预留资源。
- 系统不会收取任何配额费用,您也无需采取任何行动。
- 创建实例模板时,请指定与预留绑定的预配模型。MIG 中的虚拟机实例是从预留容量中预配的。
- 如果您想将 H4D 实例配置为使用 Cloud RDMA,请完成本部分中的步骤。
- 如果您不想使用 Cloud RDMA,可以跳过此部分,改用默认网络。
- NIC 类型
GVNIC
:使用gve
驱动程序处理 TCP/IP 和互联网流量,以实现正常的虚拟机间和虚拟机与互联网之间的通信。 - NIC 类型
IRDMA
:使用 IDPF/iRDMA 驱动程序在实例之间实现 Cloud RDMA 网络。 如需为
GVNIC
网络接口创建主机网络,请参阅创建和管理 VPC 网络。如果您仅配置一个
GVNIC
网络接口,则可以使用默认 VPC 网络以及与实例位于同一区域的自动子网。如需为
IRDMA
网络接口创建网络,请参阅创建具有 RDMA 网络配置文件的 VPC 网络。 使用 RDMA 网络的最大传输单元 (MTU) 的默认值,即8896
。- 可选:在运行脚本之前,列出 RDMA 网络配置文件以验证是否有可用的配置文件。
gcloud beta 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 standard 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 network for the RDMA over Falcon network interface gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create a subnet for the RDMA network gcloud beta 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
:您希望创建网络的区域。此区域必须与创建 RDMA 网络时为--network-profile
标志指定的可用区相对应。例如,如果您将可用区指定为europe-west4-b
,则您的区域为europe-west4
。IP_RANGE
:VPC 网络之外的 IP 地址范围,用于 SSH 防火墙规则。 最佳实践是指定您需要允许访问的特定来源 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 网络页面。
- 在列表中搜索您在上一步中创建的网络。
- 如需查看子网、防火墙规则和其他网络设置,请点击网络的名称。
-
如需尽力布置虚拟机,请仅在命令中指定
--type=high-throughput
标志:gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \ --type=high-throughput \ --region=REGION
-
如需严格将虚拟机放置在同一位置,请在命令中指定
--max-topology-distance
标志:gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \ --type=high-throughput \ --max-topology-distance=TOPOLOGY_DISTANCE \ --region=REGION
WORKLOAD_POLICY_NAME
:工作负载政策的名称。REGION
:要用于创建工作负载政策的区域。指定您要在其中创建 MIG 且所需机器类型可用的区域。如需了解区域和可用区,请参阅可用区域和可用区。-
如需尽力布置虚拟机,请在请求中仅指定
type
字段,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "WORKLOAD_POLICY_NAME" "workloadPolicy": { "type": "HIGH_THROUGHPUT" } }
-
如需严格将虚拟机放置在同一位置,请在请求中指定
maxTopologyDistance
字段,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "WORKLOAD_POLICY_NAME" "workloadPolicy": { "type": "HIGH_THROUGHPUT", "maxTopologyDistance": "TOPOLOGY_DISTANCE" } }
PROJECT_ID
:您的项目 IDREGION
:要用于创建工作负载政策的区域。 指定您要在其中创建 MIG 且您要使用的机器类型可用的区域。如需了解区域和可用区,请参阅可用区域和可用区。WORKLOAD_POLICY_NAME
:工作负载政策的名称。INSTANCE_TEMPLATE_NAME
:实例模板的名称。MACHINE_TYPE
:要用于实例的 H4D 机器类型。IMAGE_FAMILY
:您要使用的操作系统映像所属的映像系列。如需查看受支持操作系统的列表,请参阅支持的操作系统。IMAGE_PROJECT
:操作系统映像的项目 ID。REGION
:要创建实例模板的区域。 指定您要使用的机器类型所在的区域。DISK_SIZE
:启动磁盘的大小(以 GiB 为单位)。GVNIC_NAME_PREFIX
:您在为 gVNIC 接口创建标准 VPC 网络和子网时使用的名称前缀。如果您使用的是默认网络,请仅添加一个
--network-interface
字段,并将nic-type
字段设置为GVNIC
。此外,还应省略此网络接口的network
和subnetwork
设置。STACK_TYPE
(可选):要用于 gVNIC 接口的栈类型。 请指定IPV4_ONLY
或IPV4_IPV6
。 如果您未指定值,系统会默认使用IPV4_ONLY
。EXTERNAL_IPV4_ADDRESS
(可选):要与 gVNIC 网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。 执行下列其中一项操作:- 指定子网中的有效 IPv4 地址。
- 如果您不希望网络接口具有外部 IP 地址,请使用
no-address
标志。 - 如果您希望网络接口接收临时外部 IP 地址,请指定
address=''
。
如需为 GVNIC 网络接口指定外部 IPv6 地址,请改用
--external-ipv6-address
标志。RDMA_NAME_PREFIX
:您在为 IRDMA 网络接口创建 VPC 网络和子网时使用的名称前缀。如果您未将 Cloud RDMA 与 H4D 实例搭配使用,请省略 IRDMA 接口的
--network-interface
字段。-
RESERVATION
:您要使用的预留的名称。RESERVATION
:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:如需跨块或在单个块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
此外,对于单个块,请通过应用指定块共置 (
maxTopologyDistance=BLOCK
) 的工作负载政策来创建 MIG。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。如需在特定块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
INSTANCE_TEMPLATE_NAME
:实例模板的名称。MACHINE_TYPE
:要用于实例的机器类型。指定 H4D 机器类型。如需了解详情,请参阅 H4D 机器类型。IMAGE_FAMILY
:您要使用的操作系统映像所属的映像系列。 如需查看受支持操作系统的列表,请参阅支持的操作系统。IMAGE_PROJECT
:操作系统映像的项目 ID。REGION
:要创建实例模板的区域。 指定您要使用的机器类型所在的区域。 如需了解区域,请参阅区域和可用区。DISK_SIZE
:启动磁盘的大小(以 GiB 为单位)。GVNIC_NAME_PREFIX
:您在为 gVNIC 接口创建标准 VPC 网络和子网时使用的名称前缀。如果您使用的是默认网络,请仅添加一个
--network-interface
字段,并将nic-type
字段设置为GVNIC
。此外,还应省略此网络接口的network
和subnetwork
设置。EXTERNAL_IPV4_ADDRESS
(可选):要与 gVNIC 网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。如需为 GVNIC 网络接口指定外部 IPv6 地址,请改用
--external-ipv6-address
标志。RDMA_NAME_PREFIX
:您在为 IRDMA 网络接口创建 VPC 网络和子网时使用的名称前缀。如果您未将 Cloud RDMA 与 H4D 实例搭配使用,请省略 IRDMA 接口的
--network-interface
字段。-
RESERVATION
:您要使用的预留的名称。RESERVATION
:预留名称或预留中的特定块。如需获取预留名称或可用块,请参阅查看预留容量。根据您对实例布置的要求,请按以下方式之一操作:如需跨块或在单个块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
此外,对于单个块,请通过应用指定块共置 (
maxTopologyDistance=BLOCK
) 的工作负载政策来创建 MIG。 然后,Compute Engine 会将该政策应用于预留,并在同一块上创建实例。如需在特定块上创建实例,请执行以下操作:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
- 如果您有多个或并行作业可以从任意数量的虚拟机开始,请创建具有目标大小的 MIG。
- 如果您需要同时启动多个虚拟机才能开始作业,或者您的作业需要分布在确切数量的虚拟机实例中,请创建 MIG,然后在 MIG 中创建调整大小请求。
- 如需创建可用区级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=TARGET_SIZE \ --workload-policy=WORKLOAD_POLICY_URL \ --zone=ZONE
- 如需创建区域级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=TARGET_SIZE \ --workload-policy=WORKLOAD_POLICY_URL \ --region=REGION
MIG_NAME
:MIG 的名称。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
TARGET_SIZE
:您希望 MIG 中的虚拟机数量。WORKLOAD_POLICY_URL
:可选:工作负载政策的网址。如果您不想使用工作负载政策,可以移除--workload-policy
标志。ZONE
:您要在其中创建 MIG 的可用区。如果您使用工作负载政策,请在政策的区域内指定一个地区。REGION
:要在其中创建 MIG 的区域。如果您使用工作负载政策,请指定与该政策相同的区域。对于区域级 MIG,您可以使用--zones
标志指定相应区域中的可用区,而不是指定区域。- 如需创建可用区级 MIG,请向
instanceGroupManagers.insert
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": "TARGET_SIZE", "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } }
- 如需创建区域级 MIG,请向
regionInstanceGroupManagers.insert
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": "TARGET_SIZE", "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } }
PROJECT_ID
:项目 ID。ZONE
:您要在其中创建 MIG 的可用区。如果您使用工作负载政策,请指定政策区域内的某个可用区。REGION
:您要在其中创建 MIG 的区域。如果您使用工作负载政策,请指定与该政策相同的区域。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
MIG_NAME
:MIG 的名称。TARGET_SIZE
:您希望 MIG 中的虚拟机数量。WORKLOAD_POLICY_URL
:可选:工作负载政策的网址。如果您不想使用工作负载政策,可以移除resourcePolicies.workloadPolicy
字段。-
如需创建可用区级 MIG 并在其中创建调整大小请求,请执行以下操作:
-
使用
instance-groups managed create
命令创建可用区级 MIG,如下所示。gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --workload-policy=WORKLOAD_POLICY_URL \ --zone=ZONE
-
使用
instance-groups managed resize-requests create
命令在可用区级 MIG 中创建规模调整请求,如下所示:gcloud compute instance-groups managed resize-requests create MIG_NAME \ --resize-request=RESIZE_REQUEST_NAME \ POPULATION_METHOD \ --zone=ZONE
-
-
如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:
-
使用
instance-groups managed create
命令创建区域级 MIG,如下所示。gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --workload-policy=WORKLOAD_POLICY_URL \ --zones=ZONE \ --target-distribution-shape=any-single-zone \ --instance-redistribution-type=none
-
使用 Beta 版
instance-groups managed resize-requests create
命令在区域级 MIG 中创建调整大小请求,如下所示:gcloud beta compute instance-groups managed resize-requests create MIG_NAME \ --resize-request=RESIZE_REQUEST_NAME \ POPULATION_METHOD \ --region=REGION
-
MIG_NAME
:MIG 的名称。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
WORKLOAD_POLICY_URL
:可选:工作负载政策的网址。如果您不想使用工作负载政策,可以移除--workload-policy
标志。ZONE
:您要在其中创建 MIG 的可用区。对于区域级 MIG,您还必须指定可用区。此可用区必须是包含 VPC 网络配置文件的可用区,并且必须是提供相应机器类型的可用区。如需了解详情,请参阅限制。RESIZE_REQUEST_NAME
:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。POPULATION_METHOD
:向 MIG 添加实例的方法。使用以下任一选项:--resize-by=COUNT
:一次性向 MIG 添加指定数量的实例。实例名称是自动生成的。--instances=INSTANCE_NAME_LIST
:一次性将具有指定名称的实例添加到 MIG。将 INSTANCE_NAME_LIST 替换为以英文逗号分隔的实例名称列表。您提供的名称数量决定了要通过此调整大小请求创建的实例数量。
REGION
:MIG 所在的区域。- 如需创建可用区级 MIG 并在其中创建调整大小请求,请执行以下操作:
- 向
instanceGroupManagers.insert
方法发出POST
请求以创建可用区级 MIG,如下所示。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "targetSize": 0, "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } }
- 在可用区级 MIG 中,向
instanceGroupManagerResizeRequests.insert
方法发出POST
请求,以创建调整大小请求,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests { "name": "RESIZE_REQUEST_NAME", POPULATION_METHOD }
- 向
- 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:
- 向
regionInstanceGroupManagers.insert
方法发出POST
请求以创建区域级 MIG,如下所示。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "targetSize": 0, "distributionPolicy": { "targetShape": "ANY_SINGLE_ZONE", "zones": [ { "zone": "projects/PROJECT_ID/zones/ZONE" } ] }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } }
- 向
beta.regionInstanceGroupManagerResizeRequests.insert
方法发出POST
请求,以在区域级 MIG 中创建规模调整请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests { "name": "RESIZE_REQUEST_NAME", POPULATION_METHOD }
- 向
PROJECT_ID
:项目 ID。ZONE
:您要在其中创建 MIG 的可用区。对于区域级 MIG,您还必须指定可用区。此可用区必须是包含 VPC 网络配置文件的可用区,并且必须是提供相应机器类型的可用区。如需了解详情,请参阅限制。REGION
:要在其中创建 MIG 的区域。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
MIG_NAME
:MIG 的名称。WORKLOAD_POLICY_URL
:可选:工作负载政策的网址。如果您不想使用工作负载政策,可以移除resourcePolicies.workloadPolicy
字段。RESIZE_REQUEST_NAME
:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。POPULATION_METHOD
:向 MIG 添加实例的方法。使用以下任一选项:"resizeBy":COUNT
:将 COUNT 替换为要一次性添加到 MIG 的实例数量。实例名称是自动生成的。"instanceNames":INSTANCE_NAME_LIST
:一次性将具有指定名称的实例添加到 MIG。将 INSTANCE_NAME_LIST 替换为以英文逗号分隔的实例名称列表。您提供的名称数量决定了要通过此调整大小请求创建的实例数量。
如果实例模板中磁盘的自动删除状态设置为
False
,则在删除虚拟机实例时,不会自动删除磁盘。您可以使用以下方法之一删除磁盘:控制台
- 在 Google Cloud 控制台中,前往磁盘页面。
选择包含您在本教程中创建的磁盘的行。确保每个磁盘的使用方列为空。
点击
删除,然后点击删除进行确认。
gcloud
使用
gcloud compute disks delete
命令。gcloud compute disks delete DISK_NAME \ --project PROJECT_ID --zone ZONE
替换以下内容:
- DISK_NAME :要删除的磁盘的名称
- PROJECT_ID:包含相应磁盘的项目的 ID
- ZONE:磁盘的可用区
REST
使用
disks.delete
方法删除磁盘。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
替换以下内容:
- PROJECT_ID:包含相应磁盘的项目的 ID
- ZONE:磁盘的可用区
- DISK_NAME :要删除的磁盘的名称
删除网络。
- 详细了解托管式实例组
- 详细了解 Compute Engine 消费选项
- 了解 H4D 机器系列
- 查看、取消或删除调整大小请求
- 排查预留使用问题
预留容量
如需使用本教程中的命令,您必须预留容量,以便在 MIG 中创建实例。
为容量块创建未来预留
此操作可让您预留一定时长的容量块,从您选择的特定日期和时间开始。预留会在集群中预留块或子块容量,从而实现虚拟机实例的密集部署。
如需为密集部署创建未来预留,请按以下流程操作:
无论您是否在整个预留期内使用预留的资源,都需要在整个预留期内付费。如需了解详情,请参阅预留结算。
在日历模式下创建未来预留
如果您需要使用预留容量的时间不超过 90 天,可以使用动态工作负载调度器在日历模式下创建未来预留。如需获取未来预留资源,请按以下流程操作:
无论您是否在整个预留期内使用预留的资源,都需要在整个预留期内付费。如需了解详情,请参阅动态工作负载调度器价格。
可选:创建 VPC 网络
除非您选择停用默认网络,否则每个项目都有一个默认网络,可用于为实例提供网络连接。创建虚拟机时,您可以指定 VPC 网络和子网。如果您省略此配置,则系统会使用默认网络和子网。
H4D 实例可以配置为使用 Cloud RDMA。Cloud RDMA 通过使用 IRDMA 网络驱动程序在 Compute Engine 实例之间支持远程直接内存访问 (RDMA),从而实现低延迟的可靠消息传递功能。
在本教程中:
启用 RDMA 的实例至少需要两个网络接口 (NIC):
使用 Cloud RDMA 的实例只能有一个 IRDMA
接口。您可以添加最多八个额外的 GVNIC
网络接口,使每个实例的总 NIC 数达到 10 个。
如需设置 Falcon VPC 网络以供实例使用,您可以按照文档中的说明操作,也可以使用提供的脚本。
说明指南
如需创建网络,您可以按照以下说明操作:
脚本
每个实例最多可以创建 9 个 GVNIC
网络接口和 1 个 IRDMA
网络接口。每个网络接口都必须连接到单独的网络。如需创建网络,您可以使用以下脚本,该脚本会为 GVNIC
创建两个网络,并为 IRDMA
创建一个网络。
可选:创建工作负载政策
如果您希望 Compute Engine 将虚拟机实例放置在单个块或相邻块中,请通过创建工作负载政策来指定实例放置位置。不过,如果您希望 Compute Engine 将实例放置在特定块中,请跳过此步骤,并在创建实例模板时在预留亲和性中提供块的名称。
如果您已有工作负载政策,可以重复使用。当您将工作负载政策应用于 MIG 时,Compute Engine 会尽力尝试创建尽可能彼此靠近的实例。如果您的应用对延迟时间敏感,并且您希望实例布置得更靠近(紧凑性最大),请在创建工作负载政策时指定 maxTopologyDistance
字段。
工作负载政策创建后无法更新。如需更改工作负载政策,您必须创建新的政策。
如需创建工作负载政策,请选择以下选项之一:
gcloud
如需创建工作负载政策,请使用
gcloud compute resource-policies create workload-policy
命令。
替换以下内容:
REST
如需创建工作负载政策,请向 resourcePolicies.insert
方法发出 POST
请求。
替换以下内容:
创建实例模板
如需为 MIG 中的每个实例指定实例和消耗属性,请使用以下方法之一创建实例模板:
gcloud
如需创建区域级实例模板,请使用
gcloud compute instance-templates create
命令。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --instance-template-region=REGION \ --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, \ 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 \ --reservation-affinity=specific \ --reservation=RESERVATION \ --provisioning-model=RESERVATION_BOUND \ --instance-termination-action=DELETE \ --maintenance-policy=TERMINATE
替换以下内容:
REST
如需创建区域级实例模板,请向
regionInstanceTemplates.insert
方法发出 POST
请求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name":"INSTANCE_TEMPLATE_NAME", "properties":{ "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "machineType":"MACHINE_TYPE", "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", } ], , "reservationAffinity":{ "consumeReservationType":"SPECIFIC_RESERVATION", "key":"compute.googleapis.com/reservation-name", "values":[ "RESERVATION" ] }, "scheduling":{ "provisioningModel":"RESERVATION_BOUND", "instanceTerminationAction":"DELETE", "onHostMaintenance": "TERMINATE", "automaticRestart":true } } }
替换以下内容:
创建实例模板后,您可以查看该模板以查看其 ID 并检查其实例属性。
创建 MIG
您可以根据工作负载要求,以以下任一配置创建 MIG:
创建具有目标大小的 MIG
如果您可以在不一次性创建所有虚拟机实例的情况下启动作业,请创建具有目标大小的 MIG。目标大小决定了 MIG 中的实例数量。MIG 会根据当前资源可用性开始创建实例。如果任何资源暂时不可用,MIG 会持续尝试创建实例,以达到目标大小。
如需创建具有目标大小的 MIG,请选择以下选项之一:
gcloud
如需创建具有指定目标大小的 MIG,请使用 instance-groups managed
create
命令。
在此步骤中,用于创建 MIG 的命令使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 --workload-policy
标志。
按如下方式创建可用区级或区域级 MIG:
REST
如需创建具有指定目标大小的 MIG,请发出 POST
请求,如下所示。
在此步骤中,创建 MIG 的请求使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请从请求正文中移除 resourcePolicies.workloadPolicy
字段。
按如下方式创建可用区级或区域级 MIG:
创建 MIG 和规模调整请求
如需同时创建所有请求的实例,请创建一个不含任何实例的 MIG。创建空 MIG 后,您可以在该 MIG 中创建规模调整请求。当资源可用于一次性创建所有实例时,调整大小请求会将实例添加到 MIG。
如需创建 MIG 和规模调整请求,请选择以下选项之一:
gcloud
在此步骤中,用于创建 MIG 的命令使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 --workload-policy
标志。
创建可用区级或区域级 MIG 以及调整大小请求,如下所示:
替换以下内容:
REST
在此步骤中,创建 MIG 的请求使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请从请求正文中移除 resourcePolicies.workloadPolicy
字段。
创建可用区级或区域级 MIG 以及调整大小请求,如下所示:
替换以下内容:
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID