5.3.2. 使用 AMQ 证书管理器创建集群间路由器网络
您可以从在不同 OpenShift Container Platform 集群中运行的路由器创建路由器网络。这可让您连接在独立集群中运行的应用程序。
流程
此流程以两个不同的 OpenShift Container Platform 集群(cluster1
和 cluster2)
创建路由器部署,并将它们连接在一起,形成集群间路由器网络。路由器部署之间的连接通过 SSL/TLS mutual 验证进行保护。
在第一个 OpenShift Container Platform 集群中(
cluster1)
中,创建一个描述 interior 路由器部署的Interconnect
自定义资源 YAML 文件。这个示例创建带有默认配置的单个 interior 路由器。
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
Red Hat Integration - AMQ Interconnect Operator 创建一个带有默认配置的 interior 路由器。它使用 Red Hat Integration - AMQ Certificate Manager Operator 创建证书颁发机构(CA)并生成由 CA 签名的证书。
在第二个 OpenShift Container Platform 集群中为路由器部署生成额外证书(
cluster2)。
cluster2
中的路由器部署需要cluster1
CA 发布的证书。创建
证书
自定义资源 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-secret ---
- 1
- 为
cluster1
创建 inter-router CA 的发行者名称。默认情况下,Issuer 的名称为 <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-secret --to=/tmp/cluster2-inter-router-tls
-
登录第二个 OpenShift Container Platform 集群(
cluster2
),并切换到要创建第二个路由器部署的项目。 在
cluster2
中,创建一个包含您生成的证书的 Secret。$ oc create secret generic cluster2-inter-router-tls-secret --from-file=/tmp/cluster2-inter-router-tls
在
cluster2
中,创建一个互连
自定义资源 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-secret caCert: cluster2-inter-router-tls-secret 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