本文档介绍如何在托管式实例组 (MIG) 中创建调整大小请求后执行以下操作:
查看 MIG 中的调整大小请求,以监控其状态或进行问题排查。
取消调整大小请求以阻止 MIG 创建请求数量的虚拟机 (VM) 实例。
删除调整大小请求
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得查看、取消或删除 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 中所有调整大小请求的列表及其详细信息,例如状态、请求的虚拟机数量和虚拟机的运行时长。
如需查看 MIG 中所有调整大小请求的列表,请执行以下操作:
在 Google Cloud Console 中,转到实例组页面。
在名称列中,点击包含调整大小请求的 MIG 的名称。
系统会打开此 MIG 的概览页面。
在调整大小请求行中,点击
修改调整大小请求。此时会显示调整大小请求窗格。
如需查看 MIG 中所有调整大小请求的列表,请使用 instance-groups managed resize-requests list
命令。
gcloud compute instance-groups managed resize-requests list INSTANCE_GROUP_NAME \
--zone=ZONE
替换以下内容:
INSTANCE_GROUP_NAME
:包含已接受、成功、已取消或失败的调整大小请求的现有可用区级 MIG 的名称。ZONE
:该 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
如需查看可用区级 MIG 中所有调整大小请求的列表,请向 instanceGroupManagerResizeRequests.list
方法发出 GET
请求。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers/INSTANCE_GROUP_NAME /resizeRequests
替换以下内容:
PROJECT_ID
:包含已接受、成功、取消或失败的调整大小请求的现有可用区级 MIG 所在项目的 ID。ZONE
:该 MIG 所在的可用区。INSTANCE_GROUP_NAME
:包含已接受、成功、已取消或失败的调整大小请求的现有可用区级 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/beta/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/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-01",
"selfLinkWithId": "https://www.googleapis.com/compute/beta/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/beta/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/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-02",
"selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/8095866098849525652"
}
],
"selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests"
}
查看调整大小请求的详细信息
您可以查看调整大小请求的详细信息以查看其配置,并视需要在请求未成功时进行问题排查。
如需了解 (ACCEPTED
) 调整大小请求失败的原因,请查看详细信息中的 lastAttempt.error.errors.code
字段。可能的错误代码如下:
ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
:请求的资源暂时不可用。QUOTA_EXCEEDED
:您的项目缺少所请求资源的配额。如需增加项目的配额,请参阅申请更高配额。
如需查看可用区级 MIG 中调整大小请求的详细信息,请使用 instance-groups managed resize-requests describe
命令。
gcloud compute instance-groups managed resize-requests describe INSTANCE_GROUP_NAME \
--resize-request=RESIZE_REQUEST_NAME \
--zone=ZONE
替换以下内容:
INSTANCE_GROUP_NAME
:调整大小请求所在的现有可用区级 MIG 的名称。RESIZE_REQUEST_NAME
:要查看其详细信息的现有调整大小请求的名称。ZONE
:该 MIG 所在的可用区。
输出类似于以下内容:
creationTimestamp: '2024-01-10T07:51:53.034-08:00'
id: '4247139565532196982'
kind: compute#instanceGroupManagerResizeRequest
name: example-request
requestedRunDuration:
nanos: 0
seconds: '6000'
resizeBy: 10
selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request
selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982
state: ACCEPTED
status:
lastAttempt:
error:
errors:
- code: ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
message: There are currently not enough resources available to fulfill the request.
- code: QUOTA_EXCEEDED
message: Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1.
zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a
如需查看 MIG 中调整大小请求的详细信息,请向 instanceGroupManagerResizeRequests.get
方法发出 GET
请求。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers/INSTANCE_GROUP_NAME /resizeRequests/RESIZE_REQUEST_NAME
替换以下内容:
PROJECT_ID
:可用区级 MIG 所在项目的 ID。ZONE
:该 MIG 所在的可用区。INSTANCE_GROUP_NAME
:调整大小请求所在的现有可用区级 MIG 的名称。RESIZE_REQUEST_NAME
:要查看其详细信息的现有调整大小请求的名称。
输出类似于以下内容:
{
"kind": "compute#instanceGroupManagerResizeRequest",
"id": "4247139565532196982",
"creationTimestamp": "2024-01-10T07:51:53.034-08:00",
"name": "example-request",
"zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a",
"count": 10,
"resizeBy": 10,
"requestedRunDuration": {
"seconds": "6000",
"nanos": 0
},
"state": "ACCEPTED",
"status": {
"lastAttempt": {
"error": {
"errors": [
{
"code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
"message": "There are currently not enough resources available to fulfill the request.",
},
{
"code": "QUOTA_EXCEEDED",
"message": "Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1."
}
]
}
}
},
"selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request",
"selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
}
取消 MIG 中的调整大小请求
您可以取消 MIG 中的调整大小请求,以阻止 MIG 尝试创建请求数量的虚拟机。您只能取消已接受 (ACCEPTED
) 的调整大小请求。取消调整大小请求后,您可以将其删除,也可以让 Compute Engine 在 14 天后自动删除它。
如需一次取消多个调整大小请求,请使用 Google Cloud 控制台或 gcloud CLI。
如需取消可用区级 MIG 中的调整大小请求,请执行以下操作:
在 Google Cloud Console 中,转到实例组页面。
在名称列中,点击包含调整大小请求的 MIG 的名称。
系统会打开此 MIG 的概览页面。
在调整大小请求行中,点击
修改调整大小请求。此时会显示调整大小请求窗格。
选择要取消的调整大小请求。
点击
取消,然后点击确认。
如需取消可用区级 MIG 中的调整大小请求,请使用 instance-groups managed resize-requests cancel
命令。
gcloud compute instance-groups managed resize-requests cancel INSTANCE_GROUP_NAME \
--resize-requests=RESIZE_REQUEST_NAMES \
--zone=ZONE
替换以下内容:
INSTANCE_GROUP_NAME
:已接受调整大小请求的现有可用区级 MIG 的名称。RESIZE_REQUEST_NAMES
:指定的可用区级 MIG 中已接受的调整大小请求的名称列表(以英文逗号分隔)。例如,指定request-1,request-2
。ZONE
:该 MIG 所在的可用区。
如需取消可用区级 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
替换以下内容:
PROJECT_ID
:具有接受的调整大小请求的现有可用区级 MIG 所在项目的 ID。ZONE
:该 MIG 所在的可用区。INSTANCE_GROUP_NAME
:MIG 的名称。RESIZE_REQUEST_NAME
:要取消的调整大小请求的名称。
删除 MIG 中的调整大小请求
默认情况下,Compute Engine 会在将请求状态设置为以下状态之一后的 14 天内自动删除调整大小请求:
成功 (
SUCCEEDED
)已失败 (
FAILED
)已取消 (
CANCELLED
)
但是,您可以在此之前立即删除调整大小请求,如本部分所述。
删除成功的调整大小请求不会删除通过该请求创建的虚拟机。MIG 会在请求的运行时长结束时自动删除这些虚拟机。但是,如果您的作业已完成运行,而您不再需要虚拟机,请删除虚拟机。
如需一次删除多个调整大小请求,请使用 Google Cloud 控制台或 gcloud CLI。
如需删除可用区级 MIG 中的调整大小请求,请执行以下操作:
在 Google Cloud Console 中,转到实例组页面。
在名称列中,点击包含调整大小请求的 MIG 的名称。
系统会打开此 MIG 的概览页面。
在调整大小请求行中,点击
修改调整大小请求。此时会显示调整大小请求窗格。
选择要删除的调整大小请求。
点击
删除,然后点击确认。
如需删除可用区级 MIG 中的调整大小请求,请使用 instance-groups managed resize-requests delete
命令。
gcloud compute instance-groups managed resize-requests delete INSTANCE_GROUP_NAME \
--resize-requests=RESIZE_REQUEST_NAMES \
--zone=ZONE
替换以下内容:
INSTANCE_GROUP_NAME
:具有成功、失败或取消的调整大小请求的现有可用区级 MIG 的名称。RESIZE_REQUEST_NAMES
:要在 MIG 中删除的调整大小请求的名称列表(以英文逗号分隔)。例如,指定request-1,request-2
。ZONE
:该 MIG 所在的可用区。
如需删除可用区级 MIG 中的调整大小请求,请向 instanceGroupManagerResizeRequests.delete
方法发出 DELETE
请求。
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers/INSTANCE_GROUP_NAME /resizeRequests/RESIZE_REQUEST_NAME
替换以下内容:
PROJECT_ID
:具有成功、失败或取消的调整大小请求的现有可用区级 MIG 所在项目的 ID。ZONE
:该 MIG 所在的可用区。INSTANCE_GROUP_NAME
:MIG 的名称。RESIZE_REQUEST_NAME
:要删除的调整大小请求的名称。
后续步骤
- 了解如何查看 MIG 中托管式虚拟机的相关信息。