本文档介绍了如何创建使用灵活启动虚拟机 (VM) 实例的代管式实例组 (MIG)。灵活启动虚拟机可不间断运行最多七天,有助于您以折扣价获得 GPU 等高需求资源。这些功能使灵活启动虚拟机成为运行短时工作负载(例如模型微调和批量推理工作负载)的经济实惠的解决方案。
本文档中的步骤介绍了如何创建 MIG,以便在资源可用时创建单个灵活启动虚拟机。因此,MIG 最初可能仅创建部分请求的虚拟机,然后稍后在容量允许的情况下添加剩余的虚拟机。如果您想在 MIG 中一次性创建灵活启动虚拟机,请改为参阅关于 MIG 规模调整请求。
如需了解可用于创建 MIG 的其他方法,请参阅创建 MIG 的基本场景。
准备工作
- 验证您是否有足够的配额用于您要请求的资源。如需了解详情,请参阅分配配额。
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Cloud de Confiance by S3NS 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Cloud de Confiance 控制台访问 Cloud de Confiance by S3NS 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
-
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Cloud de Confiance 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建使用灵活启动虚拟机的 MIG 所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建使用 Flex-start 虚拟机的 MIG 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建使用灵活启动虚拟机的 MIG,您需要以下权限:
-
如需创建实例模板:针对项目的
compute.instanceTemplates.create权限 -
如需创建 MIG:针对项目的
compute.instanceGroupManagers.create权限
创建使用灵活启动虚拟机的 MIG
如需创建使用灵活启动虚拟机的 MIG,您必须完成以下步骤:
创建配置为创建灵活启动虚拟机的实例模板
您必须创建一个配置为创建灵活启动虚拟机的实例模板,如本部分中所述。创建模板后,您可以使用该模板来创建 MIG。
如需创建配置为创建灵活启动虚拟机的实例模板,请选择以下选项之一:
控制台
在 Cloud de Confiance 控制台中,转到实例模板页面。
点击创建实例模板。 系统会显示创建实例模板页面。
在名称字段中,输入实例模板的名称。
在位置部分中,选择要创建的实例模板类型:
对于区域级实例模板,请选择区域,然后选择要在其中创建模板的区域。根据您希望灵活启动虚拟机使用的机器类型,指定受支持的区域。
对于全球实例模板,请选择全球。
在机器配置部分中,为灵活启动虚拟机选择支持的机器系列。
在预配模型部分中,执行以下操作:
在虚拟机预配模型列表中,选择弹性启动。
如需为通过实例模板创建的虚拟机设置运行时长,请在输入小时数字段中输入虚拟机的运行时长(以小时为单位)。该值必须介于 1 小时 (
1) 到 7 天 (168) 之间。当虚拟机达到其运行时长的结束时间时,Compute Engine 会根据每个虚拟机的创建时间单独删除相应虚拟机。
可选:如需更改启动磁盘类型或映像的默认值,请在启动磁盘部分中,点击更改。然后,按照提示更改启动磁盘。
点击创建。
gcloud
如需创建配置为创建 Flex-start 虚拟机的实例模板,请使用 gcloud compute instance-templates create 命令。
以下命令会创建一个区域级实例模板。如果您要创建全球实例模板,请使用相同的命令,但不使用 --instance-template-region 标志。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-template-region=REGION \
--instance-termination-action=DELETE \
--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 机器类型或 H4D 机器类型。如果您指定 N1 机器类型,则必须添加--accelerator标志以定义要挂接到虚拟机的 GPU 的数量和类型。RUN_DURATION:您希望请求的虚拟机运行的时长。当虚拟机达到运行时长时,Compute Engine 会根据每个虚拟机的创建时间单独删除每个虚拟机。您必须将运行时长格式设置为天数、小时数、分钟数或秒数,后面分别跟d、h、m和s。例如,指定30m表示 30 分钟,或指定1d2h3m4s表示 1 天 2 小时 3 分钟 4 秒。该值必须介于 10 分钟到 7 天之间。
REST
如需创建配置为创建灵活启动虚拟机的实例模板,请发出以下 POST 请求之一:
如需创建区域级实例模板:
regionInstanceTemplates.insert方法如需创建全球实例模板:
instanceTemplates.insert方法
例如,如需创建区域级实例模板,请发出如下请求:
POST https://compute.googleapis.com/compute/v1/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 机器类型。如果您指定 N1 机器类型,则必须添加guestAccelerators字段以定义要挂接到虚拟机的 GPU 的数量和类型。RUN_DURATION:您希望请求的虚拟机运行的时长(以秒为单位)。当虚拟机达到运行时长时,Compute Engine 会根据每个虚拟机的创建时间单独删除每个虚拟机。运行时长必须介于600(600 秒,即 10 分钟)到604800(604,800 秒,即 7 天)之间。
创建实例模板后,您可以查看模板的详细信息以查看其属性。
创建区域级或可用区级 MIG
按照本部分所述,创建区域级或可用区级 MIG。您不得配置自动扩缩,并且必须关闭修复。如果所请求的资源不可用,Compute Engine 会一直尝试分配资源,直到请求成功、您减少 MIG 中的虚拟机数量或您删除 MIG。
如需创建区域级或可用区级 MIG,请选择以下选项之一:
控制台
在 Cloud de Confiance 控制台中,前往实例群组页面。
点击创建实例组。 此时会显示创建实例组页面。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择您在上一部分中创建的实例模板。
在实例数字段中,输入要在 MIG 中创建的灵活启动虚拟机的数量。如果您的工作负载需要特定的虚拟机名称,请输入
0以不创建任何虚拟机。创建 MIG 后,向其中添加具有特定名称的虚拟机。在位置部分中,指定您是要创建可用区级 MIG 还是区域级 MIG,如下所示:
如需创建可用区级 MIG,请选择单个可用区。或者,如需创建区域 MIG,请选择多个可用区。
为 MIG 选择区域和可用区。
如果您要创建区域级 MIG,请执行以下操作:
在目标分布形状字段中,选择任意单个可用区。
在显示的对话框中,点击停用实例重新分配。
如需删除自动扩缩配置,请在自动扩缩部分中执行以下操作:
点击 配置自动扩缩。
在自动扩缩模式列表中,点击删除自动扩缩配置。
在确认对话框中点击删除。
如需关闭修复功能,请在失败时的操作部分中,从失败时的默认操作列表中选择无操作。
点击创建。
gcloud
如需创建 MIG,请使用 gcloud compute instance-groups managed create 命令。
根据要创建的 MIG 类型,在命令中添加以下标志:
如需创建可用区级 MIG,请添加
--zone标志:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE如需创建区域级 MIG,请添加
--region和--target-distribution-shape标志:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --target-distribution-shape=SHAPE
替换以下内容:
INSTANCE_GROUP_NAME:MIG 的名称。INSTANCE_TEMPLATE_URL:您在上一部分中创建的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID对于全球实例模板:
INSTANCE_TEMPLATE_ID
SIZE:要在 MIG 中创建的灵活启动虚拟机的数量。如果您的工作负载需要特定的虚拟机名称,请指定0以不创建任何虚拟机。创建 MIG 后,向其中添加具有特定名称的虚拟机。ZONE:要用于创建可用区级 MIG 的可用区。如果您使用区域级实例模板创建 MIG,则必须指定与该模板位于同一区域内的可用区。REGION:要创建区域级 MIG 的区域。 如果您使用区域级实例模板创建 MIG,则必须指定与模板的区域相同的区域。SHAPE:MIG 如何在区域级 MIG 中的各个可用区之间分配灵活启动的虚拟机。请指定以下某个值:如需根据可用性在多个可用区中创建虚拟机,请执行以下操作:
ANY如需根据可用性在单个可用区中创建虚拟机,请执行以下操作:
ANY_SINGLE_ZONE
如需了解详情,请参阅区域级 MIG 目标分布形状。
REST
如需创建 MIG,请向以下方法之一发出 POST 请求:
如需创建可用区级 MIG,请向
instanceGroupManagers.insert方法发出以下请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE }如需创建区域级 MIG,请向
regionInstanceGroupManagers.insert方法发出以下请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE, "distributionPolicy": { "targetShape": "SHAPE" } }
替换以下内容:
PROJECT_ID:要在其中创建区域级或可用区级 MIG 的项目的 ID。ZONE:要用于创建可用区级 MIG 的可用区。如果您使用区域级实例模板创建 MIG,则必须指定与该模板位于同一区域内的可用区。REGION:要创建区域级 MIG 的区域。 如果您使用区域级实例模板创建 MIG,则必须指定与模板的区域相同的区域。INSTANCE_GROUP_NAME:MIG 的名称。INSTANCE_TEMPLATE_URL:您在上一部分中创建的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID对于全球实例模板:
INSTANCE_TEMPLATE_ID
SIZE:要在 MIG 中创建的灵活启动虚拟机的数量。如果您的工作负载需要特定的虚拟机名称,请指定0以不创建任何虚拟机。创建 MIG 后,向其中添加具有特定名称的虚拟机。SHAPE:MIG 如何在区域级 MIG 中的各个可用区之间分配灵活启动的虚拟机。请指定以下某个值:如需根据可用性在多个可用区中创建虚拟机,请执行以下操作:
ANY如需根据可用性在单个可用区中创建虚拟机,请执行以下操作:
ANY_SINGLE_ZONE
如需了解详情,请参阅区域级 MIG 目标分布形状。
后续步骤
了解如何查看有关 MIG 和拖管式虚拟机的信息。
了解如何查看虚拟机和 GPU 的实际和预测用量。