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 コンテキストがすべて開始済み状態である。
手順
プロジェクトの
pom.xml
を開き、fabric8-karaf-checks
機能をstartupFeatures
セクションに追加します。pom.xml
<startupFeatures> ... <feature>fabric8-karaf-checks</feature> ... </startupFeatures>
fabric8-maven-plugin: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