本頁說明在實驗期間發生「Fail Compute」錯誤類型時會發生什麼情況,以及在錯誤插入測試無法停止實驗時應採取的措施。
Fail Compute 故障的運作方式
Fail Compute 故障會使用資源標記標記 VM,並使用防火牆政策搭配以這些標記為目標的規則,封鎖所有輸入和輸出流量。這項設定會讓目標資源顯示為中斷服務,同時確保資源不受損,且能快速復原。
這項故障的目標可能是下列項目:
- 虛擬機器執行個體
- 根據指定資源標記的 VM
- 指定可用區或區域代管執行個體群組 (MIG) 中的 VM
- 可用區中的非 MIG VM 和可用區 MIG 中的 VM。
- 區域中的非 MIG,以及所有 MIG 中的 VM。
實驗執行期間會發生的情況
實驗會經歷不同的狀態,而相關資源也會隨之變更。
資源 |
|
|
|
VM |
無 |
繫結資源標記 |
取消繫結資源標記 |
MIG / RMIG |
無 |
關閉自動修復和自動調度資源功能 (如果已啟用) |
還原自動修復和自動調度資源設定 |
標記 |
為實驗建立專屬的 TagValue 資源 |
無 |
刪除標籤值 |
防火牆政策 |
建立系統層級的 FirewallPolicy 資源 |
填入「拒絕」規則,並將政策繫結至相關虛擬私有雲 |
從虛擬私有雲取消繫結並刪除 FirewallPolicy |
緊急手動復原
如果發生災難性的後端故障,導致 Fault Injection Testing 無法自動停止實驗,您可以手動移除繫結至受影響 VM 的資源標記,藉此手動還原 VM 資源的連線。以這些標記為目標的系統防火牆政策將不再適用,VM 實際上會與隔離錯誤分離。
所需權限
您需要下列 IAM 權限:
- 查看 VM 執行個體的必要條件:
compute.instances.getcompute.instances.list
- 查看及移除標記繫結的必要權限:
resourcemanager.tagValueBindings.listresourcemanager.tagValueBindings.delete
使用 Google Cloud 控制台 UI 手動復原
如要使用 Google Cloud 控制台執行復原作業,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 選取受隔離故障影響的特定 VM 執行個體。
- 在執行個體詳細資料頁面中,前往管理「標記」的部分。
- 找出與「Fault Injection Testing Fail Compute」錯誤相關的實驗專屬標記繫結。
- 從 VM 移除標記繫結。
移除標記後,相關聯的防火牆政策就不會再以 VM 為目標,連線也會恢復。
使用 gcloud CLI 手動復原
您可以使用 Google Cloud CLI,手動從 VM 移除實驗標記繫結。在下列指令中,將 TAG_VALUE_NAME,
PROJECT_NUMBER, ZONE 和 VM_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 為目標,連線也會恢復。