Kubernetesのヘルスチェックで使うLiveness ProbeとReadiness Probeについて




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

Kubernetesでのヘルスチェック

KubernetesでのコンテナのヘルスチェックにはProbeという機能を使用します。ProbeにはLivenessProbeとReadinessProbeの2つがあり、それぞれ特徴が異なるので説明したいと思います。

どちらも設定できる項目は同じになります。

Liveness Probe

Liveness Probeの特徴は下記です。

  • Liveness Probeはコンテナが正常に立ち上がっているか確認するヘルスチェックです。
  • Liveness ProbeがNGのときは、コンテナが再起動される。

Readiness Probe

Readiness Probeの特徴は下記です。

  • Readiness Probeはコンテナ内のアプリケーションがリクエストを受け付けることができるか確認するヘルスチェックです。
  • Readiness ProbeがNGのコンテナを持ったPodには、リクエストが送られてこない。

2つのProbeの使い分け

どちらも同じような機能でどう使い分ければいいのか難しいなというのが最初の印象でした。ここからは自分が考えた使い分けについて書きたいと思います。

Readiness Probe

まず、使い所がわかりやすいReadiness Probeについてです。

コンテナは正常に起動しているけどアプリケーションがリクエストを受け付けられない状態というのはよくあることだと思います。

アプリケーション起動時にいろんな設定ファイルを読み込んでいたり、DBへのマイグレーションで時間を使ったりしますからね。

そんなときはReadiness Probeを使うとリクエストを受け付けられるまでうまいことトラフィックを流さずにすみますね。

Liveness Probe

次にLiveness Probeについてですが、一番の特徴がPodを再起動してくれることだと思います。

例えばアプリケーションが何かしらの理由で起動に失敗し、いつまでたってもリクエストを受け付けない場合、このままではコンテナは立ち上がってるけど何もできないので無駄にリソースを食ってしまいます。

そこでLiveness Probeでアプリケーションまで管理しちゃえばいいんじゃないかなと思いました。Liveness Probeのヘルスチェックが失敗すればPodを再起動してくれてもう一度アプリケーションを最初から立ち上げれてくれるので無駄にリソースを食うこともなさそう。

まとめ

本来の使い方と少し違いますが、Podを再起動してくれるとこをうまく使えればなと思って考えてました。

そんな使い方じゃなくてこれが本当の使い方だよってのを教えていただければと思います。

おすすめ書籍

Dockerの使い方から説明されているので初心者の方も安心して学べる書籍です。

Kubernetesに関してはPod, Service, Deploymentなどを順を追って説明し、実際に動かすところまでを解説しているので非常に実践的な内容となっています。

これからKuebernetesを使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。

 

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 現在はTwitterなどSNSのテキスト解析を行うソーシャルメディア分析のサーバーサイドを開発中。言語はNode.js、Kotlinを使用。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です