在 MIG 中查看、取消或刪除大小調整要求


本文說明在代管執行個體群組 (MIG) 中建立大小調整要求後,如何執行下列操作:

在 MIG 中建立大小調整要求後,您可以執行下列一或多項操作:

  • 查看大小調整要求,監控要求狀態或排解問題。

  • 取消規模調整要求,避免 MIG 建立所要求數量的虛擬機器 (VM) 執行個體。

  • 刪除不再需要的大小調整要求。

事前準備

  • 如果尚未瞭解,請參閱 調整大小要求的運作方式
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 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 驗證說明文件中的「Authenticate for using REST」。

必要的角色

如要取得權限,以便查看、取消或刪除 MIG 中的調整大小要求,請要求管理員授予您專案的 Compute 執行個體管理員 (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. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 在「Name」(名稱) 欄中,按一下包含調整大小要求的 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,該 MIG 含有已接受、成功、取消或失敗的大小調整要求。

  • ZONE:MIG 所在的可用區。

  • REGION:MIG 所在的區域。

  • INSTANCE_GROUP_NAME:現有 MIG 的名稱,且該 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 建議取消要求,並嘗試下列一或多種做法:

    • 建立新的規模調整要求,減少要求的 VM 數量。

    • 在 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 嘗試建立所要求數量的 VM。你只能取消已接受 (ACCEPTED) 的大小調整要求。取消大小調整要求後,您可以刪除要求,也可以讓 Compute Engine 在 14 天後自動刪除要求。

如要同時取消多個調整大小要求,請使用Google Cloud 控制台或 Google Cloud CLI。如要取消單一調整大小要求,請選取下列任一選項:

主控台

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 在「Name」(名稱) 欄中,按一下包含調整大小要求的 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,且該 MIG 具有已接受的調整大小要求。

  • ZONE:MIG 所在的可用區。

  • REGION:MIG 所在的區域。

  • INSTANCE_GROUP_NAME:MIG 的名稱。

  • RESIZE_REQUEST_NAME:要取消的大小調整要求名稱。

刪除 MIG 中的大小調整要求

根據預設,Compute Engine 會在將要求狀態設為下列其中一種狀態後 14 天,自動刪除大小調整要求:

  • 成功 (SUCCEEDED)

  • 失敗 (FAILED)

  • 已取消 (CANCELLED)

不過,您可以在這段時間內立即刪除調整大小要求,詳情請參閱本節。

刪除成功的大小調整要求不會刪除透過該要求建立的 VM。MIG 會在要求的執行時間結束時,自動刪除這些 VM。不過,如果作業已完成執行,且您不再需要 VM,請刪除 VM

如要同時刪除多個調整大小要求,請使用Google Cloud 主控台或 gcloud CLI。如要刪除單一調整大小要求,請選取下列任一選項:

主控台

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 在「Name」(名稱) 欄中,按一下包含調整大小要求的 MIG 名稱。

    MIG 的總覽頁面隨即開啟。

  3. 在「大小調整要求」列中,按一下「編輯大小調整要求」

    「大小調整要求」窗格隨即顯示。

  4. 選取要刪除的大小調整要求。

  5. 依序點選 「Delete」(刪除) 和「Confirm」(確認)

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:要刪除的調整大小要求名稱。

後續步驟