本文档介绍了如何在挂接了 GPU 的虚拟机实例的托管式实例组 (MIG) 中创建调整大小请求。如需详细了解调整大小请求,请参阅关于调整 MIG 中的请求大小。
创建 MIG 调整大小请求有助于您一次性创建确切数量的虚拟机,从而获取 GPU 等高需求资源并优化成本。如需创建可使用 Cluster Director 提供的功能和服务的 MIG 调整大小请求,请参阅 AI Hypercomputer 文档中的创建 MIG 和调整大小请求。
准备工作
- 为确保您有足够的 GPU 配额可以用于请求的资源,请检查您的 GPU 配额。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得创建 MIG 调整大小请求所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建 MIG 调整大小请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建 MIG 调整大小请求,您需要具备以下权限:
-
如需创建实例模板:针对项目的
compute.instanceTemplates.create
权限 -
如需创建可用区级 MIG:针对项目的
compute.instanceGroupManagers.create
权限 -
如需创建 MIG 调整大小请求:针对项目的
compute.instanceGroupManagers.update
权限
为调整大小请求准备 MIG
如需创建 MIG 调整大小请求,您必须配置实例模板和 MIG,如以下部分所述。
创建实例模板
如需创建为创建 MIG 调整大小请求而配置的实例模板,请在模板中指定以下内容:
在主机维护事件期间停止虚拟机。
在虚拟机的运行时长结束时删除虚拟机。
请勿使用预留。
使用灵活���动预配模���。
如需创建为创建 MIG 调整大小请求而配置的实例模板,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,转到实例模板页面。
点击创建实例模板。 系统会打开创建实例模板页面。
在名称字段中,输入实例模板的名称。
在位置部分,选择以下选项之一:
如需创建区域级实例模板,请选择区域级(推荐),然后选择要创建模板的区域。
如需创建全球实例模板,请选择全球。
在机器配置部分中,执行以下操作:
点击 GPU 标签页。
在 GPU 类型列表中,选择 GPU 类型。如果您在可用区级 MIG 中使用实例模板,则只能选择 NVIDIA H200 141GB 及更高类型。
在 GPU 数量列表中,选择 GPU 的数量。
可选:如果您的 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)。
在机器类型部分中,选择一种机器类型。
在预配模型部分中,执行以下操作:
在虚拟机预配模型列表中,选择弹性启动。
如需为通过实例模板创建的虚拟机设置运行时长,请在输入小时数字段中输入小时数。该值必须介于 1 小时 (
1
) 到 7 天 (168
) 之间。
可选:如需更改启动磁盘类型或映像的默认值,请在启动磁盘部分中,点击更改。然后,按照提示更改启动磁盘。
点击创建。
gcloud
如需创建为创建 MIG 调整大小请求而配置的实例模板,请使用带有以下标志的 beta instance-templates create
���令:
将
--maintenance-policy
标志设置为TERMINATE
。将
--instance-termination-action
标志设置为DELETE
。--max-run-duration
标志。将
--provisioning-model
标志设置为FLEX_START
。将
--reservation-affinity
标志设置为none
。
以下命令会创建一个区域级实例模板。如需创建全球实例模板,请使用相同命令,但不带 --instance-template-region
标志。
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-termination-action=DELETE \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START \
--reservation-affinity=none
替换以下内容:
INSTANCE_TEMPLATE_NAME
:要创建的实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE_FAMILY
:映像系列。此项指定最新的未弃用操作系统映像。例如,如果您指定debian-12
,则系统会使用 Debian 12 映像系列中的最新版本。如需详细了解如何使用映像系列,请参阅映像系列最佳实践。REGION
:要在其中创建实例模板的区域。MACHINE_TYPE
:GPU 机器类型。请确保:您只能为可用区级 MIG 指定 A4 或 A3 Ultra 机器类型。
如果您指定 N1 机器类型,请添加
--accelerator
标志以指定要挂接到虚拟机的 GPU 数量和类型。
RUN_DURATION
:您希望请求的虚拟机运行的时长。您必须将该值的格式设置为天数、小时数、分钟数或秒数,后面分别跟d
、h
、m
和s
。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。
REST
如需创建为在 MIG 中创建调整大小请求而配置的实例模板,请向以下方法之一发出 POST
请求:
如需创建区域级实例模板:
beta.regionInstanceTemplates.insert
方法如需创建全球实例模板:
beta.instanceTemplates.insert
方法
在请求正文中,添加以下字段:
设置为
TERMINATE
的scheduling.onHostMaintenance
字段。设置为
DELETE
的scheduling.instanceTerminationAction
字段。scheduling.maxRunDuration
字段。设置为
FLEX_START
的scheduling.provisioningModel
字段。将
reservationAffinity.consumeReservationType
字段设置为NO_RESERVATION
。
例如,如需创建区域实例模板,请发出 POST
请求,如下所示:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START"
}
}
}
替换以下内容:
PROJECT_ID
:要创建实例模板的项目 ID。REGION
:要在其中创建实例模板的区域。INSTANCE_TEMPLATE_NAME
:要创建的实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:MACHINE_TYPE
:GPU 机器类型。请确保:您只能为可用区级 MIG 指定 A4 或 A3 Ultra 机器类型。
如果您指定 N1 机器类型,请在请求正文中添加
guestAccelerators
字段,以指定要挂接到虚拟机的 GPU 的数量和类型。
RUN_DURATION
:您希望请求的虚拟机运行的时长(以秒为单位)。该值必须介于600
(600 秒,即 10 分钟)到604800
(604,800 秒,即 7 天)之间。
如需详细了解如何创建实例模板,请参阅创建实例模板。
创建或更新 MIG
按照上一部分中的说明创建实例模板后,使用该实例模板创建 MIG(如下所示)或更新 MIG。此外,您必须执行以下操作来准备用于处理调整大小请求的 MIG:
将 MIG 的更新类型设置为寻机更新(默认)。
如果您在 MIG 中配置了自动扩缩,请删除自动扩缩配置。
如果您使用的是区域级 MIG,请将目标分布形状设置为
ANY_SINGLE_ZONE
。
如需创建与调整大小请求兼容的 MIG,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往实例群组页面。
点击创建实例组。 此时会打开创建实例组页面。
在名称字段中,输入 MIG 的名称。
在选择实例模板之前,您必须删除自动扩缩配置并关闭修复,如下所示:
如需��除自动扩缩配置,请执行以下操作:
在自动扩缩部分中,点击自动扩缩模式列表,然后点击删除自动扩缩配置。
在确认对话框中点击删除。
如需关闭修复功能,请在虚拟机实例生命周期部分中,点击失败时的默认操作列表,然后选择无操作。
返回到实例模板字段。在实例模板列表中,选择您在上一部分中创建的实例模板。如果您选择区域级实例模板,则将区域列表设置为该模板所在的区域。
执行下列其中一项操作:
如需在创建 MIG 时创建调整大小请求,请执行以下操作:
在实例数字段中,输入您要一次性创建的所有虚拟机的数量。
选中使用规模调整请求,一次创建所有虚拟机复选框。
可选:如需为虚拟机指定与在实例模板中设置的运行时长不同的运行时长,请在请求的运行时长字段和单位列表中指定运行时长。时长必须介于 1 小时到 7 天之间。
如需在创建 MIG 后创建调整大小请求,请在实例数量字段中输入
0
。
在位置部分中,指定您是要创建可用区级 MIG 还是区域级 MIG,如下所示:
如需创建可用区级 MIG,请选择单个可用区。或者,如需创建区域 MIG,请选择多个可用区。
选择 MIG 的区域和可用区。
如果您要创建地区级 MIG,请执行以下操作:
在目标分布形状字段中,选择任意单个可用区。
在显示的对话框中,点击停用实例重新分配。
点击创建。
gcloud
使用 instance-groups managed create
命令,并将 --default-action-on-vm-failure
标志设置为 do_nothing
。如果您要创建区域级 MIG,则还必须添加 --target-distribution-shape
标志(设置为 any-single-zone
)和 --instance-redistribution-type
标志(设置为 none
)。
如需创建可用区级 MIG,请运行以下命令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --zone=ZONE \ --default-action-on-vm-failure=do_nothing
如需创建区域级 MIG,请运行以下命令:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --region=REGION \ --target-distribution-shape=any-single-zone \ --instance-redistribution-type=none \ --default-action-on-vm-failure=do_nothing
替换以下内容:
INSTANCE_GROUP_NAME
:要创建的 MIG 的名称。INSTANCE_TEMPLATE_URL
:您在上一部分中创建的实例模板的部分网址。如果您想使用区域实例模板创建 MIG,则只能在模板所在的区域内创建 MIG。请指定以下某个值:对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME
对于全球实例模板:
INSTANCE_TEMPLATE_NAME
ZONE
:要用于创建 MIG 的可用区。REGION
:要用于创建 MIG 的区域。
REST
如需创建可用区级 MIG,请使用
instanceGroupManagers.insert
方法发送POST
请求,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
如需创建区域级 MIG,请使用
regionInstanceGroupManagers.insert
方法发送POST
请求,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "distributionPolicy": { "targetShape": "ANY_SINGLE_ZONE" }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
替换以下内容:
PROJECT_ID
:您在上一部分中创建的实例模板所在项目的 ID。INSTANCE_TEMPLATE_URL
:您在上一部分中创建的实例模板的部分网址。如果您想使用区域实例模板创建 MIG,则只能在模板所在的区域内创建 MIG。请指定以下某个值:对于区域级实例模板:
regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME
对于全球实例模板:
global/instanceTemplates/INSTANCE_TEMPLATE_NAME
ZONE
:要用于创建 MIG 的可用区。REGION
:要用于创建 MIG 的区域。INSTANCE_GROUP_NAME
:要创建的 MIG 的名称。
在 MIG 中创建调整大小请求
在创建 MIG 调整大小请求之前,请确保已按照上一部分中的说明准备好 MIG。
创建调整大小请求且所有请求的资源都可用后,MIG 会同时创建请求的虚拟机数量。虚拟机会一直运行,直到 MIG 在指定运行时长结束后删除它们或直到您删除它们。
如需在 MIG 中创建调整大小请求,请选择以下选项之一。如需通过调整大小请求将具有特定名称的虚拟机添加到 MIG,请使用 gcloud CLI 或 REST API。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
在名称列中,点击要用于创建调整大小请求的 MIG 的名称。
系统会打开此 MIG 的概览页面。
在调整大小请求行中,点击
修改调整大小请求。点击
New resize request(新建调整大小请求)。系统会显示新建调整大小请求窗格。
在名称字段中,输入调整大小请求的名称。
在需要的额外实例数量字段中,输入要一次性添加到 MIG 的所有虚拟机的数量。
可选:如需为虚拟机指定与实例模板中设置的运行时长不同的运行时长,请在请求的运行时长和单位字段中指定时长。时长必须介于 1 小时到 7 天之间。
点击创建。
gcloud
如需在可用区级 MIG 中创建调整大小请求,请使用
instance-groups managed resize-requests create
命令。gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --zone=ZONE
如需在区域级 MIG 中创建调整大小请求,请使用
beta instance-groups managed resize-requests create
命令。gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --region=REGION
替换以下内容:
INSTANCE_GROUP_NAME
:经过配置,可用于创建调整大小请求的 MIG 的名称。RESIZE_REQUEST_NAME
:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。COUNT
:要同时添加到 MIG 的虚拟机数量。RUN_DURATION
:您希望请求的虚拟机运行的时长。该值的格式必须为天数、小时数、分钟数或秒数,后面分别跟d
、h
、m
和s
。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。ZONE
:该 MIG 所在的可用区。REGION
:MIG 所在的区域。
您可以选择执行以下操作:
如果您想为虚拟机指定与 MIG 的实例模板中设置的运行时长不同的时长,请添加
--requested-run-duration
标志。如果您的工作负载需要特定的虚拟机名称,您可以使用
beta instance-groups managed resize-requests create
命令指定要创建的虚拟机名称列表。在该命令中,将--resize-request
标志替换为--instances
标志。
REST
如需在可用区级 MIG 中创建调整大小请求,请使用
instanceGroupManagerResizeRequests.insert
方法发送POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
如需在地区级 MIG 中创建调整大小请求,请使用
beta.regionInstanceGroupManagerResizeRequests.insert
方法发送POST
请求。
在请求正文中,添加以下各项:
{
"name": "RESIZE_REQUEST_NAME",
"resizeBy": COUNT,
"requestedRunDuration": {
"seconds": "RUN_DURATION"
}
}
替换以下内容:
PROJECT_ID
:指定的 MIG 所在项目的 ID。ZONE
:该 MIG 所在的可用区。REGION
:MIG 所在的区域。INSTANCE_GROUP_NAME
:经过配置,可用于创建调整大小请求的 MIG 的名称。RESIZE_REQUEST_NAME
:调整大小请求的名称,该名称在指定的 MIG 中必须是唯一的。否则,创建调整大小请求的操作将失败。COUNT
:要同时添加到 MIG 的虚拟机数量。RUN_DURATION
:您希望请求的虚拟机运行的时长(以秒为单位)。该值必须介于600
(600 秒,即 10 分钟)到604800
(604,800 秒,即 7 天)之间。
您可以选择执行以下操作:
如果您想为虚拟机指定与 MIG 实例模板中设置的时长不同的运行时长,请在请求正文中添加
requestedRunDuration
字段。如果您的工作负载需要特定的虚拟机名称,您可以指定要创建的虚拟机名称列表。为此,请向区域级 MIG 的
beta.regionInstanceGroupManagerResizeRequests.insert
方法或可用区级 MIG 的beta.instanceGroupManagerResizeRequests.insert
方法发送POST
请求。在请求正文中,将resizeBy
字段替换为instanceNames
字段。
后续步骤
了解如何查看有关 MIG 和拖管式虚拟机的信息。
- 了解如何查看虚拟机和 GPU 的实际和预测用量。