第8章 Jolokia を使用した HawtIO Online 用の Quarkus アプリケーションのセットアップ
このセクションでは、HawtIO による Quarkus アプリケーションの監視を有効にする方法を説明します。簡単なサンプルアプリケーションをセットアップする基本原則から始まります。ただし、Quarkus アプリケーションがすでに実装されている場合は、「サンプル Quarkus アプリケーションで Jolokia Java エージェントを有効にする」に進んでください。
便宜上、このドキュメントに基づいたサンプルプロジェクトがすでに実装され、ここ に公開されています。親リポジトリーのクローンを作成し、「HawtIO 対応 Quarkus アプリケーションの OpenShift へのデプロイメント」に進んでください。
Hawtio Online コンポーネントの説明
- ユーザーまたは Hawtio Next からのあらゆるやり取りは、HTTP プロトコルを使用して Nginx ウェブサーバーに通信されます。
- Nginx ウェブサーバーは外部向けのインターフェイスで、外部のコンシューマーに唯一表示されるサブコンポーネントです。
リクエストが行われると、Nginx Web サーバーは内部のゲートウェイコンポーネントに渡します。このコンポーネントは次の 2 つの異なる目的で使用されます。
Master-Guard Agent
- ターゲットの Master Cluster API サーバー (OpenShift) に向けられたすべての要求は、このコンポーネントを通過する必要があり、ここで要求されたエンドポイント URL が承認されているかどうかのチェックが行われます。承認されていない URL (例: シークレットまたは configmaps (セキュリティー機密が高い場合あり) へのリクエスト) は拒否されます。
Jolokia Agent
- Pod は Master Cluster 上に存在するため、最終的には Pod からの Jolokia 情報の要求も保護され、安全な方法で処理される必要があります。
- このエージェントは、クライアントからのリクエストを内部的にターゲット Pod に送信する形式に正しく変換し、応答をクライアントに返します。
8.1. Quarkus アプリケーションサンプルの設定
新しい Quarkus アプリケーションの場合は、
Maven quarkus クイックスタート
が利用できます。例:mvn io.quarkus.platform:quarkus-maven-plugin:3.14.2:create \ -DprojectGroupId=org.hawtio \ -DprojectArtifactId=quarkus-helloworld \ -Dextensions='openshift,camel-quarkus-quartz'
-
quarkus-maven-plugin
を使用してプロジェクトのスキャフォールディングを生成します。 -
プロジェクトの
maven groupId
をorg.hawtio
に設定し、必要に応じてカスタマイズします。 -
maven artifactId
プロジェクトをquarkus-helloworld
に設定し、必要に応じてカスタマイズします。 以下の Quarkus エクステンションを使用します。
- openshift: Maven がローカル OpenShift クラスターにデプロイできるようにします。
-
camel-quarkus-quartz : サンプル Quarkus アプリケーションで使用するために Camel エクステンション
quartz
を有効にします。
- クイックスタートを実行すると、Quarkus プロジェクトのスキャフォールディングが作成され、個々のアプリケーションをさらにカスタマイズできるようになります。
-
アプリケーションをビルドして OpenShift にデプロイするには、
src/main/resources/application.properties
ファイルで次のプロパティーを指定する必要があります (関連の ドキュメント を参照)。# Set the Docker build strategy quarkus.openshift.build-strategy=docker # Expose the service to create an OpenShift Container Platform route quarkus.openshift.route.expose=true