1.18.9. 为联合配置 Service Mesh control plane
在网格可以被联邦前,您必须为网格联邦配置 ServiceMeshControlPlane
。因为属于联邦成员的所有网格都是相等的,并且每个网格都独立管理,所以您必须 为每个 加入联邦的网格配置 SMCP。
在以下示例中,red-mesh
的管理员将配置 SMCP 以同时使用 green-mesh
和 blue-mesh
进行联邦。
Red-mesh 的 SMCP 示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: red-mesh namespace: red-mesh-system spec: version: v2.2 runtime: defaults: container: imagePullPolicy: Always gateways: additionalEgress: egress-green-mesh: enabled: true requestedNetworkView: - green-network routerMode: sni-dnat service: metadata: labels: federation.maistra.io/egress-for: egress-green-mesh ports: - port: 15443 name: tls - port: 8188 name: http-discovery #note HTTP here egress-blue-mesh: enabled: true requestedNetworkView: - blue-network routerMode: sni-dnat service: metadata: labels: federation.maistra.io/egress-for: egress-blue-mesh ports: - port: 15443 name: tls - port: 8188 name: http-discovery #note HTTP here additionalIngress: ingress-green-mesh: enabled: true routerMode: sni-dnat service: type: LoadBalancer metadata: labels: federation.maistra.io/ingress-for: ingress-green-mesh ports: - port: 15443 name: tls - port: 8188 name: https-discovery #note HTTPS here ingress-blue-mesh: enabled: true routerMode: sni-dnat service: type: LoadBalancer metadata: labels: federation.maistra.io/ingress-for: ingress-blue-mesh ports: - port: 15443 name: tls - port: 8188 name: https-discovery #note HTTPS here security: trust: domain: red-mesh.local
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: cluster: name: | 集群的名称。您不需要指定集群名称,但有助于进行故障排除。 | 字符串 | N/A |
spec: cluster: network: | 集群网络的名称。您不必为网络指定名称,但对配置和故障排除很有帮助。 | 字符串 | N/A |
1.18.9.1. 了解联邦网关
您可以使用 网关 来管理入站和出站流量,允许您指定您要进入或离开网格的流量。
您可以使用入口和出口网关来管理进入和离开服务网格(North-South 流量)的流量。当您创建联邦网格时,您可以创建额外的入口/出口网关,以便联邦网格间的服务发现、联邦网格之间的通信,以及管理服务网格(East-West 流量)之间的流量流。
为了避免网格间的命名冲突,您必须为每个网格创建单独的出口和入口网关。例如,red-mesh
将具有单独的出口网关,用于发送到 green-mesh
和 blue-mesh
的流量。
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: gateways: additionalEgress: <egressName>: | 在联邦中为每个网格对等点定义额外的出口网关。 | ||
spec: gateways: additionalEgress: <egressName>: enabled: | 这个参数启用或禁用联邦出口。 |
|
|
spec: gateways: additionalEgress: <egressName>: requestedNetworkView: | 与导出的服务关联的网络。 |
设置为网格 SMCP 中的 | |
spec: gateways: additionalEgress: <egressName>: routerMode: | 网关要使用的路由器模式。 |
| |
spec: gateways: additionalEgress: <egressName>: service: metadata: labels: federation.maistra.io/egress-for: | 为网关指定一个唯一标签,以防止联邦流量通过集群的默认系统网关流。 | ||
spec: gateways: additionalEgress: <egressName>: service: ports: |
指定用于 TLS 和服务发现的 |
将 TLS 服务请求发送到联邦中的其他网格需要端口 | |
spec: gateways: additionalIngress: | 在联邦中为每个 网格对等点定义额外的入口网关网关。 | ||
spec: gateways: additionalIgress: <ingressName>: enabled: | 此参数启用或禁用联邦入口。 |
|
|
spec: gateways: additionalIngress: <ingressName>: routerMode: | 网关要使用的路由器模式。 |
| |
spec: gateways: additionalIngress: <ingressName>: service: type: | 入口网关服务必须通过在 OSI 模型的第 4 层运行并公开可用的负载均衡器公开。 |
| |
spec: gateways: additionalIngress: <ingressName>: service: type: |
如果集群不支持 |
| |
spec: gateways: additionalIngress: <ingressName>: service: metadata: labels: federation.maistra.io/ingress-for: | 为网关指定一个唯一标签,以防止联邦流量通过集群的默认系统网关流。 | ||
spec: gateways: additionalIngress: <ingressName>: service: ports: |
指定用于 TLS 和服务发现的 |
在向联邦中的其他网格接收 TLS 服务请求时,需要端口 | |
spec: gateways: additionalIngress: <ingressName>: service: ports: nodePort: |
用于指定 |
如果指定,除了 |
在以下示例中,管理员使用 NodePort
服务与 green-mesh
来配置 SMCP。
NodePort 的 SMCP 示例
gateways: additionalIngress: ingress-green-mesh: enabled: true routerMode: sni-dnat service: type: NodePort metadata: labels: federation.maistra.io/ingress-for: ingress-green-mesh ports: - port: 15443 nodePort: 30510 name: tls - port: 8188 nodePort: 32359 name: https-discovery