Kubernetes Learning 第24章:Liveness / Readiness Probe 〜Podの健康チェック〜

Kubernetesでは、アプリケーションの状態を監視して、適切に管理する仕組みが用意されています。それが「Liveness Probe」と「Readiness Probe」です。

この2つを使うことで、以下のようなことが可能になります:

  • フリーズしたコンテナを自動で再起動する
  • サービスとしてリクエストを受け付けるかどうか判断する

✅ それぞれの役割

項目説明主な使い道
Liveness Probe「このコンテナ、生きてる?」死んでいたら自動再起動
Readiness Probe「このコンテナ、今リクエスト受けられる?」受けられない場合、Serviceの対象から外す

🧠 イメージで理解する

  • アプリがフリーズ:
    Liveness Probeが失敗 → Pod再起動
  • 起動直後でまだ準備中:
    Readiness Probeが失敗 → サービスはまだトラフィックを送らない

これにより、不安定なPodをユーザーに見せずに、安全にサービス提供できます。


🛠️ Probeの種類

Kubernetesでは、以下の方法で状態をチェックできます:

種類概要使用例
HTTP指定URLにHTTPリクエストして応答を見る/health など
TCPポートが開いているかを確認データベースなど
Commandコンテナ内でコマンドを実行し、終了コードで判断pgrepcurlなど

🔧 YAML設定の例(Liveness + Readiness)

livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 5

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 3

各フィールドの意味:

  • initialDelaySeconds: 起動直後の待機時間(チェック開始まで待つ)
  • periodSeconds: チェックの頻度
  • httpGet.path: チェック対象のURLパス

📌 注意点

  • Liveness Probeが連続で失敗すると、Podは自動で再起動されます
  • Readiness Probeが失敗中のPodにはServiceからのトラフィックが来ません
  • 両方設定するのが一般的(起動中の不安定な状態も考慮できる)

💡 まとめ

項目内容
Liveness Probeアプリがハングしていないかを監視
Readiness Probeアプリがリクエストを受けられる状態か監視
メリット不安定なPodの自動回復、ユーザーへの影響を最小化
設定方法httpGet, tcpSocket, execなどで柔軟に設定可能

🧪 補足:どう使い分ける?

状態対応
起動直後で準備中Readinessが失敗(→トラフィックを送らない)
アプリがフリーズLivenessが失敗(→Podを再起動)
一時的に重くて応答しないReadiness失敗だけで済むケースも多い(再起動は避けたい)

mh

Related Posts

Kubernetes Learning 第26章:標準的なログ取得方法(kubectl logs)〜Podの中で何が起きているかをのぞいてみよう〜

Kubernetes Learning 第25章:Replica数と冗長性の設計 〜止まらないシステムのために〜

You Missed

Google Cloud Platform エンジニア向け教科書:実践から認定まで : はじめに

  • 投稿者 mh
  • 5月 30, 2025
  • 1 views

現場で使えるChrome DevTools実践ガイド 第6章:Sourcesパネルでのブレークポイントとステップ実行

  • 投稿者 mh
  • 5月 30, 2025
  • 11 views

Kubernetes Learning 第26章:標準的なログ取得方法(kubectl logs)〜Podの中で何が起きているかをのぞいてみよう〜

  • 投稿者 mh
  • 5月 30, 2025
  • 3 views

Android application development 第30章:Firebase Crashlytics でのクラッシュレポート

  • 投稿者 mh
  • 5月 30, 2025
  • 3 views

Kubernetes Learning 第25章:Replica数と冗長性の設計 〜止まらないシステムのために〜

  • 投稿者 mh
  • 5月 29, 2025
  • 14 views

Android application development 第29章:キーストアと署名

  • 投稿者 mh
  • 5月 29, 2025
  • 14 views