Kubernetesのプローブは、Kubernetes環境内のコンテナで実行されているアプリケーションの健康を監視するための重要なメカニズムです。これらはコンテナの運用状態を確認し、サービスの信頼性と可用性を確保するために適切に行動することを目的としています。Kubernetesには主に3種類のプローブがあります。
Liveness Probes(生存プローブ):
- 生存プローブは、コンテナが実行中であるか、または復旧不可能な障害状態(デッドロックなど)にあるかを判断するために使用されます。生存プローブが失敗すると、Kubernetesはコンテナを再起動してサービスの機能を復元します
- 一般的な方法として、生存プローブ用には低コストのHTTPエンドポイントを使用し、準備完了プローブよりも高いfailureThresholdを設定することがあります
Readiness Probes(準備完了プローブ):
- これらのプローブは、コンテナがトラフィックを受け付ける準備ができているかどうかを示します。すべてのコンテナが準備完了しているとき、Podは準備完了と見なされます。この情報は、どのPodをServicesのバックエンドとして使用するかを決定するために使用されます。Podが準備完了でない場合、Serviceのロードバランサから削除されます
- Kubernetesは、準備完了プローブを使用してコンテナの健康を継続的に監視し、それらが受信トラフィックを処理する準備ができていることを確認します
Startup Probes(起動プローブ):
- 起動プローブは、コンテナアプリケーションが起動したかどうかを知るために使用されます。プローブが設定されている場合、生存および準備完了プローブは、起動プローブが成功するまで開始されません。これにより、これらのプローブがアプリケーションの起動を妨げないようにします。これは、起動が遅いコンテナで生存チェックを採用するために使用でき、kubeletによって完全に運用可能になる前に終了されるのを防ぎます
- 起動プローブは、Kubernetesのバージョン1.16でアルファ機能として導入され、バージョン1.18でベータにアップグレードされました
これらのプローブはそれぞれ特定の目的を果たし、Kubernetesクラスタ内のアプリケーションの所望の運用状態を維持するのに寄与します。これらのプローブは、監視するアプリケーションの特定のニーズと動作に合わせて設定でき、Kubernetes環境内のサービスの耐障害性と可用性を向上させます。