This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.18.10. 加入联邦网格
您可以通过创建 ServiceMeshPeer
资源来声明两个网格之间的联邦。ServiceMeshPeer
资源定义了两个网格之间的联邦,您可以使用它为对等网格配置发现功能,访问对等网格网格,以及用于验证其他网格客户端的证书。
网格以一对一为基础联邦,因此每对等点都需要一对 ServiceMeshPeer
资源指定与其他服务网格的联邦连接。例如,联合名为 red
和 green
的两个网格需要两个 ServiceMeshPeer
文件。
-
在 red-mesh-system 上,为绿色网格创建一个
ServiceMeshPeer
。 -
在 green-mesh-system 上,为红色网格创建一个
ServiceMeshPeer
。
对名为 red
, blue
, 和 green
的三个网格进行联邦会需要六个 ServiceMeshPeer
文件。
-
在 red-mesh-system 上,为绿色网格创建一个
ServiceMeshPeer
。 -
在 red-mesh-system 上,为蓝网格创建一个
ServiceMeshPeer
。 -
在 green-mesh-system 上,为红色网格创建一个
ServiceMeshPeer
。 -
在 green-mesh-system 上,为蓝网格创建一个
ServiceMeshPeer
。 -
在 blue-mesh-system 上,为红色网格创建一个
ServiceMeshPeer
。 -
在 blue-mesh-system 上,为绿色网格创建一个
ServiceMeshPeer
。
ServiceMeshPeer
资源中的配置包括以下:
- 其他网格的 ingress 网关的地址,用于发现和服务请求。
- 用于与指定对等网格交互的本地入口和出口网关名称。
- 将请求发送到此网格时由其他网格使用的客户端 ID。
- 其他网格使用的信任域。
-
包含根证书的
ConfigMap
名称,用于验证由其他网格使用的信任域中的客户端证书。
在以下示例中,red-mesh
的管理员使用 green-mesh
配置联邦。
red-mesh 的 ServiceMeshPeer 资源示例
参数 | 描述 | 值 |
---|---|---|
metadata: name:
| 此资源配置联合的对等网格名称。 | 字符串 |
metadata: namespace:
| 此网格的系统命名空间,即安装了 Service Mesh control plane。 | 字符串 |
spec: remote: addresses:
| 对等网格提供请求的 ingress 网关的公共地址列表。 | |
spec: remote: discoveryPort:
| 地址处理发现请求的端口。 | 默认值为 8188 |
spec: remote: servicePort:
| 地址处理服务请求的端口。 | 默认值为 15443 |
spec: gateways: ingress: name:
|
此网格上为从 peer 网格接收的请求提供服务的网格的 ingress 名称。例如: | |
spec: gateways: egress: name:
|
此网格上为发送到 peer 网格的请求提供服务的出口名称。例如, | |
spec: security: trustDomain:
| peer 网格使用的信任域。 | <peerMeshName>.local |
spec: security: clientID:
| 对等网格在调用此网格时使用的客户端 ID。 | <peerMeshTrustDomain>/ns/<peerMeshSystem>/sa/<peerMeshEgressGatewayName>-service-account |
spec: security: certificateChain: kind: ConfigMap name:
|
包含根证书的资源的 kind(如 ConfigMap)和名称,用于验证由 peer 网格提供给这个网格的客户端和服务器证书。包含证书的配置映射条目的密钥应当是 | kind: ConfigMap name: <peerMesh>-ca-root-cert |
1.18.10.1. 创建 ServiceMeshPeer 资源 复制链接链接已复制到粘贴板!
先决条件
- 两个或多个 OpenShift Container Platform 4.6 或更高版本的集群。
- 集群必须已经联网。
- 支持与联邦网关关联的服务的负载均衡器必须配置为支持原始 TLS 流量。
-
每个集群都必须配置 2.1
ServiceMeshControlPlane
版本,以支持部署的联邦。 -
具有
cluster-admin
角色的帐户。
通过 CLI 操作的步骤
按照以下步骤,从命令行创建 ServiceMeshPeer
资源。本例演示,red-mesh
为 green-mesh
创建一个对等资源。
以具有
cluster-admin
角色的用户身份登录 OpenShift Container Platform CLI。输入以下命令。然后在提示时输入您的用户名和密码。oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
$ oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到安装 control plane 的项目,如
red-mesh-system
。oc project red-mesh-system
$ oc project red-mesh-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据以下示例为您要联合的两个网格创建一个
ServiceMeshPeer
文件。red-mesh 到 green-mesh 的 ServiceMeshPeer 资源示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来部署资源,其中
red-mesh-system
是系统命名空间,servicemeshpeer.yaml
包含您编辑的文件的完整路径:oc create -n red-mesh-system -f servicemeshpeer.yaml
$ oc create -n red-mesh-system -f servicemeshpeer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要确认在红色网格和绿色网格间建立了连接,请在 red-mesh-system命名空间中检查 green-mesh
ServiceMeshPeer
的状态:oc -n red-mesh-system get servicemeshpeer green-mesh -o yaml
$ oc -n red-mesh-system get servicemeshpeer green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow red-mesh 和 green-mesh 之间的 ServiceMeshPeer 连接示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow status.discoveryStatus.active.remotes
字段显示 peer mesh 中的 istiod(在本例中为绿色网格)连接到当前网格中的 istiod(本例中为红色网格)。status.discoveryStatus.active.watch
字段显示当前网格中的 istiod 连接到对等网格中的 istiod。如果在
green-mesh-system
中检查名为red-mesh
的servicemeshpeer
,您会从绿色网格的角度找到有关同一两个连接的信息。当两个网格之间没有建立连接时,
ServiceMeshPeshPeer
状态在status.discoveryStatus.inactive
字段中显示此状态。有关连接尝试失败的更多信息,请检查 Istiod 日志,访问日志处理对等网络中的出口流量,以及处理对等网格中当前网格的入口流量的 ingress 网关。
例如,如果红色网格无法连接到绿色网格,请检查以下日志:
- red-mesh-system 中的 Istiod-red-mesh
- red-mesh-system 中的 egress-green-mesh
- green-mesh-system 中的 ingress-red-mesh