查看 Compute Engine 執行個體中的正常關機


本文說明如何查看 Compute Engine 執行個體中的正常關機設定和進度。如要進一步瞭解正常關機,請參閱「正常關機總覽」。

查看執行個體詳細資料時,您可以執行下列操作:

  • 查看正常關機設定。您可以確認是否已啟用正常關機,以及關機時間長度。

  • 監控正常關機。正常關機程序進行中時,您可以檢查下列事項:

    • 安全關機程序逾時。

    • 如果正在進行停止或刪除作業。

事前準備

  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 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. 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.

      2. Set a default region and zone.
      3. 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 驗證說明文件中的「Authenticate for using REST」。

必要的角色

如要取得查看 Compute 執行個體正常關機的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含 compute.instances.get on the project 權限,這是查看運算執行個體正常關機狀態的必要權限。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

查看安全關機設定

如要查看運算執行個體中的正常關機設定,請選取下列任一選項:

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 在「Name」(名稱) 欄中,按一下執行個體的名稱。

    執行個體的詳細資料頁面會在「詳細資料」分頁中開啟。

  3. 如要檢查安全關機設定,請在「可用性政策」部分,查看「安全關機最長持續時間」欄位的值。這個欄位會顯示正常關機時間。如果顯示連字號 (-),表示已停用正常關機。

gcloud

如要查看執行個體中的正常關機設定,請使用 gcloud beta compute instances describe 指令

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:執行個體的名稱。

  • ZONE:執行個體所在的區域。

如果已啟用正常關機,輸出結果會類似以下內容:

...
scheduling:
  ...
  gracefulShutdown:
    enabled: true
    maxDuration:
      seconds: 'MAX_DURATION'
  ...
...

輸出內容包含 MAX_DURATION 值。這個值表示正常關機期間的長度 (以秒為單位)。如果您在執行個體中啟用正常關機時,未指定自訂關機時間,Compute Engine 會省略 maxDuration 欄位,並將正常關機時間設為 10 分鐘。

REST

如要在執行個體中查看正常關機設定,請對 Beta 版 instances.get 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

更改下列內容:

  • PROJECT_ID:您建立執行個體的專案 ID。

  • ZONE:執行個體所在的區域。

  • INSTANCE_NAME:執行個體的名稱。

如果已啟用正常關機,輸出結果會類似以下內容:

{
  ...
  "scheduling": {
    ...
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  },
  ...
}

輸出內容包含 MAX_DURATION 值。這個值表示正常關機期間的長度 (以秒為單位)。如果您在執行個體中啟用正常關機時,未指定自訂關機時間,Compute Engine 會省略 maxDuration 欄位,並將正常關機時間設為 10 分鐘。

監控正常關機

如要監控運算執行個體中進行中的正常關機程序,請選取下列其中一個選項:

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 在「Name」(名稱) 欄中,按一下執行個體的名稱。

    執行個體的詳細資料頁面會在「詳細資料」分頁中開啟。

  3. 如果正在執行正常關機程序,請在「基本資訊」部分檢查下列欄位:

    • 狀態:這個欄位會顯示執行個體的狀態。在正常關機期間,這個欄位會顯示「Pending stop」(停止中)和倒數計時器。計時器會倒數計時,直到正常關機結束為止。

    • 目標狀態:這個欄位會顯示 Compute Engine 是否正在停止 (已停止) 或刪除 (已刪除) 執行個體。

gcloud

如要監控執行個體中進行中的正常關機作業,請使用 gcloud beta compute instances describe 指令

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:執行個體的名稱。

  • ZONE:執行個體所在的區域。

如果正在進行正常關機,輸出結果會類似如下:

...
resourceStatus:
  ...
  shutdownDetails:
    maxDuration:
      seconds: 'MAX_DURATION'
    requestTimestamp: 'REQUEST_TIMESTAMP'
    stopState: STOP_STATE
    targetState: TARGET_STATE
...
status: PENDING_STOP
...

這項輸出內容包含下列值:

  • MAX_DURATION:正常關機期間的長度 (以秒為單位)。Compute Engine 將 STOP_STATE 設為 STOPPING 後,就會刪除 maxDuration 欄位。

  • REQUEST_TIMESTAMPSTOP_STATE 開始的時間戳記。

  • STOP_STATE:執行個體的停止階段。這個值可以是下列任一值:

    • PENDING_STOP:Compute Engine 已啟動正常關機程序。執行個體會維持這個狀態,直到您手動結束正常關機程序,或正常關機程序逾時為止。

    • STOPPING:正常關機已結束,Compute Engine 會繼續執行停止或刪除作業。

  • TARGET_STATE:Compute Engine 是要停止 (STOPPED) 還是刪除 (DELETED) 執行個體。

如果停止作業正在執行,Compute Engine 會先將 status 欄位設為 TERMINATE,然後刪除 shutdownDetails 欄位。

REST

如要監控執行個體中進行中的正常關機程序,請對 beta instances.get 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

更改下列內容:

  • PROJECT_ID:您建立執行個體的專案 ID。

  • ZONE:執行個體所在的區域。

  • INSTANCE_NAME:執行個體的名稱。

如果正在進行正常關機,輸出結果會類似如下:

{
  ...
  "resourceStatus": {
    ...
    "shutdownDetails": {
      "maxDuration": {
        "seconds": "MAX_DURATION"
      },
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
  },
  ...
  "status": "PENDING_STOP",
  ...
}

這項輸出內容包含下列值:

  • MAX_DURATION:正常關機期間的長度 (以秒為單位)。Compute Engine 將 STOP_STATE 設為 STOPPING 後,就會刪除 maxDuration 欄位。

  • REQUEST_TIMESTAMPSTOP_STATE 開始的時間戳記。

  • STOP_STATE:執行個體的停止階段。這個值可以是下列任一值:

    • PENDING_STOP:Compute Engine 已啟動正常關機程序。執行個體會維持這個狀態,直到您手動結束正常關機程序,或正常關機程序逾時為止。

    • STOPPING:正常關機已結束,Compute Engine 會繼續執行停止或刪除作業。

  • TARGET_STATE:Compute Engine 是要停止 (STOPPED) 還是刪除 (DELETED) 執行個體。

如果停止作業正在執行,Compute Engine 會先將 status 欄位設為 TERMINATE,然後刪除 shutdownDetails 欄位。

中繼資料伺服器

  1. 連線至執行個體。

  2. 查詢中繼資料伺服器:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
    

    如果正在進行正常關機,輸出結果會類似如下:

    {
      "maxDuration": "MAX_DURATION",
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
    

    輸出內容包含下列值:

    • MAX_DURATION:正常關機期間的長度 (以秒為單位)。Compute Engine 將 STOP_STATE 設為 STOPPING 後,就會刪除 maxDuration 欄位。

    • REQUEST_TIMESTAMPSTOP_STATE 開始的時間戳記。

    • STOP_STATE:執行個體的停止階段。 可能的值如下:

      • PENDING_STOP:Compute Engine 已啟動正常關機程序。執行個體會維持這個狀態,直到您手動結束安全關機程序,或安全關機程序逾時為止。

      • STOPPING:正常關機已結束,Compute Engine 會繼續執行停止或刪除作業。

    • TARGET_STATE:Compute Engine 是要停止 (STOPPED) 還是刪除 (DELETED) 執行個體。

後續步驟