代管執行個體群組疑難排解


有幾個問題可能會導致受管理的執行個體群組 (MIG) 無法成功建立或重建 VM 執行個體。

是否為已刪除的 MIG 產生記錄

問題可能與下列情況有關。

已連結的自動配置器仍存在

如果您使用 Compute Engine API 刪除 MIG,但未另外發出要求來刪除附加的自動配置器,則記錄探索器可能會顯示含有以下訊息的記錄:

The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/DELETED_INSTANCE_GROUP_NAME' was not found.

解決方法

如要解決這個問題,請使用 Compute Engine API 方法刪除已附加的自動配置器:

如果 MIG 無法建立或重新建立執行個體

問題可能與下列情況有關。

已存在啟動磁碟

根據預設,建立執行個體時會建立新的開機永久磁碟。開機磁碟的名稱與 VM 名稱相符。如果您將 VM 命名為 my-instance,磁碟的名稱也會是 my-instance。如果已有永久磁碟使用這個名稱,要求就會失敗。如要解決這個問題,您可以選擇拍攝快照,然後刪除現有的永久磁碟。

執行個體範本無效

如果您最近更新了執行個體範本,可能會出現無效的屬性,導致 MIG 無法建立 VM。檢查屬性是否有下列常見錯誤:

  • 您指定了不存在的資源,例如來源映像檔。
  • 資源名稱拼字有誤。
  • 您嘗試在讀寫模式下附加現有的非開機永久磁碟,但群組中含有多個 VM。如果群組包含多個 VM,您必須使用唯讀模式,才能連結其他任何磁碟,讓群組中的所有 VM 共用。

資源類型超出上限

在區域 MIG 中建立超過 2,000 個 VM,或在區域 MIG 中建立超過 1,000 個 VM 時,會發生下列錯誤。您已達到執行個體群組的大小上限。

錯誤訊息:

ERROR: (gcloud.compute.<INSTANCE_GROUP_TYPE>.<METHOD>) Could not
fetch resource:

 - Exceeded limit 'MAX_INSTANCES_IN_INSTANCE_GROUP' on resource 'PROJECT_ID'.
 Limit: NUMBER

解決方法

如要解決這個問題,請嘗試下列任一做法:

如果無法刪除 MIG 或其執行個體

問題可能與下列情況有關。

在區域或區域中找不到資源

嘗試刪除區域 MIG 時,如果您指定 --zone 標記、未指定區域或指定錯誤區域,就會發生下列錯誤。如果您嘗試刪除區域性 MIG 並指定 --region 標記,可能會發生類似錯誤。

錯誤訊息:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    

解決方法

如要解決這個問題,請嘗試下列任一做法:

後端服務使用資源

負載平衡器的後端服務正在使用執行個體群組時,您無法移除該群組。您必須先從後端服務中移除執行個體,才能刪除執行個體群組。

錯誤訊息:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE

解決方法

  1. 選用:排空後端執行個體群組。

  2. 從區域或全域後端服務中移除 MIG。

    • 如果是區域 MIG,請執行下列指令:

      gcloud compute backend-services remove-backend BACKEND_SERVICE \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-zone=ZONE \
          [--region=REGION | --global]
      
    • 如為地區 MIG,請執行下列指令:

      gcloud compute backend-services remove-backend BACKEND_SERVICE  \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-region=REGION \
          [--region=REGION | --global]
      
  3. 刪除 MIG:

    gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
    

如果 MIG 持續嘗試重新建立執行個體

問題可能與下列情況有關。

健康狀態檢查探測器無法連線至執行個體

如果您已設定自動修復政策,但未設定 (或誤設定) 可讓健康狀態檢查探測器存取應用程式的防火牆規則,則 VM 會顯示為不健康,而 MIG 會持續嘗試重新建立 VM。如要瞭解如何設定健康狀態檢查防火牆規則,請參閱「健康狀態檢查設定範例」。