如要測試區域代管執行個體群組 (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 會在不久後重新建立該執行個體,但新執行個體會在指令碼執行後立即關閉自身,只要設定中繼資料值即可。如此將會導致重複當機。
後續步驟
- 瞭解如何建立可擴充且有彈性的網路應用程式。
- 瞭解 Google Cloud Platform 上的災難復原。