關閉 MIG 中的維修功能


本文說明如何關閉代管執行個體群組 (MIG) 中故障和不正常的 VM 修復功能,以及如何設定 MIG 來修復 VM (如果已關閉)。

根據預設,MIG 會重新建立群組中失敗的 VM,自動修復該 VM。如果您已設定以應用程式為準的健康狀態檢查,MIG 也會修復應用程式健康狀態檢查失敗的 VM。根據以應用程式為準的健康狀態檢查結果修復 VM,也稱為自動修復

如果不想讓 MIG 修復失敗或不正常的 VM,可以關閉 MIG 的修復功能。在您想排解 VM 故障問題、實作自己的修復邏輯,或監控應用程式健康狀態 (而不修復健康狀態不良的 VM) 時,關閉修復功能會很有幫助。

如要檢查 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. 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」。

關閉 MIG 中的修復作業

關閉 MIG 的修復功能後,系統預設會停用失敗的 VM 修復和自動修復功能。如要只關閉自動修復功能,請參閱「關閉自動修復功能」。

主控台

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

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

  2. 按一下要停用修復功能的 MIG 名稱。

  3. 按一下 [編輯]

  4. 在「VM instance lifecycle」(VM 執行個體生命週期) 區段中,將「Default action on failure」(失敗時的預設動作) 欄位設為「No action」(沒有動作)

  5. 如果您已設定自動修復功能,但不想讓 MIG 關閉自動修復功能,請將「健康狀態檢查失敗時」欄位設為「修復執行個體」

  6. 按一下 [儲存]

gcloud

如要在 MIG 中關閉修復功能,請使用下列 update 指令。這會預設關閉自動修復功能。

gcloud compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=do-nothing \
    --zone=ZONE

如果在 MIG 中設定了自動修復功能,且不想預設關閉這項功能,請使用 beta update 指令--action-on-vm-failed-health-check 標記設為 repair。即使關閉修復失敗 VM 的功能,這項設定也能確保健康狀態不良的 VM 繼續自動修復。

gcloud beta compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=do-nothing \
    --action-on-vm-failed-health-check=repair \
    --zone=ZONE

更改下列內容:

  • MIG_NAME:執行個體群組的名稱。
  • ZONE:MIG 所在的可用區。如為區域 MIG,請使用 --region=REGION 旗標。

REST

如要在 MIG 中關閉修復功能,請使用下列 API 方法。這會預設關閉自動修復功能。

舉例來說,在區域 MIG 中發出下列呼叫。這項設定預設會關閉自動修復功能。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceLifecyclePolicy":
    {
      "defaultActionOnFailure": "DO_NOTHING"
    }
  }

如果在 MIG 中設定自動修復功能,但不想預設關閉自動修復功能,請使用下列 API 方法將 onFailedHealthCheck 標記設為 REPAIR。這樣一來,即使關閉修復失敗的 VM,系統仍會繼續自動修復健康狀態不良的 VM。

舉例來說,在區域 MIG 中發出下列呼叫:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceLifecyclePolicy":
    {
      "defaultActionOnFailure": "DO_NOTHING",
      "onFailedHealthCheck": "REPAIR"
    }
  }

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • MIG_NAME:MIG 的名稱。
  • ZONE:MIG 所在的可用區。如果是區域 MIG,請在網址中使用 regions/REGION

限制

如果 MIG 具有下列任一項,則無法將 defaultActionOnFailure 欄位設為 DO_NOTHING,在 MIG 中關閉修復功能:

關閉自動修復功能

在 MIG 中設定應用程式健康狀態檢查後,如果不想讓 MIG 修復任何健康狀態不良的 VM,可以個別關閉自動修復功能。這項操作不會關閉失敗 VM 的修復作業。

主控台

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

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

  2. 按一下要關閉自動修復功能的 MIG 名稱。

  3. 按一下 [編輯]

  4. 在「VM instance lifecycle」(VM 執行個體生命週期) 區段中,將「On failed health check」(健康狀態檢查失敗時) 欄位設為「No action」(不採取任何動作)

  5. 按一下 [儲存]

gcloud

如要關閉 MIG 的自動修復功能,請使用 Beta 版 update 指令,並將 --action-on-vm-failed-health-check 旗標設為 do-nothing

舉例來說,如要建立區域 MIG,請使用下列指令:

gcloud beta compute instance-groups managed update MIG_NAME \
    --action-on-vm-failed-health-check=do-nothing \
    --zone=ZONE

更改下列內容:

  • MIG_NAME:MIG 的名稱。
  • ZONE:MIG 所在的可用區。如為區域 MIG,請使用 --region=REGION 旗標。

REST

如要在 MIG 中關閉自動修復功能,請使用下列 API 方法,並將 --action-on-vm-failed-health-check 標記設為 do-nothing

舉例來說,您可以提出下列要求,關閉區域 MIG 的自動修復功能:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "instanceLifecyclePolicy":
   {
     "onFailedHealthCheck": "DO_NOTHING"
   }
}

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • ZONE:MIG 所在的可用區。如果是區域 MIG,請在網址中使用 regions/REGION
  • MIG_NAME:執行個體群組的名稱。

開啟修復或自動修復功能

根據預設,MIG 會修復失敗的 VM,如果已設定自動修復功能,MIG 也會修復健康狀態不良的 VM。如果已關閉修復或自動修復功能,可以重新開啟。

主控台

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

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

  2. 按一下要啟用修復功能的 MIG 名稱。

  3. 按一下 [編輯]

  4. 在「VM instance lifecycle」(VM 執行個體生命週期) 專區中,執行以下操作:

    • 如要修復失敗的 VM,請將「失敗時的預設動作」欄位設為「修復執行個體」
    • 如要修復健康狀態不良的 VM,請將「健康狀態檢查失敗時」欄位設為「修復執行個體」。如果將這個值設為「預設動作」,自動修復功能就會使用您為「失敗時的預設動作」欄位設定的值。
  5. 完成後,按一下「儲存」即可套用變更。

gcloud

如要在 MIG 中啟用修復功能,請使用 update 指令。如果 --action-on-vm-failed-health-check 旗標的值為 default-action,這也會開啟自動修復功能。

gcloud compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=repair

如果您已個別關閉自動修復功能,並想再次開啟,請使用 beta update 指令

gcloud beta compute instance-groups managed update MIG_NAME \
    --action-on-vm-failed-health-check=default-action OR repair

更改下列內容:

  • MIG_NAME 替換為 MIG 的名稱。
  • default-action OR repair:如要讓自動修復功能使用您為 VM 修復作業設定的相同設定,請將值設為 default-action。舉例來說,如果關閉失敗 VM 的修復功能,MIG 也會關閉自動修復功能。如要分開控管狀況不良的 VM 修復作業,請將值設為 repair

REST

如要在 MIG 中啟用修復功能,請使用下列 API 方法。如果 onFailedHealthCheck 欄位的值為 DEFAULT_ACTION,這項操作也會開啟自動修復功能。

舉例來說,在區域 MIG 中提出下列要求:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
    {
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "REPAIR"
      }
    }
  

如果您已個別關閉自動修復功能,並想重新開啟,請使用 Beta 版 API 方法,如下所示:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
  {
    "instanceLifecyclePolicy": {
      "onFailedHealthCheck": "DEFAULT_ACTION OR REPAIR"
    }
  }

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • ZONE:MIG 所在的可用區。如果是區域 MIG,請在網址中使用 regions/REGION
  • MIG_NAME:MIG 的名稱。
  • DEFAULT_ACTION OR REPAIR:如要讓自動修復功能使用與 VM 修復失敗相同的設定,請將值設為 DEFAULT_ACTION。舉例來說,如果關閉失敗 VM 的修復功能,MIG 也會關閉自動修復功能。如要個別設定自動修復功能,請將值設為 REPAIR

後續步驟