使用 A4 或 A3 Ultra 机器类型创建 AI 优化型 MIG

本文档介绍了如何创建使用 A4 或 A3 Ultra 机器类型的代管式实例组 (MIG)。如需详细了解这些加速器优化机器类型,请参阅 A4A3 Ultra

创建 MIG 后,您可以将多个虚拟机 (VM) 作为单个实体进行管理。MIG 中的每个虚拟机均基于实例模板。通过自动管理实例组中的虚拟机,MIG 可提供高可用性和可伸缩性。如需详细了解 MIG,请参阅 Compute Engine 文档中的托管式实例组

如需了解创建虚拟机或集群的其他方式,请参阅虚拟机和集群创建概览页面。

限制

创建包含 A4 或 A3 Ultra 虚拟机的 MIG 时,请考虑机器类型和 MIG 的限制。

A4 或 A3 Ultra 虚拟机的限制

根据 MIG 中的虚拟机使用的机器系列,存在以下限制:

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 函数和网络监控工具

MIG 的限制

创建包含 A4 或 A3 Ultra 虚拟机的 MIG 时,存在以下限制:

  • 如果 MIG 要使用的实例模板指定了灵活启动预配模型,则存在以下限制:

    • 您只能使用调整大小请求将虚拟机添加到 MIG。

    • 您无法将工作负载政策应用于 MIG。

    • 您必须在 MIG 中关闭修复。

  • 如果您创建的是区域级 MIG,则该 MIG 只能在包含 VPC 网络配置文件的可用区中创建虚拟机。

  • 您无法在 MIG 中配置实例灵活性

  • 如果您将工作负载政策应用于 MIG,则当该组包含虚拟机时,您无法更改 MIG 中的政策。如需更改包含虚拟机的 MIG 中的政策,您必须先将 MIG 调整为零。

  • 您无法使用指定了放置政策的实例模板来创建使用工作负载政策的 MIG。

  • 创建 MIG 调整大小请求时,需要遵循以下限制:

    • 在区域级 MIG 中,您只能使用 ANY_SINGLE_ZONE 目标分布形状预览版)。不支持其他分布形状。

    • 您只能将 MIG 的待机池模式设置为 manual(默认)。

    • 您无法设置自动扩缩

    • 如果 MIG 包含已接受的调整大小请求,则您无法执行以下操作:

    • 您无法删除或移除 MIG 为调整大小请求创建的 CREATING 状态的托管式实例。如需删除这些托管式实例,您必须取消调整大小请求

准备工作

在创建 MIG 之前,请先完成以下步骤(如果您尚未完成):

  1. 选择使用选项:您选择的使用选项决定了您如何获取和使用 GPU 资源。

    如需了解详情,请参阅选择消费选项

  2. 获取容量:每种使用选项的容量获取流程各不相同。

    如需了解所选使用选项的容量获取流程,请参阅容量概览

所需的角色

如需获得创建 MIG 所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含创建 MIG 所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

您需要具备以下权限才能创建 MIG:

  • 如需创建 MIG:针对项目的 compute.instanceGroupManagers.create 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

概览

创建具有 A4 或 A3 Ultra 机器类型的 MIG 包括以下步骤:

  1. 创建 VPC 网络
  2. 可选: 创建工作负载政策
  3. 创建实例模板
  4. 创建 MIG

创建 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 配置

您可以按照说明指南手动创建网络,也可以使用提供的脚本自动创建。

说明指南

如需创建网络,您可以按照以下说明操作:

对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。 如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置

脚本

如需创建网络,请按照以下步骤操作。

对于这些 VPC 网络,我们建议将最大传输单元 (MTU) 设置为更大的值。对于 A4 或 A3 Ultra 机器类型,建议的 MTU 为 8896 字节。 如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅 GPU 机器类型的 MTU 设置

  1. 使用以下脚本为 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 范围。
  2. 可选:如需验证 VPC 网络资源是否已成功创建,请在 Google Cloud 控制台中检查网络设置:
    1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

      进入 VPC 网络页面

    2. 在列表中搜索您在上一步中创建的网络。
    3. 如需查看子网、防火墙规则和其他网络设置,请点击网络的名称。

可选:创建工作负载政策

对于灵活启动使用选项,请跳过此部分并继续创建实例模板。由于存在限制,灵活启动预配模型不支持工作负载政策。

您可以通过创建工作负载政策来指定虚拟机放置位置。如果您已有工作负载政策,可以重复使用该政策。当您将工作负载政策应用于 MIG 时,Compute Engine 会尽力尝试创建尽可能彼此靠近的虚拟机。如果您的应用对延迟时间敏感,并且您希望虚拟机之间的距离更近(紧凑性最大),请在创建工作负载政策时指定 maxTopologyDistance 字段。

工作负载政策创建后无法更新。如需更改工作负载政策,您必须创建新的政策。

如需创建工作负载政策,请选择以下选项之一:

gcloud

如需创建工作负载政策,请使用 gcloud compute resource-policies create workload-policy 命令

  • 如需尽力布置虚拟机,请仅在命令中指定 --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:工作负载政策的名称。
  • TOPOLOGY_DISTANCE:拓扑距离上限。请指定以下某个值:
    • 如需将虚拟机放置在同一集群中,请执行以下操作:CLUSTER
    • 如需将虚拟机布置在同一区块中,请执行以下操作:BLOCK
    • 如需将虚拟机布置在同一子区块中,请执行以下操作:SUBBLOCK
    注意:较短的距离上限值可能会降低实现虚拟机可用性的可能性。
  • REGION:要用于创建工作负载政策的区域。指定您要在其中创建 MIG 且提供您要使用的机器类型的区域。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性

REST

如需创建工作负载政策,请向 resourcePolicies.insert 方法发出 POST 请求。

  • 如需尽力布置虚拟机,请在请求中仅指定 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:您的项目 ID
  • REGION:要用于创建工作负载政策的区域。 指定要在其中创建 MIG 且提供您要使用的机器类型的区域。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • WORKLOAD_POLICY_NAME:工作负载政策的名称。
  • TOPOLOGY_DISTANCE:拓扑距离上限。请指定以下某个值:
    • 如需将虚拟机布置在同一区块中,请执行以下操作:BLOCK
    • 如需将虚拟机放置在同一集群中,请执行以下操作:CLUSTER
    注意:较短的距离上限值可能会降低实现虚拟机可用性的可能性。

创建实例模板

通过创建实例模板来指定 MIG 的虚拟机属性。

如需创建实例模板,请选择以下选项之一。

以下命令还会设置实例的访问权限范围。为了简化权限管理,Google 建议您将实例的访问权限范围设置为 cloud-platform 访问权限,然后使用 IAM 角色定义实例可以访问哪些服务。如需了解详情,请参阅范围最佳实践

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 \
    --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 \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • RUN_DURATION:您希望请求的虚拟机运行的时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,后面分别跟 dhms。例如,指定 30m 表示 30 分钟,或指定 1d2h3m4s 表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。

受预留约束

如需创建区域级实例模板,请使用 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 \
    --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=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • 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

Spot

如需创建区域级实例模板,请使用 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 \
    --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

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP [默认] 或 DELETE)。

REST

您需要指定的参数取决于您为此部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。

灵活启动

如需创建区域级实例模板,请向 regionInstanceTemplates.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "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"
      }
    ],
    "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • RUN_DURATION:您希望请求的虚拟机运行的时长(以秒为单位)。该值必须介于 600(600 秒,即 10 分钟)到 604800(604,800 秒,即 7 天)之间。

受预留约束

如需创建区域级实例模板,请向 regionInstanceTemplates.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "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"
      }
    ],
    "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • 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

Spot

如需创建区域级实例模板,请向 regionInstanceTemplates.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "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"
      }
    ],
    "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/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

替换以下内容:

  • INSTANCE_TEMPLATE_NAME:实例模板的名称。
  • MACHINE_TYPE:要用于虚拟机的机器类型。 指定 A4 或 A3 Ultra 机器类型。如需了解详情,请参阅 GPU 机器类型
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看受支持的操作系统列表,请参阅受支持的操作系统
  • IMAGE_PROJECT:操作系统映像的项目 ID。
  • REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅按区域和可用区划分的 GPU 可用性
  • DISK_SIZE:启动磁盘的大小(以 GB 为单位)。
  • NETWORK_PROJECT_ID:网络的项目 ID。
  • GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。
  • REGION:子网所在的区域。
  • RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。
  • TERMINATION_ACTION:当 Compute Engine 抢占实例时执行的操作(STOP [默认] 或 DELETE)。

创建实例模板后,您可以查看该模板以查看其 ID 并检查其实例属性。

创建 MIG

完成上述所有步骤后,请根据您的使用情形创建 MIG,如下所示:

场景 用于创建 MIG 及其中虚拟机的办法 示例
您有多个或并行作业,这些作业可以从任意数量的虚拟机开始。 创建 MIG 并使用目标大小来指定您希望组中包含的虚拟机数量。

请参阅创建具有目标大小的 MIG

机器学习推理作业
您的作业需要分布在确切数量的虚拟机中。 创建一个不含任何虚拟机的 MIG,然后在该 MIG 中创建调整大小请求。 规模调整请求有助于您一次性获取所有虚拟机。

请参阅创建 MIG 和规模调整请求

分布式机器学习训练和微调作业

创建具有目标大小的 MIG

如果您可以在不同时创建所有虚拟机的情况下启动作业,请创建具有目标大小的 MIG。目标大小决定了 MIG 中的虚拟机数量。MIG 会根据当前资源可用性开始创建虚拟机。如果任何资源暂时不可用,MIG 会持续尝试创建虚拟机,以达到目标大小。

如需创建具有目标大小的 MIG,请选择以下选项之一:

gcloud

如需创建具有指定目标大小的 MIG,请使用 instance-groups managed create 命令

用于创建 MIG 的命令使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 --workload-policy 标志。

按如下所示创建可用区级或区域级 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(可选):工作负载政策的网址。例如,projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。如果您不想使用工作负载政策,可以移除 --workload-policy 标志。
  • ZONE:您要在其中创建 MIG 的可用区。 如果您使用工作负载政策,请在政策的区域内指定一个可用区。
  • REGION:您要在其中创建 MIG 的区域。 如果您使用工作负载政策,请指定与该政策相同的区域。 对于区域级 MIG,您可以使用 --zones 标志指定相应区域中的可用区,而不是指定区域。

REST

如需创建具有指定目标大小的 MIG,请发出 POST 请求。

用于创建 MIG 的请求使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 resourcePolicies.workloadPolicy 字段。

按如下所示创建可用区级或区域级 MIG:

  • 如需创建可用区级 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(可选):工作负载政策的网址。例如:projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果您不想使用工作负载政策,请移除 resourcePolicies.workloadPolicy 字段。

创建 MIG 和规模调整请求

如果您需要同时使用多个虚拟机才能启动作业,请创建一个 MIG,然后在该 MIG 中创建规模调整请求,如本部分中所述。

如需在 MIG 中创建规模调整请求,请选择以下选项之一。

gcloud

您需要指定的参数取决于您为此部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。

灵活启动

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 instance-groups managed create 命令创建可用区级 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zone=ZONE
      
    2. 使用 instance-groups managed resize-requests create 命令在可用区级 MIG 中创建规模调整请求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 instance-groups managed create 命令创建区域级 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. 使用 Beta 版 instance-groups managed resize-requests create 命令在区域级 MIG 中创建规模调整请求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

受预留约束

用于创建 MIG 的命令使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 --workload-policy 标志。

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 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
      
    2. 使用 instance-groups managed resize-requests create 命令在可用区级 MIG 中创建规模调整请求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 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
        
    2. 使用 Beta 版 instance-groups managed resize-requests create 命令在区域级 MIG 中创建规模调整请求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

Spot

用于创建 MIG 的命令使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 --workload-policy 标志。

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 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
      
    2. 使用 instance-groups managed resize-requests create 命令在可用区级 MIG 中创建规模调整请求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:

    1. 使用 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
        
    2. 使用 Beta 版 instance-groups managed resize-requests create 命令在区域级 MIG 中创建规模调整请求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --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(可选):工作负载政策的网址。 例如:projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果您不想使用工作负载政策,请移除 --workload-policy 标志。
  • ZONE:您要在其中创建 MIG 的可用区。对于区域级 MIG,您还必须指定可用区。此可用区必须是包含 VPC 网络配置文件的可用区,并且必须是提供相应机器类型的可用区。如需了解详情,请参阅限制
  • RESIZE_REQUEST_NAME:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。
  • COUNT:要同时添加到 MIG 的虚拟机数量。
  • REGION:MIG 所在的区域。

如果您的工作负载需要特定的虚拟机名称,您可以使用 beta instance-groups managed resize-requests create 命令指定要创建的虚拟机的名称列表。在该命令中,将 --resize-request 标志替换为 --instances 标志

REST

您需要指定的参数取决于您为此部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。

灵活启动

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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,
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. 在可用区级 MIG 中,向 instanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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"
        },
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. 在区域级 MIG 中,向 beta.regionInstanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

受预留约束

用于创建 MIG 的请求使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 resourcePolicies.workloadPolicy 字段。

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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
        }
      }
      
    2. 在可用区级 MIG 中,向 instanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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
        }
      }
      
    2. 在区域级 MIG 中,向 beta.regionInstanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Spot

用于创建 MIG 的请求使用工作负载政策来指定虚拟机放置位置。如果您不想使用工作负载政策,请移除 resourcePolicies.workloadPolicy 字段。

创建可用区级或区域级 MIG 以及规模调整请求,如下所示:

  • 如需创建可用区级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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
        }
      }
      
    2. 在可用区级 MIG 中,向 instanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如需创建区域级 MIG 并在其中创建规模调整请求,请执行以下操作:
    1. 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
        }
      }
      
    2. 在区域级 MIG 中,向 beta.regionInstanceGroupManagerResizeRequests.insert 方法发出 POST 请求,以创建规模调整请求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
替换以下内容:
  • 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(可选):工作负载政策的网址。 例如:projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果您不想使用工作负载政策,请移除 resourcePolicies.workloadPolicy 字段。
  • RESIZE_REQUEST_NAME:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。
  • COUNT:要同时添加到 MIG 的虚拟机数量。

如果您的工作负载需要特定的虚拟机名称,您可以指定要创建的虚拟机的名称列表。为此,请向 beta.regionInstanceGroupManagerResizeRequests.insert 方法(对于区域级 MIG)或 beta.instanceGroupManagerResizeRequests.insert 方法(对于可用区级 MIG)发送 POST 请求。在请求正文中,将 resizeBy 字段替换为 instanceNames 字段

后续步骤