常見的法規要求是公司必須證明自身具備災難復原 (DR) 能力。對於在雲端執行的應用程式,這項規定包括當某個可用區中託管的伺服器一段時間無法使用時,服務的可靠性和可用性。本文適用於管理員和架構師、營運人員,以及備份和災害復原 (DR) 管理員,說明如何在使用 Google Kubernetes Engine (GKE) Standard 區域叢集時,模擬區域容錯移轉。
GKE 區域叢集是在使用者選擇的區域中建立,並在所選區域內多個可用區的 VM 上執行控制層。GKE Autopilot 叢集一律為區域叢集,而 GKE Standard 叢集可以是區域叢集或可用區叢集。本教學課程使用 GKE Standard 區域叢集。叢集節點會透過負載平衡器與控制層通訊,因此節點位置和控制層 VM 位置不一定會相符。使用區域叢集時,您無法在 Google Cloud 控制台中停用特定可用區。詳情請參閱 GKE 叢集架構。
本教學課程提供三種模擬可用區故障的方法。您可以模擬區域故障,並使用符合自身法規遵循需求的方法,驗證應用程式是否做出正確回應。
本文中的方法也適用於區域叢集,包括單一可用區和多可用區。這些方法只會影響目標區域中的節點,不會影響 GKE 控制平面。
目標
- 使用預設設定建立地區 GKE Standard 叢集。
- 將範例微服務應用程式部署至區域叢集。
- 使用下列其中一種方法模擬區域中斷:
- 縮減地區叢集中的節點集區可用區。
- 使用單一可用區節點集區。
- 隔離並排空目標故障區域的節點。
- 確認微服務是否可用。
費用
本教學課程使用下列 Google Cloud的計費元件:
- Compute Engine
- GKE Standard 模式叢集
使用 Pricing Calculator 可根據您的預測使用量來產生費用預估。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API, Compute Engine APIs:
gcloud services enable container.googleapis.com
compute.googleapis.com -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API, Compute Engine APIs:
gcloud services enable container.googleapis.com
compute.googleapis.com 使用預設設定建立新的 GKE Standard 叢集:
gcloud container clusters create CLUSTER_NAME \ --region REGION \ --num-nodes 2
替換下列參數:
CLUSTER_NAME
:叢集名稱。REGION
:叢集所在的區域,例如us-central1
。
GKE 需要幾分鐘的時間建立叢集,並確認一切運作正常。系統會在您指定的區域中,於每個可用區建立兩個節點。
檢查上一步驟中建立的每個節點的可用區:
kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
輸出內容如下列範例所示:
NAME ZONE INT_IP regional-cluster-1-default-pool-node1 asia-southeast1-c 10.128.0.37 regional-cluster-1-default-pool-node2 asia-southeast1-c 10.128.0.36 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.128.0.38 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.128.0.33 regional-cluster-1-default-pool-node5 asia-southeast1-a 10.128.0.35 regional-cluster-1-default-pool-node6 asia-southeast1-a 10.128.0.34
連線至叢集:
gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION
在殼層中,複製下列 GitHub 存放區並變更為該目錄:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
將 Cymbal Bank 範例應用程式部署至您在前一節建立的 GKE 叢集:
kubectl apply -f ./extras/jwt/jwt-secret.yaml kubectl apply -f ./kubernetes-manifests
等待 Pod 準備就緒:
kubectl get pods
幾分鐘後,您應該會看到 Pod 處於
Running
狀態:NAME READY STATUS RESTARTS AGE accounts-db-0 1/1 Running 0 16s balancereader-7dc7d9ff57-sstm5 0/1 Running 0 15s contacts-7ddc76d94-rr28x 0/1 Running 0 14s frontend-747b84bff4-2mtlv 0/1 Running 0 13s ledger-db-0 1/1 Running 0 13s ledgerwriter-f6cc7889d-9qjfg 0/1 Running 0 13s loadgenerator-57d4cb57cc-zqvqb 1/1 Running 0 13s transactionhistory-5dd7c7fd77-lwkv8 0/1 Running 0 12s userservice-cd5ddb4bb-wwhml 0/1 Running 0 12s
當所有 Pod 都處於
Running
狀態時,請取得前端服務外部 IP 位址:kubectl get service frontend | awk '{print $4}'
在網路瀏覽器視窗中,開啟
kubectl get service
指令輸出內容中顯示的 IP 位址,存取 Cymbal Bank 執行個體。系統會自動填入預設憑證,方便您登入應用程式,並查看部分範例交易和餘額。您不需採取任何特定行動,只要確認 Cymbal Bank 順利運作即可。所有服務可能需要一到兩分鐘才能正確啟動,讓您登入。請等到所有 Pod 都處於
Running
狀態,且您能順利登入 Cymbal Bank 網站,再前往下一個部分並模擬區域故障。檢查區域叢集和服務的可用性:
kubectl get po -o wide \ kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
結果類似下列範例輸出內容:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 6m30s 10.28.1.5 regional-cluster-1-default-pool-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 6m30s 10.28.5.6 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 6m29s 10.28.4.6 regional-cluster-1-default-pool-node2 frontend-747b84bff4-xvjxq 1/1 Running 0 6m29s 10.28.3.6 regional-cluster-1-default-pool-node6 ledger-db-0 1/1 Running 0 6m29s 10.28.5.7 regional-cluster-1-default-pool-node1 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 6m29s 10.28.1.6 regional-cluster-1-default-pool-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 6m29s 10.28.4.7 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-cmc2w 1/1 Running 0 6m29s 10.28.3.7 regional-cluster-1-default-pool-node6 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 6m28s 10.28.5.8 regional-cluster-1-default-pool-node1 NAME ZONE INT_IP regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.6 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.7 regional-cluster-1-default-pool-node2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1 asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.148.0.4
在本例中,所有 Cymbal Bank 工作負載都會部署在所有可用區。如要模擬失敗,請停用其中一個區域,例如部署前端服務的
asia-southeast1-c
。模擬區域服務中斷情形。更新現有節點集區 (
default-pool
),只指定三個區域中的兩個:gcloud container node-pools update default-pool \ --cluster=CLUSTER_NAME \ --node-locations=ZONE_A, ZONE_B \ --region=REGION
將
ZONE_A, ZONE_B
替換為您希望節點集區繼續執行的兩個區域。更新節點集區後,請確認微服務是否可用:
kubectl get po -o wide kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
輸出內容應如下列範例所示:
NAME ZONE INT_IP regional-cluster-1-default-pool-node2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1 asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.148.0.4 NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 28m 10.28.1.5 regional-cluster-1-default-pool-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 28m 10.28.5.6 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 28m 10.28.4.6 regional-cluster-1-default-pool-node2 frontend-747b84bff4-mdnkd 1/1 Running 0 9m21s 10.28.1.7 regional-cluster-1-default-pool-node3 ledger-db-0 1/1 Running 0 28m 10.28.5.7 regional-cluster-1-default-pool-node1 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 28m 10.28.1.6 regional-cluster-1-default-pool-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 28m 10.28.4.7 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-w2vqs 1/1 Running 0 9m20s 10.28.4.8 regional-cluster-1-default-pool-node2 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 28m 10.28.5.8 regional-cluster-1-default-pool-node1
在本範例輸出內容中,
asia-southeast1-c
已無法使用。您仍可透過網址http://EXTERNAL_IP
,從瀏覽器存取前端服務。即使其中一個區域不再適用,使用者仍可執行存款和付款動作。預設節點集區:通常在您建立地區 GKE Standard 叢集時建立,屬於多區域節點集區 (
default-pool
)。這個叢集包含單一
default-pool
,是您稍早在此文件中建立的。額外的節點集區 (
zonal-node-pool-1
和zonal-node-pool-2
),同樣會執行範例 Cymbal Bank 應用程式的服務。檢查區域叢集的可用性:
gcloud container node-pools list \ --cluster=CLUSTER_NAME \ --region REGION kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
結果類似下列範例輸出內容:
NAME: default-pool MACHINE_TYPE: e2-medium DISK_SIZE_GB: 100 NODE_VERSION: 1.27.8-gke.1067004 NAME ZONE. INT_IP regional-cluster-1-default-pool-node5-pzmc asia-southeast1-c 10.148.0.6 regional-cluster-1-default-pool-node6-qf1l asia-southeast1-c 10.148.0.7 regional-cluster-1-default-pool-node2-dlk2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1-pkfd asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3-6b6n asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4-h0lc asia-southeast1-b 10.148.0.4
在這個範例輸出中,所有 Cymbal Bank Pod 都部署在相同叢集下的所有可用區,並在現有的
default-pool
中執行。建立兩個新的單一區域節點集區:
gcloud beta container node-pools create zonal-node-pool-1 \ --cluster CLUSTER_NAME \ --region REGION \ --num-nodes 4 \ --node-locations ZONE_A gcloud beta container node-pools create zonal-node-pool-2 \ --cluster CLUSTER_NAME \ --region REGION \ --num-nodes 4 \ --node-locations ZONE_B
將
ZONE_A
和ZONE_B
替換為要執行新單一區域節點集區的兩個區域。如要模擬區域故障,請刪除
default-pool
區域節點集區和其中一個新的單一區域節點集區:gcloud container node-pools delete default-pool \ --cluster=CLUSTER_NAME \ --region=REGION gcloud container node-pools delete zonal-node-pool-1 \ --cluster=CLUSTER_NAME \ --region=REGION
在
node-pool
刪除程序期間,工作負載會關閉,並重新排定至其他可用的節點集區。發生這種情況時,服務和部署作業將無法使用。這表示您需要為 DR 報告或文件指定停機時間範圍。確認微服務是否持續可用:
kubectl get po -o wide \ kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
輸出內容應該會與下方示例類似:
NAME ZONE INT_IP regional-cluster-1-node-pool3-node1 asia-southeast1-b 10.148.0.8 regional-cluster-1-node-pool3-node2 asia-southeast1-b 10.148.0.9 regional-cluster-1-node-pool3-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-node-pool3-node4 asia-southeast1-b 10.148.0.4 NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 28m 10.28.1.5 regional-cluster-1-zonal-node-pool-2-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 28m 10.28.5.6 regional-cluster-1-zonal-node-pool-2-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 28m 10.28.4.6 regional-cluster-1-zonal-node-pool-2-node2 frontend-747b84bff4-mdnkd 1/1 Running 0 9m21s 10.28.1.7 regional-cluster-1-zonal-node-pool-2-node3 ledger-db-0 1/1 Running 0 28m 10.28.5.7 regional-cluster-1-zonal-node-pool-2-node4 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 28m 10.28.1.6 regional-cluster-1-zonal-node-pool-2-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 28m 10.28.4.7 regional-cluster-1-zonal-node-pool-2-node2 transactionhistory-5dd7c7fd77-w2vqs 1/1 Running 0 9m20s 10.28.4.8 regional-cluster-1-zonal-node-pool-2-node2 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 28m 10.28.5.8 regional-cluster-1-zonal-node-pool-2-node1
在這個範例輸出內容中,由於
default-pool
和zonal-node-pool-1
不再存在,因此所有服務都會在zonal-node-pool-2
中執行。檢查區域叢集和服務的可用性。查看目標失敗區域的節點名稱。您想指定前端 Pod 執行的區域:
kubectl get pods -o wide
輸出內容應如下列範例所示:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 4m7s 10.96.4.4 regional-cluster-1-default-pool-node2 balancereader-7dc7d9ff57-lv4z7 1/1 Running 0 4m7s 10.96.1.5 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-wxvg5 1/1 Running 0 4m7s 10.96.6.11 regional-cluster-1-default-pool-node3 frontend-747b84bff4-gvktl 1/1 Running 0 4m7s 10.96.1.4 regional-cluster-1-default-pool-node1 ledger-db-0 1/1 Running 0 4m7s 10.96.4.5 regional-cluster-1-default-pool-node2 ledger-db-1 1/1 Running 0 3m50s 10.96.0.13 regional-cluster-1-default-pool-node5 ledgerwriter-f6cc7889d-4hqbm 1/1 Running 0 4m6s 10.96.0.12 regional-cluster-1-default-pool-node5 loadgenerator-57d4cb57cc-fmq52 1/1 Running 0 4m6s 10.96.4.6 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-72zpx 1/1 Running 0 4m6s 10.96.6.12 regional-cluster-1-default-pool-node3 userservice-cd5ddb4bb-b7862 1/1 Running 0 4m6s 10.96.1.6 regional-cluster-1-default-pool-node1
將先前輸出內容中列出的 Pod 與節點的可用區建立關聯:
kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
輸出內容應如下列範例所示:
NAME ZONE INT_IP regional-cluster-1-default-pool-node1 asia-southeast1-b 10.148.0.41 regional-cluster-1-default-pool-node2 asia-southeast1-b 10.148.0.42 regional-cluster-1-default-pool-node3 asia-southeast1-a 10.148.0.37 regional-cluster-1-default-pool-node4 asia-southeast1-a 10.148.0.38 regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.40 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.39
在上一個範例輸出內容中,前端 Pod 位於可用區
asia-southeast1-b
的regional-cluster-1-default-pool-node1
。在下一個步驟中,您會追蹤可用區
asia-southeast1-b
中的所有節點,在本範例輸出內容中,這些節點為regional-cluster-1-default-pool-node1
和regional-cluster-1-default-pool-node2
在其中一個可用區中,隔離並排空目標節點。在本例中,這是
asia-southeast1-b
中的兩個節點:kubectl drain regional-cluster-1-default-pool-node1 \ --delete-emptydir-data --ignore-daemonsets kubectl drain regional-cluster-1-default-pool-node2 \ --delete-emptydir-data --ignore-daemonsets
這個指令會將節點標示為不可排程,並模擬節點故障。Kubernetes 會將 Pod 重新排程到正常運作區域的其他節點。
查看先前在故障區域節點上執行的前端 Pod 和其他 Cymbal Bank Pod 範例,現在重新排定的位置:
kubectl get po -o wide kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
輸出內容應如下列範例所示:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 4m7s 10.96.4.4 regional-cluster-1-default-pool-node4 balancereader-7dc7d9ff57-lv4z7 1/1 Running 0 4m7s 10.96.1.5 regional-cluster-1-default-pool-node6 contacts-7ddc76d94-wxvg5 1/1 Running 0 4m7s 10.96.6.11 regional-cluster-1-default-pool-node3 frontend-747b84bff4-gvktl 1/1 Running 0 4m7s 10.96.1.4 regional-cluster-1-default-pool-node3 ledger-db-0 1/1 Running 0 4m7s 10.96.4.5 regional-cluster-1-default-pool-node6 ledger-db-1 1/1 Running 0 3m50s 10.96.0.13 regional-cluster-1-default-pool-node5 ledgerwriter-f6cc7889d-4hqbm 1/1 Running 0 4m6s 10.96.0.12 regional-cluster-1-default-pool-node5 loadgenerator-57d4cb57cc-fmq52 1/1 Running 0 4m6s 10.96.4.6 regional-cluster-1-default-pool-node4 transactionhistory-5dd7c7fd77-72zpx 1/1 Running 0 4m6s 10.96.6.12 regional-cluster-1-default-pool-node3 userservice-cd5ddb4bb-b7862 1/1 Running 0 4m6s 10.96.1.6 regional-cluster-1-default-pool-node3 NAME ZONE INT_IP regional-cluster-1-default-pool-node3 asia-southeast1-a 10.148.0.37 regional-cluster-1-default-pool-node4 asia-southeast1-a 10.148.0.38 regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.40 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.39
在這個輸出範例中,沒有任何 Cymbal Bank Pod 在封鎖節點上執行,所有 Pod 現在只在其他兩個區域中執行。
節點上的 Pod 中斷預算 (PDB) 可能會封鎖節點排空作業。在執行封鎖和排空動作前,請先評估 PDB 政策。如要進一步瞭解 PDB 及其與管理中斷的關係,請參閱如何確保 GKE 叢集的可靠性和正常運作時間。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- 瞭解如何模擬地區代管執行個體群組 (MIG) 發生區域服務中斷的情形。
- 瞭解 Google Cloud Platform 的災難復原 Google Cloud。
- 在多個可用區中設定高可用性 PostgreSQL。
- Pod 中斷預算注意事項。
- 瞭解區域永久磁碟與地區永久磁碟。
- 瞭解如何在 GKE 中執行高可用性資料庫。
- 進一步瞭解 Google Cloud上的災難復原最佳做法。
- 瞭解 Backup for GKE。
建立區域標準叢集
模擬區域故障前,請先建立具有多區域節點集區的區域叢集。叢集的控制層和節點會複製到指定區域的多個可用區。
使用 Google Cloud CLI 建立叢集:
部署範例微服務應用程式
如要查看模擬容錯移轉在本文件中的效果,請將範例 微服務型應用程式部署至叢集。本文將使用Cymbal Bank 範例應用程式:
模擬區域故障
在本節中,您將模擬其中一個可用區發生故障。您可以透過三種不同方式模擬容錯移轉。您只需要選擇一種方法。模擬區域故障,並使用符合自身法規遵循目的的方法,驗證應用程式是否正確回應。
減少節點集區區域
根據預設,區域叢集的節點集區會包含區域內所有可用區的節點。在下圖中,Cloud 負載平衡會將流量分配到橫跨三個區域的節點集區。每個區域都有兩個節點,Pod 可在任何區域的節點中執行。
在本節中,您將更新節點集區,只在三個區域中的兩個區域執行,藉此模擬區域故障。這種做法可驗證應用程式是否能正確地在其他區域重新分配 Pod 和流量,以因應區域中斷問題。
如要更新節點集區,使其只在特定區域中執行並模擬失敗,請完成下列步驟:
使用單一區域節點集區
在本節中,您將刪除兩個節點集區,模擬區域故障情形。這個方法會驗證應用程式是否能正確地在其他可用區的節點集區中重新分配 Pod 和流量,以因應節點集區遺失的情況。如要在區域叢集上模擬區域中斷,請展開先前建立的基本叢集,在多個節點集區中執行 Cymbal Bank 應用程式。與第一個範例 (更新節點集區中的現用可用區) 相比,這個模擬可用區中斷的方法更能反映實際的可用區故障情形,因為叢集中通常會有多個節點集區:
您在本節中建立的叢集會模擬單一可用區節點集區故障,並包含下列元件:
圖中的虛線顯示,只有在模擬 default-pool
和 zonal-node-pool-1
中的故障後,流量才會提供服務。zonal-node-pool-2
如要建立其他節點集區並模擬故障,請完成下列步驟:
隔離並排空可用區中的節點
在本節中,您將封鎖並排空叢集中的特定節點。您會封鎖並清空單一區域中的所有節點,模擬該區域中節點上執行的 Pod 遺失:
在這張圖中,您會隔離並排空第一個可用區中的節點。其他兩個區域中的節點會繼續執行。這種做法會驗證應用程式是否能正確地在其他可用區執行的節點之間重新分配 Pod 和流量,以因應某個可用區中所有節點的損失。
如要封鎖並排空其中一個區域中的節點,模擬失敗情況,請完成下列步驟:
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請按照下列步驟操作:
刪除專案
如要避免系統向您收費,最簡單的方法就是刪除您在教學課程中建立的專案。