5.2. 多集群配置概述
要配置多集群拓扑,您必须执行以下操作:
- 为每个集群安装 OpenShift Service Mesh Operator。
- 创建或有权访问每个集群的 root 和中间证书。
- 为每个集群应用安全证书。
- 为每个集群安装 Istio。
5.2.1. 为多集群拓扑创建证书 复制链接链接已复制到粘贴板!
为两个集群创建根和中间证书颁发机构(CA)证书。
先决条件
- 您已在本地安装了 OpenSSL。
步骤
创建 root CA 证书:
运行以下命令,为 root 证书创建密钥:
openssl genrsa -out root-key.pem 4096
$ openssl genrsa -out root-key.pem 4096
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 root CA 证书创建一个名为
root-ca.conf
的 OpenSSL 配置证书文件:root 证书配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建证书签名请求:
openssl req -sha256 -new -key root-key.pem \ -config root-ca.conf \ -out root-cert.csr
$ openssl req -sha256 -new -key root-key.pem \ -config root-ca.conf \ -out root-cert.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建共享根证书:
openssl x509 -req -sha256 -days 3650 \ -signkey root-key.pem \ -extensions req_ext -extfile root-ca.conf \ -in root-cert.csr \ -out root-cert.pem
$ openssl x509 -req -sha256 -days 3650 \ -signkey root-key.pem \ -extensions req_ext -extfile root-ca.conf \ -in root-cert.csr \ -out root-cert.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 East 集群创建中间 CA 证书:
运行以下命令,创建名为
east
的目录:mkdir east
$ mkdir east
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 East 集群为中间证书创建一个密钥:
openssl genrsa -out east/ca-key.pem 4096
$ openssl genrsa -out east/ca-key.pem 4096
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
east/
目录中创建一个名为intermediate.conf
的 OpenSSL 配置文件,用于 East 集群的中间证书。复制以下示例文件并将其保存到本地:配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建证书签名请求:
openssl req -new -config east/intermediate.conf \ -key east/ca-key.pem \ -out east/cluster-ca.csr
$ openssl req -new -config east/intermediate.conf \ -key east/ca-key.pem \ -out east/cluster-ca.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 East 集群创建中间 CA 证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从 east 集群的中间和 root CA 证书创建证书链:
cat east/ca-cert.pem root-cert.pem > east/cert-chain.pem && cp root-cert.pem east
$ cat east/ca-cert.pem root-cert.pem > east/cert-chain.pem && cp root-cert.pem east
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 West 集群创建中间 CA 证书:
运行以下命令,创建名为
west
的目录:mkdir west
$ mkdir west
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 West 集群创建一个中间证书的密钥:
openssl genrsa -out west/ca-key.pem 4096
$ openssl genrsa -out west/ca-key.pem 4096
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
west/
目录中为 West 集群中间证书创建一个名为intermediate.conf
的 OpenSSL 配置文件。复制以下示例文件并将其保存到本地:配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建证书签名请求:
openssl req -new -config west/intermediate.conf \ -key west/ca-key.pem \ -out west/cluster-ca.csr
$ openssl req -new -config west/intermediate.conf \ -key west/ca-key.pem \ -out west/cluster-ca.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建证书链:
cat west/ca-cert.pem root-cert.pem > west/cert-chain.pem && cp root-cert.pem west
$ cat west/ca-cert.pem root-cert.pem > west/cert-chain.pem && cp root-cert.pem west
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2. 将证书应用到多集群拓扑 复制链接链接已复制到粘贴板!
将 root 和中间证书颁发机构(CA)证书应用到多集群拓扑中的集群。
在此过程中,CLUSTER1
是东集群,CLUSTER2
是 West 集群。
先决条件
- 您可以访问支持外部负载均衡器的两个 OpenShift Container Platform 集群。
- 您已为每个集群创建 root CA 证书和中间 CA 证书,或者有人可以供您使用。
步骤
将证书应用到多集群拓扑的 East 集群:
运行以下命令登录到 East 集群:
oc login -u https://<east_cluster_api_server_url>
$ oc login -u https://<east_cluster_api_server_url>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,设置包含东集群的
oc
命令上下文的环境变量:export CTX_CLUSTER1=$(oc config current-context)
$ export CTX_CLUSTER1=$(oc config current-context)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建一个名为
istio-system
的项目:oc get project istio-system --context "${CTX_CLUSTER1}" || oc new-project istio-system --context "${CTX_CLUSTER1}"
$ oc get project istio-system --context "${CTX_CLUSTER1}" || oc new-project istio-system --context "${CTX_CLUSTER1}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将 Istio 配置为使用
network1
作为 East 集群中的 pod 的默认网络:oc --context "${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
$ oc --context "${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在东集群中为 Istio 创建 CA 证书、证书链和私钥:
oc get secret -n istio-system --context "${CTX_CLUSTER1}" cacerts || oc create secret generic cacerts -n istio-system --context "${CTX_CLUSTER1}" \ --from-file=east/ca-cert.pem \ --from-file=east/ca-key.pem \ --from-file=east/root-cert.pem \ --from-file=east/cert-chain.pem
$ oc get secret -n istio-system --context "${CTX_CLUSTER1}" cacerts || oc create secret generic cacerts -n istio-system --context "${CTX_CLUSTER1}" \ --from-file=east/ca-cert.pem \ --from-file=east/ca-key.pem \ --from-file=east/root-cert.pem \ --from-file=east/cert-chain.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您遵循"为多集群网格创建证书"中的说明,您的证书将位于
east/
目录中。如果您的证书位于不同的目录中,请相应地修改语法。
将证书应用到多集群拓扑的 West 集群:
运行以下命令登录到 West 集群:
oc login -u https://<west_cluster_api_server_url>
$ oc login -u https://<west_cluster_api_server_url>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,设置包含 West 集群的
oc
命令上下文的环境变量:export CTX_CLUSTER2=$(oc config current-context)
$ export CTX_CLUSTER2=$(oc config current-context)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建一个名为
istio-system
的项目:oc get project istio-system --context "${CTX_CLUSTER2}" || oc new-project istio-system --context "${CTX_CLUSTER2}"
$ oc get project istio-system --context "${CTX_CLUSTER2}" || oc new-project istio-system --context "${CTX_CLUSTER2}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将 Istio 配置为使用
network2
作为 West 集群中的 pod 的默认网络:oc --context "${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
$ oc --context "${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在 West 集群上为 Istio 创建 CA 证书 secret:
oc get secret -n istio-system --context "${CTX_CLUSTER2}" cacerts || oc create secret generic cacerts -n istio-system --context "${CTX_CLUSTER2}" \ --from-file=west/ca-cert.pem \ --from-file=west/ca-key.pem \ --from-file=west/root-cert.pem \ --from-file=west/cert-chain.pem
$ oc get secret -n istio-system --context "${CTX_CLUSTER2}" cacerts || oc create secret generic cacerts -n istio-system --context "${CTX_CLUSTER2}" \ --from-file=west/ca-cert.pem \ --from-file=west/ca-key.pem \ --from-file=west/root-cert.pem \ --from-file=west/cert-chain.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您遵循"为多集群网格创建证书"中的说明,您的证书将位于
west/
目录中。如果证书位于不同的目录中,请相应地修改语法。
后续步骤
在所有由网格拓扑组成的集群中安装 Istio。