演習 - Kubernetes でマイクロサービスの回復性を証明する

完了

Kubernetes の利点の 1 つは、宣言型の構成管理をサポートしていることです。 構成ファイルに定義したサービスは、何があっても維持されます。

つまり、障害が発生した場合、障害の発生前に稼働していたサービスが Kubernetes によって自動的に再起動されます。

この回復力を実際に見てみましょう。storefrontend ポッドを削除してから、Kubernetes によってそれが再起動されたことを確認します。

  1. 最初に、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
    
  2. 次に、kubectl delete コマンドを使用して、storefrontend ポッドを削除します。 ランダムな文字列を含むポッドの完全な名前を指定する必要があります。

    kubectl delete pod storefrontend-5b6cc765c4-hjpx4
    

    ポッドが削除されたことを示すメッセージをすぐに受け取ります。

  3. 構成ファイルに宣言されたシステム状態が 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 によってどのように自動的に維持されるかについて学習しました。

自分の知識をチェックする

1.

ポッドが失敗したときに Kubernetes がそれを再起動するのはなぜですか?