どうも高妻です。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を使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す