3.4. Operator ベースのブローカーデプロイメントの作成
3.4.1. 基本的なブローカーインスタンスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、カスタムリソース (CR) インスタンスを使用して基本的なブローカーデプロイメントを作成する方法を説明します。
複数のカスタムリソース (CR) インスタンスをデプロイして、特定の OpenShift プロジェクトに複数のブローカーデプロイメントを作成できますが、通常、プロジェクトに単一のブローカーデプロイメントを作成してから、アドレスに複数の CR インスタンスをデプロイします。
Red Hat は、個別のプロジェクトでデプロイメントを作成することを推奨します。
AMQ Broker 7.11 で次の項目を設定する場合は、CR を初めてデプロイする 前 に、メインブローカー CR インスタンスに適切な設定を追加する必要があります。
前提条件
AMQ Broker Operator がすでにインストールされている必要があります。
- OpenShift コマンドラインインターフェイス (CLI) を使用して AMQ Broker Operator をインストールするには、「CLI を使用した Operator のインストール」 を参照してください。
- OperatorHub グラフィカルインターフェイスを使用して AMQ Broker Operator をインストールするには、「OperatorHub を使用した Operator のインストール」 を参照してください。
- Operator がブローカーデプロイメントに使用するブローカーコンテナーイメージを選択する方法を理解している必要があります。詳細は、「Operator によるコンテナーイメージの選択方法」 を参照してください。
- AMQ Broker 7.3 以降では、新しいバージョンの Red Hat Ecosystem Catalog を使用してコンテナーイメージにアクセスする。この新しいバージョンのレジストリーでは、イメージにアクセスする前に認証されたユーザーである必要がある。本セクションの手順を実行する前に、Red Hat Container Registry Authentication で説明されている手順を完了する必要がある。
手順
Operator が正常にインストールされると、Operator は実行され、CR に関連する変更をリッスンします。以下の手順では、CR インスタンスを使用して基本的なブローカーをプロジェクトにデプロイする方法を説明します。
ブローカーデプロイメントのカスタムリソース (CR) インスタンスの設定を開始します。
OpenShift コマンドラインインターフェイスの使用:
デプロイメントを作成するプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ダウンロードした Operator インストールアーカイブの
deploy/crsディレクトリーに含まれるbroker_activemqartemis_cr.yamlというサンプル CR ファイルを開きます。
OpenShift Container Platform Web コンソールの使用
- デプロイメントを作成するプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
メインブローカー CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、
をクリックします。 - ActiveMQArtemis CRD をクリックします。
- Instances タブをクリックします。
Create ActiveMQArtemis をクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
基本的なブローカーデプロイメントの場合、設定が以下のように表示される可能性があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow broker_activemqartemis_cr.yamlサンプル CR ファイルで、imageプロパティーがplaceholderのデフォルト値に設定されていることを確認します。この値はデフォルトで、imageプロパティーによってデプロイメントに使用するブローカーコンテナーイメージが指定されていないことを示します。Operator が使用する適切なブローカーコンテナーイメージを判別する方法については、「Operator によるコンテナーイメージの選択方法」 を参照してください。注記broker_activemqartemis_cr.yamlサンプル CR は、ex-aaoの命名規則を使用します。この命名規則は、CR が AMQ Broker Operator のリソースの例になります。AMQ Broker は ActiveMQ Artemis プロジェクトをベースにしています。このサンプル CR をデプロイする場合、生成される StatefulSet はex-aao-ssの名前を使用します。さらに、デプロイメントのブローカー Pod は StatefulSet 名に基づいて直接使用されます (例:ex-aao-ss-0、ex-aao-ss-1など)。CR のアプリケーション名が StatefulSet のラベルとしてデプロイメントに表示されます。このラベルは Pod セレクターで使用できます。-
sizeプロパティーはデプロイするブローカーの数を指定します。2以上の値は、クラスターブローカーデプロイメントを指定します。ただし、単一のブローカーインスタンスをデプロイするには、値が1に設定されていることを確認します。 CR インスタンスをデプロイします。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントを作成するプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR インスタンスを作成します。
oc create -f <path/to/custom_resource_instance>.yaml
$ oc create -f <path/to/custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Web コンソールの使用
- CR の設定が完了したら、Create をクリックします。
Open Shift Container Platform Web コンソールで、
をクリックします。 ex-aao-ssという新しい StatefulSet が表示されます。- ex-aao-ss StatefulSet をクリックします。CR で定義される単一ブローカーに対応する Pod が 1 つあることが分かります。
- StatefulSet 内で Pods タブをクリックします。ex-aao-ss Pod をクリックします。実行中の Pod の Events タブで、ブローカーコンテナーが起動したことを確認できます。Logs タブには、ブローカー自体が実行中であることを示します。
ブローカーは通常実行されていることをテストするには、ブローカー Pod のシェルにアクセスしてテストメッセージを送信します。
OpenShift Container Platform Web コンソールの使用
-
をクリックします。 - ex-aao-ss Pod をクリックします。
- Terminal タブをクリックします。
-
OpenShift コマンドラインインターフェイスの使用:
プロジェクトの Pod 名および内部 IP アドレスを取得します。
oc get pods -o wide
$ oc get pods -o wide NAME STATUS IP amq-broker-operator-54d996c Running 10.129.2.14 ex-aao-ss-0 Running 10.129.2.15Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカー Pod のシェルにアクセスします。
oc rsh ex-aao-ss-0
$ oc rsh ex-aao-ss-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シェルから
artemisコマンドを使用して、一部のテストメッセージを送信します。URL にブローカー Pod の内部 IP アドレスを指定します。以下に例を示します。./amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueue
sh-4.2$ ./amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、ブローカーに
demoQueueというキューを自動的に作成し、デフォルトの数量 1000 のメッセージをキューに送信します。以下のような出力が表示されるはずです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- メインのブローカーカスタムリソース (CR) の完全な設定リファレンスは、「カスタムリソース設定リファレンス」 を参照してください。
- 稼働中のブローカーを AMQ 管理コンソールに接続する方法は、5章Operator ベースのブローカーデプロイメント用の AMQ 管理コンソールへの接続 を参照してください。
3.4.2. クラスター化されたブローカーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
2 つ以上のブローカー Pod がプロジェクトで実行されている場合、Pod はブローカークラスターを自動的に形成します。クラスター化の設定により、ブローカーは相互に接続でき、必要に応じてメッセージを再配布できます。
以下の手順では、クラスター化されたブローカーをデプロイする方法を説明します。デフォルトでは、このデプロイメントのブローカーはオンデマンド負荷分散を使用します。つまり、ブローカーは一致するコンシューマーを持つ他のブローカーにのみメッセージを転送します。
前提条件
- 基本的なブローカーインスタンスはすでにデプロイされています。「基本的なブローカーインスタンスのデプロイ」 を参照してください。
手順
- 基本的なブローカーデプロイメントに使用した CR ファイルを開きます。
クラスター化したデプロイメントの場合は、
deploymentPlan.sizeの値が2以上であることを確認します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記metadataセクションで、namespaceプロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。- 変更された CR ファイルを保存します。
基本的なブローカーデプロイメントを作成したプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
$ oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 基本的なブローカーデプロイメントを先に作成したプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインで変更を適用します。
oc apply -f <path/to/custom_resource_instance>.yaml
$ oc apply -f <path/to/custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform Web コンソールで、追加のブローカー Pod は CR で指定される数に基づいてプロジェクトで起動します。デフォルトで、プロジェクトで実行されているブローカーはクラスター化されます。
各 Pod の Logs タブを開きます。ログには、OpenShift が各ブローカーでクラスター接続ブリッジが確立されていることが示されています。具体的には、ログ出力には以下のような行が含まれます。
targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88
targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.3. ブローカーデプロイメントの実行へのカスタムリソース変更の適用 リンクのコピーリンクがクリップボードにコピーされました!
以下は、ブローカーデプロイメントの実行にカスタムリソース (CR) 変更の適用について留意すべき重要な事項です。
-
CR の
persistenceEnabled属性を動的に更新することはできません。この属性を変更するには、クラスターをゼロにスケールダウンします。既存の CR を削除します。次に、変更で CR を再作成し、再デプロイします。また、デプロイメントサイズも指定します。 -
「CLI を使用した Operator のデプロイ」 で説明されているように、永続ストレージ (CR に
persistenceEnabled=true) でブローカーデプロイメントを作成する場合、ブローカー Pod について AMQ Broker Operator が要求する永続ボリューム (PV) をプロビジョニングする必要がある場合があります。ブローカーデプロイメントのサイズを縮小する場合、Operator はシャットダウンされるブローカー Pod で以前に要求された PV を解放します。ただし、CR を削除してブローカーデプロイメントを削除する場合、AMQ Broker Operator は削除時にデプロイメントにあるブローカー Pod の Persistent Volume Claim (永続ボリューム要求、PVC) を解放しません。また、これらのリリースされていない PV はいずれの新規デプロイメントでも利用できません。この場合は、ボリュームを手動で解放する必要があります。詳細は、OpenShift ドキュメントの 永続ボリュームの解放 を参照してください。 AMQ Broker 7.11 で次の項目を設定する場合は、CR を初めてデプロイする 前 に、メイン CR インスタンスに適切な設定を追加する必要があります。
- アクティブなスケーリングイベント時に、さらに適用する変更は Operator によってキューに入れられ、スケーリングが完了した場合にのみ実行されます。たとえば、デプロイメントのサイズを 4 つのブローカーから 1 つにスケールダウンするとします。次に、縮小が行われる間、ブローカー管理者のユーザー名およびパスワードの値も変更します。この場合、Operator は 1 つのアクティブなブローカーでデプロイメントが実行されるまで、ユーザー名とパスワードの変更をキューに入れます。
-
すべての CR の変更: デプロイメントのサイズを変更したり、アクセプター、コネクター、またはコンソールの
expose属性の値を変更することとは別に、既存のブローカーが再起動されます。デプロイメントに複数のブローカーがある場合は、1 度に 1 つのブローカーのみを再起動します。