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

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

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

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

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

    • 正常關機程序逾時。

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

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

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

這個預先定義的角色具備專案的 compute.instances.get 權限,可查看運算執行個體的正常關機程序。

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

查看正常關機設定

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

控制台

  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) 執行個體。

後續步驟