Hitachi

uCosminexus Application Runtime for Apache Tomcat ユーザーズガイド


5.2.1 コンテナの閉塞を高速化する

Kubernetesなどのオーケストレーションツールによって管理されたコンテナ上でTomcatを使用している場合,uCARTの稼働監視機能によって障害が検知された瞬間に,コンテナの切り離し(閉塞)をします。これによって,Tomcatサーバプロセスへのヘルスチェック機能を使用する場合に比べて,障害発生から閉塞までの不稼働時間を短縮できます。

稼働監視機能のユーザコマンドによる情報通知を使用することで,障害の検知を契機に任意のスクリプトを実行できます。そのスクリプト内で,特定のファイルを書き出すなど,Readiness Probeに検知させることができる処理を実装してください。

Readiness Probeの定義方法については,Kubernetesのドキュメントを参照してください。

障害検知時に特定の空ファイルを書き出すユーザスクリプトと,その空ファイルの有無を1秒間隔で監視するReadiness Probeの定義例を次に示します。

注※

「test ! -e /tmp/tomcat-failure-detected」というコマンドの成否で空ファイルの有無を判定します。

ユーザスクリプトの例
#!/bin/bash
touch /tmp/tomcat-failure-detected
Kubernetesのマニフェスト定義の例
readinessProbe:
  exec:
    command:
    - /bin/sh
    - -c
    - test ! -e /tmp/tomcat-failure-detected
  initialDelaySeconds: 1
  periodSeconds: 1
重要

ここに示した定義は例であり,これをそのまま使用した場合の動作は保証しません。必ずKubernetesが提供する最新のドキュメントを参照して適切なスクリプトを記述してください。