查看、取消或删除 MIG 中的调整大小请求

本文档介绍如何在托管式实例组 (MIG) 中创建调整大小请求后执行以下操作:

在 MIG 中创建调整大小请求后,您可以执行以下一项或多项操作:

  • 查看调整大小请求,以监控其状态或排查问题。

  • 取消调整大小请求,以停止 MIG 创建所请求数量的虚拟机 (VM) 实例。

  • 不再需要调整大小请求时,请将其删除。

准备工作

所需的角色

如需获得查看、取消或删除 MIG 中的调整大小请求所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色可提供在 MIG 中查看、取消或删除调整大小请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需在 MIG 中查看、取消或删除调整大小请求,您需要以下权限:

  • 在 MIG 中取消或删除调整大小请求: compute.instanceGroupManagers.update
  • 查看 MIG 中的调整大小请求列表: compute.instanceGroupManagers.list
  • 如需查看调整大小请求的详细信息: compute.instanceGroupManagers.get

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

查看您的调整大小请求

如需查看 MIG 中的调整大小请求的相关信息,请使用以下方法之一:

查看 MIG 中的调整大小请求列表

如需查看 MIG 中所有调整大小请求的列表,请选择以下选项之一:

如需查看区域级 MIG 中所有调整大小请求的列表,请使用 gcloud CLI 或 REST API。否则,如需查看可用区级 MIG 中所有调整大小请求的列表,请选择以下任一选项:

控制台

  1. 在 Trusted Cloud 控制台中,前往实例群组页面。

    进入“实例组”

  2. 名称列中,点击包含调整大小请求的 MIG 的名称。

    系统会打开此 MIG 的概览页面。

  3. 调整大小请求行中,点击 修改调整大小请求

    此时会显示调整大小请求窗格。如果调整大小请求的详细信息列显示超出配额预计解决时间:无限期值,则表示您的请求遇到了错误。您可以点击这些值以了解详情。

    如需详细了解如何排查错误,请参阅本文档中的查看调整大小请求的详细信息

gcloud

替换以下内容:

  • INSTANCE_GROUP_NAME:具有已接受、成功、已取消或失败的调整大小请求的 MIG 的名称。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

对于区域级 MIG,输出类似于以下内容:

NAME: rr-01
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 5
STATE: SUCCEEDED
REQUESTED_RUN_DURATION: P1D

NAME: rr-02
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 10
STATE: ACCEPTED
REQUESTED_RUN_DURATION: P3D

REST

  • 如需查看可用区级 MIG 中调整大小请求的列表,请使用 instanceGroupManagerResizeRequests.list 方法发送 GET 请求。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
  • 如需查看区域级 MIG 中的调整大小请求列表,请使用 beta.regionInstanceGroupManagerResizeRequests.list 方法发送 GET 请求。

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    

替换以下内容:

  • PROJECT_ID:包含已接受、成功、已取消或失败的调整大小请求的 MIG 所在项目的 ID。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

  • INSTANCE_GROUP_NAME:具有已接受、成功、已取消或失败的调整大小请求的现有 MIG 的名称。

区域级 MIG 的输出类似于以下内容:

{
  "kind": "compute#instanceGroupManagerResizeRequestList",
  "id": "projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests",
  "items": [
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "4247139565532196982",
      "creationTimestamp": "2024-01-08T07:51:53.034-08:00",
      "name": "rr-01",
      "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
      "count": 5,
      "resizeBy": 5,
      "requestedRunDuration": {
        "seconds": "86400",
        "nanos": 0
      },
      "state": "SUCCEEDED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-01",
      "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
    },
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "8095866098849525652",
      "creationTimestamp": "2024-01-11T08:04:11.851-08:00",
      "name": "rr-02",
      "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
      "count": 10,
      "resizeBy": 10,
      "requestedRunDuration": {
        "seconds": "259200",
        "nanos": 0
      },
      "state": "ACCEPTED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-02",
      "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/8095866098849525652"
    }
  ],
  "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests"
}

查看调整大小请求的详细信息

您可以查看调整大小请求的详细信息以查看其配置,并可在请求尚未成功时选择对其进行问题排查。

如果已接受的调整大小请求未成功,您可以通过检查请求详细信息中的 status.lastAttempt.error.errors.code 字段来排查问题。可能出现的错误代码如下:

  • QUOTA_EXCEEDED:您的项目缺少所请求资源的配额。如需增加项目的配额,请参阅申请配额调整

  • ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS:请求的资源暂时不可用。Compute Engine 已安排创建所请求的资源,并计划在资源可用时创建这些资源。如果 message 字段包含 Expected time is indefinite,Google 建议您取消请求并尝试以下一项或多项操作:

    • 创建新的调整大小请求,其中请求的虚拟机数量较少。

    • 在 MIG 中使用其他机器类型,然后创建新的调整大小请求。如需使用其他机器类型,请创建新的实例模板,然后使用该模板创建或更新 MIG

    • 在位于其他区域或可用区中的 MIG 中创建调整大小请求。

如需查看调整大小请求的详细信息,请选择以下选项之一:

gcloud

替换以下内容:

  • INSTANCE_GROUP_NAME:MIG 的名称。

  • RESIZE_REQUEST_NAME:您要查看详细信息的调整大小请求的名称。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

对于区域级 MIG,输出类似于以下内容:

creationTimestamp: '2024-09-23T02:27:09.575-07:00'
id: '6386622402379156098'
kind: compute#instanceGroupManagerResizeRequest
name: example-request
requestedRunDuration:
  nanos: 0
  seconds: '86400'
resizeBy: 10
selfLink: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/6386622402379156098
state: ACCEPTED
status:
  lastAttempt:
    error:
      errors:
      - code: QUOTA_EXCEEDED
        message: Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1.
      - code: ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
        message: There are currently not enough resources available to fulfill the request. Expected time is indefinite.
        - errorDetails:
          - errorInfo:
            - metadatas:
              - estimatedAvailabilityTime: '9999-12-31T23:59:59.999999999Z'
zone: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a

REST

  • 如需查看可用区级 MIG 中调整大小请求的详细信息,请使用 instanceGroupManagerResizeRequests.get 方法发送 GET 请求。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    
  • 如需查看区域级 MIG 中调整大小请求的详细信息,请使用 beta.regionInstanceGroupManagerResizeRequests.get 方法发送 GET 请求。

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    

替换以下内容:

  • PROJECT_ID:可用区级 MIG 所在项目的 ID。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

  • INSTANCE_GROUP_NAME:调整大小请求所在的 MIG 的名称。

  • RESIZE_REQUEST_NAME:要查看详细信息的现有调整大小请求的名称。

输出类似于以下内容:

{
  "kind": "compute#instanceGroupManagerResizeRequest",
  "id": "6386622402379156098",
  "creationTimestamp": "2024-09-23T02:27:09.575-07:00",
  "name": "example-request",
  "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
  "resizeBy": 10,
  "requestedRunDuration": {
    "seconds": "86400",
    "nanos": 0
  },
  "state": "SUCCEEDED",
  "status": {
    "lastAttempt": {
      "error": {
        "errors": [
          {
            "code": "QUOTA_EXCEEDED",
            "message": "Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1."
          },
          {
            "code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
            "message": "There are currently not enough resources available to fulfill the request. Expected time is indefinite.",
            "errorDetails": [
              {
                "errorInfo":{
                  "metadatas":{
                    "estimatedAvailabilityTime": "9999-12-31T23:59:59.999999999Z"
                  }
                }
              }
            ]
          }
        ]
      }
    }
  },
  "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request",
  "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/6386622402379156098"
}

取消 MIG 中的调整大小请求

您可以取消 MIG 中的调整大小请求,以阻止 MIG 尝试创建所请求的虚拟机数量。您只能取消已接受的 (ACCEPTED) 调整大小请求。取消调整大小请求后,您可以将其删除,也可以让 Compute Engine 在 14 天后自动删除该请求。

如需同时取消多个调整大小请求,请使用Trusted Cloud 控制台或 Google Cloud CLI。否则,如需取消单个调整大小请求,请选择以下任一选项:

控制台

  1. 在 Trusted Cloud 控制台中,前往实例群组页面。

    进入“实例组”

  2. 名称列中,点击包含调整大小请求的 MIG 的名称。

    系统会打开此 MIG 的概览页面。

  3. 调整大小请求行中,点击 修改调整大小请求

    此时会显示调整大小请求窗格。

  4. 选择要取消的调整大小请求。

  5. 点击 取消,然后点击确认

gcloud

替换以下内容:

  • INSTANCE_GROUP_NAME:已接受调整大小请求的 MIG 的名称。

  • RESIZE_REQUEST_NAMES:指定的可用区级 MIG 中已接受的调整大小请求的名称的逗号分隔列表。例如,指定 request-1,request-2

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

REST

  • 如需取消可用区级 MIG 中的调整大小请求,请使用 instanceGroupManagerResizeRequests.cancel 方法发送 POST 请求。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME/cancel
    
  • 如需取消区域级 MIG 中的调整大小请求,请使用 beta.regionInstanceGroupManagerResizeRequests.cancel 方法发送 POST 请求。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME/cancel
    

替换以下内容:

  • PROJECT_ID:已接受调整大小请求的现有可用区级 MIG 所在项目的 ID。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

  • INSTANCE_GROUP_NAME:MIG 的名称。

  • RESIZE_REQUEST_NAME:要取消的调整大小请求的名称。

在 MIG 中删除调整大小请求

默认情况下,Compute Engine 会在将请求的状态设置为以下状态之一后 14 天内自动删除调整大小请求:

  • 成功 (SUCCEEDED)

  • 已失败 (FAILED)

  • 已取消 (CANCELLED)

不过,您可以在到期之前立即删除调整大小请求,如本部分所述。

删除成功的调整大小请求不会删除通过该请求创建的虚拟机。MIG 会在这些虚拟机的请求运行时长结束时自动将其删除。但是,如果您的作业已完成运行,并且您不再需要虚拟机,请删除虚拟机

如需同时删除多个调整大小请求,请使用Trusted Cloud 控制台或 gcloud CLI。否则,如需删除单个调整大小请求,请选择以下任一选项:

控制台

  1. 在 Trusted Cloud 控制台中,前往实例群组页面。

    进入“实例组”

  2. 名称列中,点击包含调整大小请求的 MIG 的名称。

    系统会打开此 MIG 的概览页面。

  3. 调整大小请求行中,点击 修改调整大小请求

    此时会显示调整大小请求窗格。

  4. 选择要删除的调整大小请求。

  5. 点击 删除,然后点击确认

gcloud

替换以下内容:

  • INSTANCE_GROUP_NAME:包含成功、失败或已取消的调整大小请求的 MIG 的名称。

  • RESIZE_REQUEST_NAMES:要从 MIG 中删除的调整大小请求的名称的逗号分隔列表。例如,指定 request-1,request-2

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

REST

  • 如需删除可用区级 MIG 中的调整大小请求,请使用 instanceGroupManagerResizeRequests.delete 方法发送 DELETE 请求。

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    
  • 如需删除区域级 MIG 中的调整大小请求,请使用 beta.regionInstanceGroupManagerResizeRequests.delete 方法发送 DELETE 请求。

    DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    

替换以下内容:

  • PROJECT_ID:现有区域级 MIG 所在项目的 ID,该 MIG 具有成功、失败或已取消的调整大小请求。

  • ZONE:该 MIG 所在的可用区。

  • REGION:MIG 所在的区域。

  • INSTANCE_GROUP_NAME:MIG 的名称。

  • RESIZE_REQUEST_NAME:要删除的调整大小请求的名称。

后续步骤