【ライブネスプローブ】

Liveness Probe とは?

最終更新:
💡 処理が進むかを調べ、コンテナの再起動を判断する

Kubernetesで、コンテナが処理を続けられる状態かを定期的に確認する検査。設定した回数の連続失敗を検知するとkubeletが対象コンテナを終了し、再起動ポリシーに従って扱います。Pod全体を作り直す検査や、再起動で必ず直る保証ではありません。

📌 このページのポイント
処理を続けられるか、定期的に検査kubelet検査を実行コンテナ応答や状態を確認成功:継続次も定期的に検査連続失敗:終了ポリシーで再起動起動待ち・通信の受付とは役割が違う
AlwaysやOnFailureなどで再起動する場合の例。対象はコンテナです。失敗の判定回数・間隔・猶予を設定し、再起動で回復を図れる状態を検査します。
ひよこ ひよこ
Pod全体が動いているか、確認するの?
ペンギン先生 ペンギン先生
Podの中のコンテナを、kubeletが定期的に検査するよ。例えばプロセスは動いていても、デッドロックで処理が進まない状態を見つけるために使う。Pod全体を新しく作り直すこととは違うんだ。
ひよこ ひよこ
1回失敗したら、すぐ再起動する?
ペンギン先生 ペンギン先生
failureThresholdで連続失敗の回数を決めるよ。既定値は3回。閾値に達すると対象コンテナを終了し、restartPolicyに従って扱う。再起動させる用途ではAlwaysやOnFailureを設定するんだ。検査の間隔やタイムアウトも合わせて考えるよ。
ひよこ ひよこ
どうやって調べるの?
ペンギン先生 ペンギン先生
HTTPの応答、TCPの接続、コンテナ内で実行するコマンドの終了コード、gRPCのヘルスチェックという4つの方式があるよ。そのコンテナで何を「処理を続けられる状態」とするかを決め、対応する検査を一つ選ぶんだ。
ひよこ ひよこ
起動が遅いアプリだと、失敗しない?
ペンギン先生 ペンギン先生
起動中に厳しい検査をすると、終了と再起動を繰り返すことがあるよ。initialDelaySecondsで開始を待たせたり、Startup Probeを使ったりする。Startupを設定すると、それが成功するまでLivenessとReadinessは実行されないんだ。起動に必要な時間も確保しよう。
ひよこ ひよこ
データベースにつながらなければ、再起動で直る?
ペンギン先生 ペンギン先生
外部の障害は、アプリを再起動しても直らない場合があるよ。再起動すると負荷が増すこともある。Livenessは再起動で回復を図る状態に絞り、サービスの通信を受けられるかはReadinessで確認するなど、役割を分けて設計するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Liveness Probe」って出てきたら「コンテナが処理を続けられるかを調べ、再起動を判断する検査」と思えばだいたいOK!
📖 おまけ:英語の意味
「Liveness Probe」 = 生存・動作継続の確認
💬 Livenessは生きていること、Probeは検査。コンテナが処理を続けられるかを調べる、見守り役のイメージだよ。

参考資料

← 用語集にもどる