演習 - Kubernetes でマイクロサービスの回復性を証明する
Kubernetes の利点の 1 つは、宣言型の構成管理をサポートしていることです。 構成ファイルに定義したサービスは、何があっても維持されます。
つまり、障害が発生した場合、障害の発生前に稼働していたサービスが Kubernetes によって自動的に再起動されます。
この回復力を実際に見てみましょう。storefrontend
ポッドを削除してから、Kubernetes によってそれが再起動されたことを確認します。
最初に、codespace の [TERMINAL] (ターミナル) で
kubectl get pods
を実行して、storefrontend
ポッドの名前 (ランダムな文字列を含む) を記録しておきます。 出力例を次に示します。@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
ポッドを削除します。 ランダムな文字列を含むポッドの完全な名前を指定する必要があります。kubectl delete pod storefrontend-5b6cc765c4-hjpx4
ポッドが削除されたことを示すメッセージをすぐに受け取ります。
構成ファイルに宣言されたシステム状態が Kubernetes によって維持されるため、すぐに別のポッド インスタンスが起動されます。
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
の名前に続くランダムな文字列が変わり、ポッドが新しいインスタンスであることが示されていることに注目してください。 また、AGE の値もかなり少なくなっています。
この演習では、障害が発生した場合でも、宣言されたシステムの状態が Kubernetes によってどのように自動的に維持されるかについて学習しました。