練習 - 證明 Kubernetes 中的微服務恢復能力
Kubernetes 的其中一個優點是支援宣告式組態管理。 它會盡全力保留您在設定檔中定義的服務。
這表示若發生失效情況,Kubernetes 會自動重新啟動失效前正在執行的服務。
讓我們來刪除 storefrontend
Pod,然後驗證 Kubernetes 是否重新啟動它,以查看這項復原能力的實際運作情形。
首先,在 codespace 上的 [TERMINAL] 中,執行
kubectl get pods
並記下storefrontend
Pod 的名稱,包括隨機字串。 以下為範例輸出:@user-name /workspaces/eShopLite % kubectl get pods NAME READY STATUS RESTARTS AGE productsbackend-7445bdb5c9-pnpk6 1/1 Running 0 31m storefrontend-5b6cc765c4-hjpx4 1/1 Running 0 63m
現在,請使用
kubectl delete
命令刪除storefrontend
Pod。 您需要指定 Pod 的完整名稱 (包含隨機字串)。kubectl delete pod storefrontend-5b6cc765c4-hjpx4
您將會立即收到訊息,指出 Pod 已刪除。
由於 Kubernetes 會維護組態檔中所宣告的系統狀態,因此會立即啟動另一個 Pod 執行個體。 您可以執行
kubectl get pods
加以驗證。@user-name /workspaces/eShopLite % kubectl get pods NAME READY STATUS RESTARTS AGE productsbackend-7445bdb5c9-pnpk6 1/1 Running 0 31m storefrontend-5b6cc765c4-vwmv8 1/1 Running 0 7s
請注意,名稱後面的
storefrontend
隨機字串已變更,表示 Pod 是新的執行個體。 此外,AGE 值也遠小於先前的值。
在此練習中,您已了解 Kubernetes 如何自動維護宣告的系統狀態,即使發生失敗也一樣。