livenessprobeとは?初心者向けにわかりやすく解説する完全ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
livenessprobeとは?初心者向けにわかりやすく解説する完全ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


livenessprobeとは?基本を知ろう

livenessprobeは Kubernetes の機能の一つで、コンテナが生きているかどうかを定期的に判断する仕組みです。もしコンテナが応答しなくなったり、内部でエラーが連続して発生したりしたときに、自動的に再起動するきっかけになります。これにより、サービスの停止時間を短く保つことができます。

この仕組みは livenessProbe という名前の設定として、各コンテナのスペックの中に配置されます。名前は英語の綴りの違いだけで意味は同じですが、正確には livenessProbe として YAML に記述します。以下では、なぜ必要か、どう動くか、そして基本的な使い方を中学生にも分かる言葉で解説します。

livenessprobe があると何が良いのか

アプリが動作していても、内部で死んでいる状態や応答不能状態になることがあります。生存性を見守る livenessprobe は、そういった状態を検知するとコンテナを再起動します。再起動によって新しいプロセスが立ち上がり、問題が解消されることが期待できます。これにより、ユーザーが気づく前にサービスの連続性を保つことができます。

livenessprobe の3つの検査タイプ

現場で使われる主な 3 つの検査方法があります。それぞれの特徴を知って適切に選ぶことが大事です。

  • httpGet: HTTP/HTTPS のエンドポイントを叩いて健康状態を確認します。エンドポイントが 200 番台を返せば OK、そうでなければ NG と判断します。
  • exec: コンテナ内でコマンドを実行して、終了コードや出力で健康を判定します。難易度は高いですが、細かい判定が可能です。
  • tcpSocket: 指定したポートへ TCP 接続を試みて、接続が成功するかどうかで判断します。ネットワーク回線やアプリの起動直後などに有効です。

基本の設定と YAML の書き方

livenessprobe はコンテナの spec の中に記述します。代表的な設定項目は以下のようなものです。

設定項目説明
initialDelaySeconds最初の検査を開始するまでの待機時間。起動直後にすぐ検査しないようにするための値です。
periodSeconds検査を行う頻度。秒単位で設定します。
timeoutSeconds検査を完了とみなすまでの時間。長すぎると遅延の原因になります。
failureThreshold連続して失敗したときに死活をNGと判断する回数。高すぎると問題を見逃す可能性があります。
successThreshold連続して成功したときに回復とみなす回数。通常は 1 で十分です。
httpGetHTTP/HTTPS の検査を行う場合の設定。path や port、場合により scheme を指定します。
path検査対象のエンドポイントのパス。
port検査を行うポート番号。
schemehttp か https。必要に応じて指定します。
execコンテナ内のコマンドを実行する場合の設定。command 配列を使います。
tcpSocketTCP ソケット検査の設定。port を指定します。

具体的な例

以下は最も基本的な HTTP ベースの livenessProbe の例です。読みやすさを優先して改行を入れていますが、実際には YAML 形式で設定します。

apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp
image: myimage
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 20

設定を試すときのコツ

最初は簡単なエンドポイントを作ってテストしましょう。やりすぎると検査自体が負荷になることがあるため、検査の頻度 periodSeconds とタイムアウト timeoutSeconds を現実的な値に設定することが大切です。

注意点とベストプラクティス

・ readinessProbe と livenessProbe は役割が違います。readinessProbe はリクエストを受け付けられる準備ができたかを示し、livenessProbe は生存性を示します。両方を適切に使い分けることが重要です。
・過剰な検査はアプリの再起動を引き起こし、逆にサービスを不安定にします。適切な頻度とタイムアウトを設定しましょう。
エラーレスポンスの原因を特定するために、検査対象のエンドポイントは安定して動作するように設計してください。

テストのヒント

実際に動かしてみるときは、故意にエンドポイントを落とす、あるいはコマンドを失敗させるなどして、livenessProbe が正しくコンテナを再起動するか確かめてください。ログを確認して、再起動回数が過剰になっていないかもチェックしましょう。


livenessprobeの同意語

生存性プローブ
Kubernetesにおけるliveness probeの正式な日本語表現。コンテナが生存しているかを定期的に判定し、異常を検知すると再起動を促します。
生存性チェック
生存性を検証する意味の表現。公式用語としては『生存性プローブ』のほうが一般的ですが、同義として使われることがあります。
生存確認プローブ
生存を確認する目的の表現。機能はliveness probeと同じで、文脈により使用されます。
ライブネスプローブ
liveness probeのカタカナ表記。技術文書や解説で見かけることがあります。
Liveness Probe
英語表記そのままの名称。日本語説明と併せて使われることが多いです。
生存性ヘルスチェック
生存性を指すヘルスチェックの表現。意味は近しいが、公式用語としては混同を招く場合があります。

livenessprobeの対義語・反対語

死活検知
liveness の対義語として捉えた場合の概念。コンテナが生存しているかではなく、死亡・停止の状態を検知するイメージです。実務で一般的ではないものの、対義語として理解を深めるために挙げます。
ダウン検知
コンテナが落ちている(ダウンしている)状態を検知する意味。liveness が生存を確認するのに対し、ダウン検知は死活状態の反対を示します。
停止状態検知
コンテナやプロセスが停止している状態を検知する観点の表現。生存しているかを判定する liveness の反対のイメージです。
未起動検知
まだ起動していない、未稼働の状態を検知する観点。生存性を前提としない状態を示します。
非生存性検知
生存していない状態を検知する抽象的な対義語。概念的な表現として捉えてください。
準備完了検知
Ready probe(準備完了検知)に近い概念。liveness とは異なるチェックで、リクエストを受け付ける準備が整っているかを判定します。対義語というより補完的な対概念です。

livenessprobeの共起語

readinessProbe
コンテナがトラフィックを受け付け可能かを判定するヘルスチェック。生存ではなく「準備完了」を示す。
startupProbe
起動時の検査を独立して定義するプローブ。アプリの起動が遅い場合に適切に待機時間を調整する。
httpGet
HTTPリクエストを投げ、200系のレスポンスで生存を判定するプローブのタイプ。
exec
コンテナ内で任意のコマンドを実行して終了コードで生存を判断するプローブのタイプ。
tcpSocket
TCPソケットの接続を試みて成功時に生存とみなすプローブのタイプ。
initialDelaySeconds
プローブを開始するまでの待機時間。起動後すぐに評価しないようにする設定。
periodSeconds
プローブを実行する間隔(秒)。
timeoutSeconds
プローブ実行のタイムアウト時間(秒)。
successThreshold
連続して何回成功すればプローブが成功と判断されるかの閾値。
failureThreshold
連続して何回失敗したらプローブを失敗とみなすかの閾値。
container
プローブは特定のコンテナに対して設定されることが多い。
port
HTTPGet/TCPの対象ポート番号
path
HTTPGetの場合のリクエストパス。
scheme
HTTP/HTTPSなど、HTTPリクエストのスキーム
readiness
準備状態。リクエスト処理開始の準備が整っているかを示す概念。
healthCheck
ヘルスチェック全般の総称。生存・準備の検査を指す。
kubernetes
Kubernetes。クラスタ管理とヘルスチェックの機能を提供するプラットフォーム。
pod
ヘルスチェックはPod内のコンテナに適用される設定要素。
kubelet
ノード上でポッドを監視しプローブを実行するエージェント
endpoint
ヘルスチェックの宛先となるエンドポイント(URLやソケットの接続先)。
deployment
DeploymentなどのKubernetesリソースでlivenessProbeを設定してPodの管理を行う。
restartPolicy
Liveness失敗時の再起動動作を決めるポリシー。Always/OnFailure/Neverのいずれか。
lifecycle
コンテナのライフサイクルに関する設定領域。ヘルスチェックと連携する場合がある。

livenessprobeの関連用語

livenessProbe
Kubernetes がコンテナの存続性を監視する健康チェック。連続して失敗するとそのコンテナを再起動します。
readinessProbe
コンテナがリクエストを処理できる準備が整っているかを判定する検査。未準備の場合はトラフィックを受けません。
httpGet
HTTP GET リクエストを使うプローブの実行方法。path、port、host、scheme を指定します。
tcpSocket
TCP ソケットを開いて接続の可否を判定するプローブの実行方法。
exec
コンテナ内でコマンドを実行して終了コードで健康を判断するプローブの実行方法。
initialDelaySeconds
プローブ開始前の待機時間(秒数)。
periodSeconds
プローブを実行する間隔(秒)。
timeoutSeconds
プローブが完了とみなされるまでの最大待機時間(秒)。
failureThreshold
連続して失敗とみなす回数。これを超えると状態が変化します。
successThreshold
連続して成功と判定される回数。準備判定等で使われることがあります。
host
プローブの対象ホスト名。デフォルトは Pod 内部のホスト名/アドレスです。
port
プローブを実行する対象ポート番号。
scheme
http か https。HTTP のスキームを指定します。
path
HTTP GET のパス。例: /healthz、/ready。
minReadySeconds
Pod が Ready と見なされるまでの最短待機時間。
pod
Kubernetes の最小実行単位。複数のコンテナを含みます。
container
Pod 内で実際に動作するアプリケーションの実行環境。
kubelet
ノード上で Pod を管理・監視するエージェント。プローブの実行も担当。
healthCheck
アプリケーションの健全性を確認する一般的な検査の総称。
probe
健康状態を評価するための検査そのもの。
endpoint
ヘルスチェック用のエンドポイントや接続点。
httpStatusCode
httpGet の成功判定に使われる HTTP ステータスコード。通常は 200 番台が良好とされます。
healthEndpoint
アプリが提供する健全性を返すエンドポイント(例: /health、/healthz)。
liveness
生存性。連続したプローブ失敗でコンテナが再起動されることがあります。
readiness
準備完了。トラフィックの受け付け開始タイミングの指標。

livenessprobeのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14213viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2242viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1037viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
810viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
747viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
686viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
601viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
571viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
544viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
509viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
474viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
469viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
452viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
433viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
423viws
select句・とは?初心者でも分かるSQLの基本と使い方共起語・同意語・対義語も併せて解説!
372viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
364viws
ダイレクトチャットとは?初心者向けガイドで使い方と注意点を徹底解説共起語・同意語・対義語も併せて解説!
337viws
wi-fiとは?初心者向けにわかりやすく解説する基礎ガイド共起語・同意語・対義語も併せて解説!
305viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
295viws

新着記事

インターネット・コンピュータの関連記事