创建使用受预留约束的模型的虚拟机

本文档介绍了如何使用与预留绑定的预配模型创建独立的虚拟机 (VM) 实例。借助此预配模型,您可以使用预先预留的容量来创建 A4X、A4 或 A3 Ultra 虚拟机。

如需了解使用受预留约束的预配模型创建虚拟机的其他方法,请参阅 AI Hypercomputer 文档中的部署选项概览

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 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

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. 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 时进行身份验证

所需的角色

如需获得使用与预留绑定的配置模型创建虚拟机所需的权限,请让您的管理员为您授予项目的 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 权限

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

创建使用受预留约束的预配模型的虚拟机

如需使用受预留约束的预配模型创建 A4X、A4 或 A3 Ultra 虚拟机,您必须等到要使用的自动预留达到其开始时间。此外,您打算创建的虚拟机必须满足以下所有要求:

以下示例会在日历模式下为五个 A3 Ultra 虚拟机创建未来预留请求,然后通过使用为该请求自动创建的预留来创建 A3 Ultra 虚拟机。

如需使用受预留约束的预配模型创建示例虚拟机,请选择以下选项之一:

控制台

  1. 创建一个示例请求,申请 5 个 A3 Ultra 虚拟机,然后提交以供审核:

    1. 在 Google Cloud 控制台中,前往预留页面。

      转到“预留”

    2. 点击未来预留标签页。

    3. 点击 创建未来预留创建未来预留页面随即会显示。

    4. 硬件配置部分中,选择指定机器类型,然后指定 A3 Ultra 实例。

    5. 获取方法部分,完成以下步骤:

      1. 选择搜索最多 90 天的容量

      2. 区域可用区列表中,指定要预留资源的区域和可用区。在本示例中,分别选择 us-central1us-central1-a

      3. 所需总容量字段中,输入 5

      4. 预留期部分中,指定预留的预留期。

    6. 指定其余字段,然后点击提交

  2. 在请求发起时,如要创建 A3 Ultra 虚拟机来使用自动创建的示例预留,请执行以下操作:

    1. 在 Google Cloud 控制台中,前往创建实例页面。

      转到“创建实例”

    2. 名称字段中,输入虚拟机的名称。在此示例中,请输入 example-vm

    3. 指定您要预留资源的区域可用区。在本示例中,分别选择 us-central1us-central1-a

    4. 点击 GPU 标签页,然后在 GPU 类型列表中选择 NVIDIA H200 141GB。此操作指定了 A3 Ultra 虚拟机,并将预配模型设置为受预留约束

    5. 在导航菜单中,点击高级

    6. 预留部分中,选择选择预留,然后点击选择预留

    7. 选择预留窗格中,执行以下操作:

      1. 选择特定预留。如果您要使用存在于其他项目中的共享预留,请在项目列表中选择存在该预留的项目。

      2. 点击选择

    8. 预配模型部分中,展开虚拟机预配模型高级设置部分。

    9. 虚拟机终止时列表中,选择关停(默认)或删除

    10. 点击创建

gcloud

  1. 如要创建一个示例请求,申请 5 个 A3 Ultra 虚拟机并提交以供审核,请使用 gcloud beta compute future-reservations create 命令

    gcloud beta compute future-reservations create example-fr \
        --auto-delete-auto-created-reservations \
        --deployment-type=DENSE \
        --planning-status=SUBMITTED \
        --require-specific-reservation \
        --reservation-mode=CALENDAR \
        --reservation-name=example-reservation \
        --share-type=local \
        --start-time=2025-10-05T00:00:00Z \
        --end-time=2025-10-19T00:00:00Z \
        --machine-type=a3-ultragpu-8g \
        --total-count=5 \
        --zone=us-central1-a
    

    假设 Google Cloud 批准了请求,并且 Compute Engine 自动创建了一个空预留。在请求发起时(2025 年 10 月 5 日),Compute Engine 会增加预留中预留的 GPU 虚拟机数量。这样,您就可以使用预留了。

  2. 在请求发起时,如要创建 A3 Ultra 虚拟机来使用自动创建的示例预留,请将 gcloud compute instances create 命令与以下标志搭配使用:

    • --instance-termination-action 标志。

    • --provisioning-model 标志设置为 RESERVATION_BOUND

    • --reservation 标志。

    • --reservation-affinity 标志设置为 specific

    该命令类似于以下内容。如需了解创建 A3 Ultra 虚拟机的完整要求,请参阅创建 A3 Ultra 或 A4 实例

    gcloud compute instance create example-vm  \
        --machine-type=a3-ultragpu-8g \
        --instance-termination-action=TERMINATION_ACTION \
        --provisioning-model=RESERVATION_BOUND \
        --reservation-affinity=specific \
        --reservation=RESERVATION_URL \
        --zone=us-central1-a \
        ...
    

    该命令包含以下值:

    • TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。

    • RESERVATION_URL:预留的网址,格式如下:

      • 如果自动创建的预留存在于您的项目中:example-reservation

      • 如果自动创建的预留存在于其他项目中:projects/PROJECT_ID/reservations/example-reservation

REST

  1. 如要创建一个示例请求,申请 5 个 A3 Ultra 虚拟机并提交以供审核,请向 Beta 版 futureReservations.insert 方法发出 POST 请求:

    POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations
    
    {
      "name": "example-request-calendar-mode",
      "autoDeleteAutoCreatedReservations": true,
      "deploymentType": "DENSE",
      "planningStatus": "SUBMITTED",
      "reservationMode": "CALENDAR",
      "reservationName": "example-reservation",
      "shareSettings": {
        "shareType": "LOCAL"
      },
      "specificReservationRequired": true,
      "specificSkuProperties": {
        "machineType": "a3-ultragpu-8g",
        "totalCount": 5
      },
      "timeWindow": {
        "startTime": "2025-10-05T00:00:00Z",
        "endTime": "2025-10-19T00:00:00Z"
      }
    }
    

    假设 Google Cloud 批准了请求,并且 Compute Engine 自动创建了一个空预留。在请求发起时(2025 年 10 月 5 日),Compute Engine 会增加预留中预留的 GPU 虚拟机数量。这样,您就可以使用预留了。

  2. 在请求发起时,如要创建 A3 Ultra 虚拟机来使用自动创建的示例预留,请向 instances.insert 方法发出 POST 请求。在请求正文中,添加以下字段:

    • 设置为 SPECIFIC_RESERVATIONreservationAffinity.consumeReservationType 字段。

    • 设置为 compute.googleapis.com/reservation-namereservationAffinity.key 字段。

    • 设置为预留网址的 reservationAffinity.values 字段。

    • scheduling.instanceTerminationAction 字段。

    • 设置为 RESERVATION_BOUNDscheduling.provisioningModel 字段。

    请求类似于以下内容。如需了解创建 A3 Ultra 虚拟机的完整要求,请参阅创建 A3 Ultra 或 A4 实例

    POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instances
    
    {
      {
        "machineType": "projects/example-project/zones/us-central1-a/machineTypes/a3-ultragpu-8g",
        "name": "example-vm",
        "reservationAffinity": {
          "consumeReservationType": "SPECIFIC_RESERVATION",
          "key": "compute.googleapis.com/reservation-name",
          "values":[
            "RESERVATION_URL"
          ],
        },
        "scheduling": {
          "instanceTerminationAction": "TERMINATION_ACTION",
          "provisioningModel": "RESERVATION_BOUND"
        },
        ...
      }
    }
    

    请求正文包含以下值:

    • RESERVATION_URL:预留的网址,格式如下:

      • 如果自动创建的预留存在于您的项目中:example-reservation

      • 如果自动创建的预留存在于其他项目中:projects/PROJECT_ID/reservations/example-reservation

    • TERMINATION_ACTION:指示在预留期结束时,Compute Engine 是关停 (STOP) 还是删除 (DELETE) 虚拟机。

后续步骤

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 Compute Engine 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Compute Engine