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を使うとリクエストを受け付けられるまでうまいことトラフィックを流さずにすみますね。
また、Ingressロードバランサからのヘルスチェックを担うこともできます。詳細は下の記事を参照してください。
>>Kubernetes IngressのヘルスチェックにReadiness Probeを使う
Liveness Probe
次にLiveness Probeについてですが、一番の特徴がPodを再起動してくれることだと思います。
例えばアプリケーションが何かしらの理由で起動に失敗し、いつまでたってもリクエストを受け付けない場合、このままではコンテナは立ち上がってるけど何もできないので無駄にリソースを食ってしまいます。
そこでLiveness Probeでアプリケーションまで管理しちゃえばいいんじゃないかなと思いました。Liveness Probeのヘルスチェックが失敗すればPodを再起動してくれてもう一度アプリケーションを最初から立ち上げれてくれるので無駄にリソースを食うこともなさそう。
まとめ
本来の使い方と少し違いますが、Podを再起動してくれるとこをうまく使えればなと思って考えてました。
そんな使い方じゃなくてこれが本当の使い方だよってのを教えていただければと思います。
おすすめ書籍
Dockerの使い方から説明されているので初心者の方も安心して学べる書籍です。
Kubernetesに関してはPod, Service, Deploymentなどを順を追って説明し、実際に動かすところまでを解説しているので非常に実践的な内容となっています。
これからKuebernetesを使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す