第4章 Operator ベースのブローカーデプロイメントの設定
4.1. Operator によるブローカー設定の生成方法 リンクのコピーリンクがクリップボードにコピーされました!
カスタムリソース (CR) インスタンスを使用してブローカーデプロイメントを設定する前に、Operator がブローカー設定を生成する方法を理解する必要があります。
Operator ベースのブローカーのデプロイメントを作成する場合、各ブローカーの Pod は OpenShift プロジェクトの StatefulSet で実行されます。ブローカーのアプリケーションコンテナーは各 Pod 内で実行されます。
Operator は、各 Pod を初期化する際に Init コンテナーと呼ばれるコンテナーのタイプを指定します。OpenShift Container Platform では、Init コンテナーはアプリケーションコンテナーの前に実行される特殊なコンテナーです。Init コンテナーには、アプリケーションイメージに存在しないユーティリティーまたはセットアップスクリプトを含めることができます。
デフォルトで、AMQ Broker Operator は組み込み Init コンテナーを使用します。Init コンテナーはデプロイメントのメイン CR インスタンスを使用して、各ブローカーアプリケーションコンテナーで使用される設定を生成します。
CR にアドレス設定を指定した場合、Operator はデフォルト設定を生成し、その設定を CR で指定された設定にマージするか、置き換えます。このプロセスについては、以下の項で説明します。
4.1.1. Operator によるアドレス設定の生成方法 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントの主要カスタムリソース (CR) インスタンスにアドレス設定を追加している場合、以下で説明されているように Operator は各ブローカーのアドレス設定を生成します。
Operator は、ブローカーのアプリケーションコンテナーの前に Init コンテナーを実行します。Init コンテナーはデフォルトのアドレス設定を生成します。デフォルトのアドレス設定を以下に示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - カスタムリソース (CR) インスタンスでアドレス設定も指定している場合、init コンテナーはその設定を処理して XML に変換します。
-
CR の
applyRule
プロパティーの値に基づいて、init コンテナーは、上記のデフォルトのアドレス設定を CR で指定した設定と マージ するか、置き換え ます。このマージまたは置換の結果は、ブローカーが使用する最終アドレス設定になります。 -
Init コンテナーがブローカー設定の生成が終了すると (アドレス設定を含む)、ブローカーのアプリケーションコンテナーが起動します。起動時に、ブローカーコンテナーは以前に init コンテナーによって使用されたインストールディレクトリーから設定をコピーします。
broker.xml
設定ファイルでアドレス設定を確認できます。実行中のブローカーの場合、このファイルは/home/jboss/amq-broker/etc
ディレクトリーにあります。
関連情報
-
CR で
applyRule
プロパティーを使用する例については、「Operator ベースのブローカーデプロイメントで設定されたアドレスへのマッチングアドレス設定」 を参照してください。
4.1.2. ブローカー Pod のディレクトリー構造 リンクのコピーリンクがクリップボードにコピーされました!
Operator ベースのブローカーのデプロイメントを作成する場合、各ブローカーの Pod は OpenShift プロジェクトの StatefulSet で実行されます。ブローカーのアプリケーションコンテナーは各 Pod 内で実行されます。
Operator は、各 Pod を初期化する際に Init コンテナーと呼ばれるコンテナーのタイプを指定します。OpenShift Container Platform では、Init コンテナーはアプリケーションコンテナーの前に実行される特殊なコンテナーです。Init コンテナーには、アプリケーションイメージに存在しないユーティリティーまたはセットアップスクリプトを含めることができます。
ブローカーインスタンスの設定を生成する際に、Init コンテナーはデフォルトのインストールディレクトリーに含まれるファイルを使用します。このインストールディレクトリーは、Operator がブローカー Pod にマウントし、init コンテナーとブローカーコンテナーが共有するボリューム上にあります。共有ボリュームをマウントするために Init コンテナーが使用するパスは、CONFIG_INSTANCE_DIR
という環境変数で定義されます。CONFIG_INSTANCE_DIR
のデフォルト値は /amq/init/config
です。本書では、このディレクトリーは <install_dir>
と呼ばれます。
CONFIG_INSTANCE_DIR
環境変数の値を変更することはできません。
デフォルトでは、インストールディレクトリーには以下のサブディレクトリーがあります。
サブディレクトリー | コンテンツ |
---|---|
| ブローカーの実行に必要なバイナリーおよびスクリプト。 |
| 設定ファイル。 |
| ブローカーのジャーナル。 |
| ブローカーの実行に必要な JAR およびライブラリー。 |
| ブローカーのログファイル。 |
| 一時的な Web アプリケーションファイル。 |
Init コンテナーがブローカー設定の生成が終了すると、ブローカーのアプリケーションコンテナーが起動します。起動時に、ブローカーコンテナーは以前に init コンテナーによって使用されたインストールディレクトリーから設定をコピーします。ブローカー Pod が初期化され、実行されている場合、ブローカー設定はブローカーの /home/jboss/amq-broker
ディレクトリー (およびサブディレクトリー) に置かれます。
関連情報
- Operator がビルトインの Init コンテナーのコンテナーイメージを選択する方法についての詳細は、「Operator によるコンテナーイメージの選択方法」 を参照してください。
- カスタム Init コンテナーイメージをビルドし、指定する方法については、「カスタム init コンテナーイメージの指定」 を参照してください。