如要測試區域代管執行個體群組 (MIG) 是否已過度佈建,且能承受可用區中斷,請使用下列範例模擬可用區故障。
事前準備
- 如要使用本指南中的指令列範例,請安裝 Google Cloud CLI。
-
如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
gcloud
-
安裝 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 進行驗證」一節。
使用指令碼模擬可用區中斷
這個指令碼會停止和啟動 Apache 來做為預設案例。如果這個指令碼不適用於您的應用程式,請以您自己的失敗和復原案例取代停止和啟動 Apache 的指令。
在群組中的每個 VM 持續部署及執行這個指令碼。方法是將指令碼新增至執行個體範本,或將指令碼加入自訂映像檔,並在執行個體範本中使用該映像檔。
透過設定以下兩個專案中繼資料欄位來模擬區域失敗的情形:
failed_zone:設定您要模擬服務中斷的區域 (將故障範圍限制在單一區域)。failed_instance_names:依名稱選擇要離線的 VM (將故障範圍限制在名稱包含這個字串的 VM)。
您可以使用 gcloud CLI 設定這項中繼資料。舉例來說,下列指令會將可用區中斷設定為
europe-west1-b可用區,並影響名稱開頭為base-instance-name的 VM:gcloud compute project-info add-metadata --metadata failed_zone='europe-west1-b',failed_instance_names='base-instance-name-'
完成模擬服務中斷後,請透過移除中繼資料鍵從故障中復原:
gcloud compute project-info remove-metadata --keys failed_zone,failed_instance_names
以下提供一些您可以使用這個指令碼執行之失敗案例的建議:
- 完全停止應用程式,看看 MIG 如何回應。
- 讓 VM 在負載平衡健康狀態檢查中傳回「健康狀態不良」。
- 修改 iptables,封鎖部分 VM 往來流量。
- 關閉 VM。根據預設,區域 MIG 很快就會重新建立執行個體,但只要設定中繼資料值,新的執行個體就會在指令碼執行後立即關閉。如此將會導致重複當機。
後續步驟
- 監控 MIG 中的執行個體分布情形,觀察模擬中斷期間和之後,各可用區的容量變化。
- 瞭解如何建立可擴充且有彈性的網路應用程式。
- 瞭解 Google Cloud Platform 上的災難復原。