4.7. クライアント接続用の Operator ベースのブローカーデプロイメントの設定
4.7.1. アクセプターの設定
OpenShift デプロイメントでブローカー Pod へのクライアント接続を有効にするには、デプロイメントのアクセプターを定義します。アクセプターは、ブローカー Pod が接続を受け入れる方法を定義します。ブローカーのデプロイメントに使用されるメインのカスタムリソース (CR) でアクセプターを定義します。アクセプターを作成する場合は、アクセプターを有効にするメッセージングプロトコルや、これらのプロトコルに使用するブローカー Pod のポートなどの情報を指定します。
以下の手順は、ブローカーデプロイメントの CR で新規アクセプターを定義する方法を示しています。
前提条件
- アクセプターを設定するには、ブローカーのデプロイメントは AMQ Broker Operator のバージョン 0.9 以上をベースとする必要があります。Operator の最新バージョンのインストールについての詳細は、「CLI を使用した Operator のインストール」 を参照してください。
手順
-
初回インストール時にダウンロードして展開した Operator アーカイブの
deploy/crs
ディレクトリーで、broker_activemqartemis_cr.yaml
カスタムリソース (CR) ファイルを開きます。 acceptors
要素に名前付きアクセプターを追加します。protocols
およびport
パラメーターを追加します。値を設定して、アクセプターおよび各ブローカー Pod のポートによってこれらのプロトコル用に公開されるメッセージングプロトコルを指定します。以下に例を示します。spec: ... acceptors: - name: my-acceptor protocols: amqp port: 5672 ...
設定されたアクセプターはポート 5672 を AMQP クライアントに公開します。
protocols
パラメーターに指定できる値の完全なセットが表に表示されます。プロトコル 値 Core Protocol
core
AMQP
amqp
OpenWire
openwire
MQTT
mqtt
STOMP
stomp
すべてのサポート対象プロトコル
all
注記- デプロイメントの各ブローカー Pod に対して、Operator はポート 61616 を使用するデフォルトのアクセプターも作成します。このデフォルトのアクセプターはブローカークラスタリングに必要ですが、Core Protocol は有効になっています。
- デフォルトでは、AMQ Broker 管理コンソールはブローカー Pod で 8161 ポートを使用します。デプロイメントの各ブローカー Pod には、コンソールへのアクセスを提供する専用のサービスがあります。詳細は、5章Operator ベースのブローカーデプロイメント用の AMQ 管理コンソール への接続 を参照してください。
同じアクセプターで別のプロトコルを使用するには、
protocol
パラメーターを変更します。プロトコルのコンマ区切りリストを指定します。以下に例を示します。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 ...
設定されたアクセプターはポート 5672 を AMQP および OpenWire クライアントに公開するようになりました。
アクセプターが許可する同時クライアント接続の数を指定するには、
connectionAllowed
パラメーターを追加して値を設定します。以下に例を示します。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 ...
デフォルトでは、アクセプターはブローカーデプロイメントと同じ OpenShift クラスターのクライアントにのみ公開されます。アクセプターを OpenShift 外部のクライアントに公開するには、
expose
パラメーターを追加し、値をtrue
に設定します。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 expose: true ... ...
OpenShift 外部にあるクライアントにアクセプターを公開すると、Operator はデプロイメント内のブローカー Pod ごとに専用のサービスとルートを自動作成します。
OpenShift 外部のクライアントからアクセプターへのセキュアな接続を有効にするには、
sslEnabled
パラメーターを追加し、値をtrue
に設定します。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 expose: true sslEnabled: true ... ...
アクセプター (またはコネクター) で SSL (Secure Sockets Layer) セキュリティーを有効にすると、以下のような関連する設定を追加できます。
- OpenShift クラスターに認証情報を保存するために使用されるシークレット名。アクセプターで SSL を有効にする場合は、シークレットが必要です。このシークレットの生成に関する詳細は、「ブローカークライアント接続のセキュリティー保護」 を参照してください。
-
セキュアなネットワーク通信に使用する TLS (Transport Layer Security) プロトコル。TLS は、よりセキュアな SSL バージョンで更新されています。
enabledProtocols
パラメーターで TLS プロトコルを指定します。 -
ブローカーとクライアント間で、アクセプターが相互認証とも呼ばれる双方向 TLS を使用するかどうか。これは、
needClientAuth
パラメーターの値をtrue
に設定して指定します。
関連情報
- 認証情報を保存するシークレットの生成など、ブローカークライアント接続をセキュアにするように TLS を設定する方法は、「ブローカークライアント接続のセキュリティー保護」 を参照してください。
- アクセプターおよびコネクターの設定を含む完全なカスタムリソース参照については、「カスタムリソース設定リファレンス」 を参照してください。