このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Kubernetes入門:Podを削除して自動復帰を確認する

 Kubernetesは、クラスタ内のリソースを「望ましい状態」に保つことができます。これにより、システムの安定性や可用性が向上します。今回は、Podを手動で削除し、Kubernetesが自動的にPodを再作成して「望ましい状態」を維持することを確認します。この機能は、Kubernetesの自己修復機能の一部であり、予期せぬエラーや障害からアプリケーションを保護します。

Podを削除して自動復帰を確認する。

それでは、実際にPodを削除して自動復帰を確認していきましょう。

1.Docker desktopとPowerShellの起動します。

 まず、Docker desktopを起動して、コンテナ管理環境を準備します。次にPowerShellを起動し、コマンドが入力できるようにします。

PS C:\Users\joeac> 

2.Podの数を確認します。

 まず、現在のPodの一覧を確認し、PodのID(「NAME」欄に表示される)を控えます。ここでは、一番上のPodのIDを使用しますが、どのPodでも問題ありません。IDは後で使用するので、メモしておきます。

PS C:\Users\joeac> kubectl get pods
NAME                          READY   STATUS    RESTARTS      AGE
apache-dep-77d7988fbc-5qqgn   1/1     Running   0             34m
apache-dep-77d7988fbc-7hhsj   1/1     Running   1 (63m ago)   24h
apache-dep-77d7988fbc-8vcb5   1/1     Running   0             34m
apache-dep-77d7988fbc-rgwlp   1/1     Running   0             34m
apache-dep-77d7988fbc-tzlt9   1/1     Running   1 (63m ago)   24h
apache-dep-77d7988fbc-xf8rm   1/1     Running   1 (63m ago)   24h

3.Podを削除します。

 次に、取得したPodのIDを使ってPodを削除します。以下のコマンド例では、「apache-dep-77d7988fbc-5qqgn」がIDの部分なので、自分の環境で取得したIDに置き換えて使用します。

PS C:\Users\joeac> kubectl delete pod apache-dep-77d7988fbc-5qqgn
pod "apache-dep-77d7988fbc-5qqgn" deleted

4.新しいPodが作成されたことを確認します。

 Podが削除された後、Kubernetesが自動的に新しいPodを作成することを確認します。再度、Podの一覧を表示して、削除したPodが新しいものに置き換わっていることを確認します。

PS C:\Users\joeac> kubectl get pods
NAME                          READY   STATUS    RESTARTS       AGE
apache-dep-77d7988fbc-7hhsj   1/1     Running   1 (107m ago)   25h
apache-dep-77d7988fbc-8vcb5   1/1     Running   0              78m
apache-dep-77d7988fbc-cvj69   1/1     Running   0              78s
apache-dep-77d7988fbc-rgwlp   1/1     Running   0              78m
apache-dep-77d7988fbc-tzlt9   1/1     Running   1 (107m ago)   25h
apache-dep-77d7988fbc-xf8rm   1/1     Running   1 (107m ago)   25h

コンテナが消えたらどうなるのか

 Kubernetesでは、リソースがPod単位で管理されています。そのため、Pod内のコンテナが何らかの理由で壊れたり消失した場合、Kubernetesは該当のコンテナだけでなくPod全体を再作成して、システムが「望ましい状態」を維持できるようにします。この仕組みによって、アプリケーションの可用性と安定性が確保されます。

まとめ

 Kubernetesの自己修復機能により、削除されたPodは自動的に再作成され、「望ましい状態」に戻ります。この動作は、アプリケーションの高可用性と冗長性を確保するための重要な機能であり、システムの信頼性を高める役割を果たします。