運算資源故障參考資料

本頁說明在實驗期間發生「Fail Compute」錯誤類型時會發生什麼情況,以及在錯誤插入測試無法停止實驗時應採取的措施。

Fail Compute 故障的運作方式

Fail Compute 故障會使用資源標記標記 VM,並使用防火牆政策搭配以這些標記為目標的規則,封鎖所有輸入和輸出流量。這項設定會讓目標資源顯示為中斷服務,同時確保資源不受損,且能快速復原。

這項故障的目標可能是下列項目:

實驗執行期間會發生的情況

實驗會經歷不同的狀態,而相關資源也會隨之變更。

資源

PREPARING

INJECTING

REVERTING

VM

繫結資源標記

取消繫結資源標記

MIG / RMIG

關閉自動修復和自動調度資源功能 (如果已啟用)

還原自動修復和自動調度資源設定

標記

為實驗建立專屬的 TagValue 資源

刪除標籤值

防火牆政策

建立系統層級的 FirewallPolicy 資源

填入「拒絕」規則,並將政策繫結至相關虛擬私有雲

從虛擬私有雲取消繫結並刪除 FirewallPolicy

緊急手動復原

如果發生災難性的後端故障,導致 Fault Injection Testing 無法自動停止實驗,您可以手動移除繫結至受影響 VM 的資源標記,藉此手動還原 VM 資源的連線。以這些標記為目標的系統防火牆政策將不再適用,VM 實際上會與隔離錯誤分離。

所需權限

您需要下列 IAM 權限:

  • 查看 VM 執行個體的必要條件:
    • compute.instances.get
    • compute.instances.list
  • 查看及移除標記繫結的必要權限:
    • resourcemanager.tagValueBindings.list
    • resourcemanager.tagValueBindings.delete

使用 Google Cloud 控制台 UI 手動復原

如要使用 Google Cloud 控制台執行復原作業,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
  2. 選取受隔離故障影響的特定 VM 執行個體。
  3. 在執行個體詳細資料頁面中,前往管理「標記」的部分。
  4. 找出與「Fault Injection Testing Fail Compute」錯誤相關的實驗專屬標記繫結。
  5. 從 VM 移除標記繫結。

移除標記後,相關聯的防火牆政策就不會再以 VM 為目標,連線也會恢復。

使用 gcloud CLI 手動復原

您可以使用 Google Cloud CLI,手動從 VM 移除實驗標記繫結。在下列指令中,將 TAG_VALUE_NAME, PROJECT_NUMBER, ZONEVM_NAME 換成您環境的特定值。

首先,請列出 VM 的目前標記繫結,以擷取實驗專屬的標記值名稱:

gcloud resource-manager tag bindings list --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME

使用上一個指令的輸出內容,判斷刪除步驟所需的 TAG_VALUE_NAME

gcloud resource-manager tag bindings delete --tag-value=TAG_VALUE_NAME --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME

移除標記後,相關聯的防火牆政策就不會再以 VM 為目標,連線也會恢復。