8.2.1 コンテナの閉塞を高速化する
Kubernetesなどのオーケストレーションツールによって管理されたコンテナ上で実行可能JAR/WARを実行している場合,本製品の稼働監視機能によって障害が検知された瞬間に,コンテナの切り離し(閉塞)をします。これによって,実行可能JAR/WARプロセスへのヘルスチェック機能を使用する場合に比べて,障害発生から閉塞までの不稼働時間を短縮できます。
稼働監視機能のユーザコマンドによる情報通知を使用することで,障害の検知を契機に任意のスクリプトを実行できます。そのスクリプト内で,特定のファイルを書き出すなど,Readiness Probeに検知させることができる処理を実装してください。
Readiness Probeの定義方法については,Kubernetesのドキュメントを参照してください。
障害検知時に特定の空ファイルを書き出すユーザスクリプトと,その空ファイルの有無を1秒間隔で監視する※Readiness Probeの定義例を次に示します。
- 注※
-
「test ! -e /tmp/myapp-failure-detected」というコマンドの成否で空ファイルの有無を判定します。
- ユーザスクリプトの例
#!/bin/bash touch /tmp/myapp-failure-detected
- Kubernetesのマニフェスト定義の例
readinessProbe: exec: command: - /bin/sh - -c - test ! -e /tmp/myapp-failure-detected initialDelaySeconds: 1 periodSeconds: 1
- 重要
-
ここに示した定義は例であり,これをそのまま使用した場合の動作は保証しません。必ずKubernetesが提供する最新のドキュメントを参照して適切なスクリプトを記述してください。