3.3. クラスター間ルーターネットワークの作成
異なる 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: {}
YAML ファイルに記述されるルーターデプロイメントを作成します。
$ oc apply -f cluster1-router-mesh.yaml
AMQ Interconnect Operator は、デフォルト設定で内部ルーターを作成します。AMQ Certificate Manager Operator を使用して認証局 (CA) を作成し、CA が署名した証明書を生成します。
2 つ目の OpenShift Container Platform クラスター (
cluster2
) でルーターデプロイメントの追加の証明書を生成します。cluster2
のルーターデプロイメントには、cluster1
の CA が発行する証明書が必要です。証明書を要求する
Certificate
カスタムリソース YAML ファイルを作成します。certificate-request.yaml
ファイルのサンプルapiVersion: certmanager.k8s.io/v1alpha1 kind: Certificate metadata: name: cluster2-inter-router-tls spec: commonName: cluster1-router-mesh-myproject.cluster2.openshift.com issuerRef: name: cluster1-router-mesh-inter-router-ca 1 secretName: cluster2-inter-router-tls ---
- 1
cluster1
のルーター間 CA を作成した発行者の名前。デフォルトでは発行者の名前は<application-name>-inter-router-ca
です。
YAML ファイルで記述される証明書を作成します。
$ oc apply -f certificate-request.yaml
生成した証明書を抽出します。
$ mkdir /tmp/cluster2-inter-router-tls $ oc extract secret/cluster2-inter-router-tls --to=/tmp/cluster2-inter-router-tls
-
2 つ目の OpenShift Container Platform クラスター (
cluster2
) にログインし、2 つ目のルーターデプロイメントを作成するプロジェクトに切り替えます。 cluster2
で、生成した証明書が含まれるシークレットを作成します。$ oc create secret generic cluster2-inter-router-tls --from-file=/tmp/cluster2-inter-router-tls
cluster2
で、ルーターデプロイメントを記述するInterconnect
カスタムリソース YAML ファイルを作成します。cluster2-router-mesh.yaml
ファイルのサンプルapiVersion: interconnectedcloud.github.io/v1alpha1 kind: Interconnect metadata: name: cluster2-router-mesh spec: sslProfiles: - name: inter-cluster-tls 1 credentials: cluster2-inter-router-tls caCert: cluster2-inter-router-tls interRouterConnectors: - host: cluster1-router-mesh-port-55671-myproject.cluster1.openshift.com 2 port: 443 verifyHostname: false sslProfile: inter-cluster-tls
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-55671-myproject.cluster1.openshift.com:443 cluster1-router-mesh-54cffd9967-9h4vq inter-router out TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) x.509