【レディネスプローブ】

Readiness Probe とは?

最終更新:
💡 『準備できた?』と確認してからお客さんを通す受付係

Kubernetesでコンテナがリクエストを受けられるかを調べ、Podの準備状態に反映する検査。準備できていないPodは、通常のService経由の配送対象から外れる。

📌 このページのポイント
準備状態でServiceの配送先を選ぶ Service 経由の配送 Pod A:Ready 配送対象 Pod B:未準備 通常は対象外 Readiness失敗だけでは再起動しない 検査結果をPodの準備状態へ反映
通常のService経由の配送の模式図。準備未完了のPodへの全通信を遮断するものではなく、publishNotReadyAddressesなどの設定も確認する。
ひよこ ひよこ
Readiness Probeは何を確認するの?
ペンギン先生 ペンギン先生
コンテナがリクエストを受けられる準備状態かを調べるよ。その結果はPodのReady状態にも関わるんだ。起動中の初期化待ちや、一時的に処理できない状態を見分けるのに使えるよ。
ひよこ ひよこ
準備できていないとどうなるの?
ペンギン先生 ペンギン先生
通常はService経由の配送対象から外れるよ。Readinessの失敗だけでコンテナを再起動するわけではないんだ。回復して準備できたと判断されると、また配送対象になれるよ。
ひよこ ひよこ
チェック方法はどう選ぶの?
ペンギン先生 ペンギン先生
HTTP GET、TCP接続、コンテナ内のコマンド実行、gRPCのヘルスチェックから選べるよ。ポートが開くだけで十分なのか、アプリの準備状態まで確かめたいのかに合わせよう。
ひよこ ひよこ
Liveness Probeとはどう違うの?
ペンギン先生 ペンギン先生
Readinessは受け入れの準備、Livenessは再起動が必要な状態かを見るよ。Livenessが設定した失敗条件に達すると、対象コンテナの再起動につながるんだ。必要な検査はアプリの性質に合わせて決めるよ。
ひよこ ひよこ
起動に長くかかるアプリでは?
ペンギン先生 ペンギン先生
Startup Probeを設定すると、それが成功するまでReadinessやLivenessを実行しないよ。起動処理を待つ検査と、稼働中の受け入れ可否の検査を分けられるんだ。
もっと詳しく知りたい人へ

Readinessに失敗したPodへの通信は全部止まる?

全通信を遮断する仕組みではありません。主にService経由の通常の配送対象を制御します。Pod IPへの直接通信などとは区別が必要です。またServiceでpublishNotReadyAddressesを有効にすると、準備状態にかかわらずエンドポイントを公開するため、用途と設定を確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Readiness Probe」って出てきたら「Podがリクエストを受けられるか確認する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Readiness Probe」 = 準備状態の検査
💬 Readiness(準備ができていること)を Probe(調べる)する仕組みだよ

参考資料

← 用語集にもどる