Kubernetes IngressのヘルスチェックにReadiness Probeを使う




どうも高妻です。GincoではGCP、Kubernetes、Firebaseを使って仮想通貨ウォレットのサービスを作っています。

今回はKubernetesのIngressで使われるヘルスチェックについて解説したいと思います。

Ingressのヘルスチェック

IngressはHTTPSレイヤのロードバランサの役割をします。

このロードバランサにぶら下がるPod(アプリケーション)が正常に稼働していないとリクエストを流すことができないようになっています。

正常に稼働しているかどうかはIngressのヘルスチェック機能で判定することができます。

デフォルト設定のヘルスチェックはPodの / にGetでアクセスするようになっており、このレスポンスが200を返すことができたらPodが正常に稼働していると判定されます。

ヘルスチェックが / だと不便なのでこれを変更することができます。それがReadiness Probeです。

Readiness Probeによるヘルスチェック

Kubernetesのヘルスチェック機構にはLiveness ProbeとReadiness Probeの2つがあり下記の特徴があります。

  • Liveness Probeのヘルスチェックが通らない時はコンテナが再起動される
  • Readiness Probeのヘルスチェックが通らない時はリクエストを受け付けられない

より詳細な説明は下記の記事を参照してください。

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

IngressのヘルスチェックはReadiness ProbeのhttpGetを使うことで変更することができます。

設定は簡単でここコンテナに対してreadinessProbeを設定します。これだけでIngressのヘルスチェックを/health_checkに変更できます。

- name: nginx:alpine
  ports:
  - containerPort: 8080
  readinessProbe:
   httpGet:
   path: /health_check
   port: 8080
   timeoutSeconds: 5

ここで注意が必要なことがあります。それはIngressのヘルスチェックを変更するにはhttpGetでしか変更できないということです。

Readiness Probeにはコマンドやシェルスクリプトを実行できるexecが指定できるのですがこれではIngressのヘルスチェックを変更することはできません。

自分はこれに気づかず結構時間を浪費してしまいました。。。

Kubernetesは便利ですが、その分できることが多いため慣れるのに結構時間がかかります。

今後はコンテナ技術をベースにしたインフラ構築が主流になるのでしっかりマスターしておくことをお勧めします。

Kubernetesの設定ファイルをまとめてかけるKustomizeも試してみると面白いのでぜひ!

>>Kubernetesのyamlを管理するKustomizeの基本的な使い方について

おすすめ書籍

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

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

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

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






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




コメントを残す

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