5.3. クラスター間ルーターネットワークの作成
AMQ Certificate Manager を使用しているかどうかに応じて、クラスター間ルーターネットワークの作成の手順が異なります。
5.3.1. 認証局を使用したクラスター間ルーターネットワークの作成
異なる OpenShift Container Platform クラスターで実行されているルーターからルーターネットワークを作成できます。これにより、別のクラスターで実行しているアプリケーションを接続できます。
前提条件
- 各ルーターの既存の証明書を定義するシークレットをすでに作成済みである。
手順
以下の手順では、2 つの異なる OpenShift Container Platform クラスター (cluster1
および cluster2
) にルーターデプロイメントを作成し、それらを接続してクラスター間のルーターネットワークを形成します。ルーターデプロイメント間の接続は、SSL/TLS 相互認証を使用して保護されます。
最初の OpenShift Container Platform クラスター (
cluster1)
で、内部ルーターデプロイメントを記述するInterconnect
カスタムリソース YAML ファイルを作成します。この例では、デフォルト設定で単一の内部ルーターを作成します。
cluster1-router-mesh.yaml
ファイルのサンプルapiVersion: interconnectedcloud.github.io/v1alpha1 kind: Interconnect metadata: name: cluster1-router-mesh spec: interRouterListeners: - authenticatePeer: true 1 host: 0.0.0.0 2 port: 55672 3 saslMechanisms: EXTERNAL 4 sslProfile: inter-router-profile 5 expose: true 6 sslProfiles: - caCert: inter-router-certs-secret 7 credentials: inter-router-certs-secret 8 name: inter-router-profile 9
- 1
- TLS 証明書を使用して認証するには、
authenticatePeer
をtrue
に設定する必要があります。 - 2
- リスナーホスト
- 3
- リスナーポート
- 4
- 認証する SASL メカニズム。TLS 証明書には EXTERNAL を使用します。
- 5
- クライアントの認証に使用する ssl-profile 名。
- 6
- ポートにクラスター外からアクセスできるようにルートを公開します。
- 7
- クラスターシークレットまたは
ca.crt
名が含まれる (認証情報で使用されるのと同じシークレットを使用する場合、そうでなければ tls.crt が含まれている必要があります) CA の名前 - 8
- クラスターシークレットおよび
tls.crt
およびtls.key
ファイルが含まれる CA 証明書の名前 - 9
- interRouterListener に使用する ssl-profile 名
YAML ファイルに記述されるルーターデプロイメントを作成します。
$ oc apply -f cluster1-router-mesh.yaml
Red Hat Integration - AMQ Interconnect Operator は、デフォルト設定の内部ルーターおよび他のルーターを認証するためのリスナーを作成します。
-
2 つ目の OpenShift Container Platform クラスター (
cluster2
) にログインし、2 つ目のルーターデプロイメントを作成するプロジェクトに切り替えます。 cluster2
で、ルーターデプロイメントを記述するInterconnect
カスタムリソース YAML ファイルを作成します。cluster2-router-mesh.yaml
ファイルのサンプルapiVersion: interconnectedcloud.github.io/v1alpha1 kind: Interconnect metadata: name: cluster2-router-mesh spec: sslProfiles: - name: inter-router-profile 1 credentials: inter-router-certs-secret caCert: inter-router-certs-secret interRouterConnectors: - host: cluster1-router-mesh-port-55672-myproject.cluster1.openshift.com 2 port: 443 verifyHostname: false sslProfile: inter-router-profile name: cluster1
YAML ファイルに記述されるルーターデプロイメントを作成します。
$ oc apply -f cluster2-router-mesh.yaml
ルーターが接続されていることを確認します。
この例では、
cluster2
のルーターからcluster1
のルーターへの接続を表示しています。$ oc exec cluster2-fb6bc5797-crvb6 -it -- qdstat -c Connections id host container role dir security authentication tenant ==================================================================================================================================================================================================== 1 cluster1-router-mesh-port-55672-myproject.cluster1.openshift.com:443 cluster1-router-mesh-54cffd9967-9h4vq inter-router out TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) x.509