12.7. Fabric8 Karaf ヘルスチェックの有効化

fabric8-karaf-checks をスタートアップ機能としてインストールすることが推奨されます。有効にすると、Karaf サーバーは http://0.0.0.0:8181/readiness-check および http://0.0.0.0:8181/health-check URL を公開できます。これらの URL は、Kubernetes が readiness probe および liveness probe のために使用できます。

注記

これらの URL は、以下が true の場合に HTTP 200 ステータスコードのみで応答します。

  • OSGi Framework が開始している。
  • すべての OSGi バンドルが開始している。
  • すべてのブート機能がインストールされている。
  • デプロイされた BluePrint バンドルがすべて作成済み状態である。
  • デプロイされた SCR バンドルはすべてアクティブ、登録済み、またはファクトリー状態である。
  • すべての Web バンドルが Web サーバーにデプロイされている。
  • 作成された Camel コンテキストがすべて開始済み状態である。

手順

  1. プロジェクトの pom.xml を開き、fabric8-karaf-checks 機能を startupFeatures セクションに追加します。

    pom.xml

    <startupFeatures>
      ...
      <feature>fabric8-karaf-checks</feature>
      ...
    </startupFeatures>

    oc:resources ゴールは fabric8-karaf-checks 機能が使用されているかを検出し、readiness および liveness probe について Kubernetes をコンテナーの設定に追加します。

12.7.1. ヘルスチェックの設定

デフォルトでは、fabric8-karaf-checks エンドポイントは、ポート 8181 で実行しているビルトイン HTTP サーバーエンジン (Undertow) に登録されます。コンテナー内で長期実行されている他の HTTP プロセスによってヘルスおよび readiness チェックリクエストがブロックされないようにするために、エンドポイントを別の Undertow コンテナーに登録することができます。

これらのチェックは、以下のプロパティーを設定し、etc/io.fabric8.checks.cfg ファイルで設定できます。

  • httpPort: このプロパティーが指定され、有効なポート番号である場合、readiness-check および health-check エンドポイントは Undertow サーバーの別のインスタンスに登録されます。
  • readinessCheckPath および healthCheckPath プロパティーを使用すると、readiness およびヘルスチェックに使用できる実際の URI を設定することができます。デフォルトでは、これらは以前の値と同じです。
注記

これらのプロパティーは、Fuse-Karaf の起動後に変更できますが、カスタム Karaf distro の一部である etc/io.fabric8.checks.cfg ファイルで指定することもできます。このファイルは、追加設定なしで fabric8-karaf-checks 機能を実行する場合に使用されます。

以下の例は、etc/io.fabric8.checks.cfg ファイルの health および readiness プロパティーの設定を示しています。

httpPort = 8182
readinessCheckPath = /readiness-check
healthCheckPath = /health-check