基本上这个来自 portshift 的博客回答了你的问题。
答案取决于您的集群是如何构建的,因为
Istio 提供了很少的选项来在多个 kubernetes 集群中部署服务网格,这里有更多关于它的信息。
所以,如果你有 Single Mesh 部署

您可以在完全连接的多集群网络上部署单个服务网格(控制平面),并且所有工作负载都可以在没有 Istio 网关的情况下直接相互访问,无论它们在哪个集群上运行。
但
如果您有多网格部署

通过多网格部署,您可以获得更高程度的隔离性和可用性,但会增加设置的复杂性。原本独立的网格使用 ServiceEntries、Ingress Gateway 松散耦合在一起,并使用公共根 CA 作为安全通信的基础。从网络的角度来看,唯一的要求是入口网关可以相互访问。需要访问不同网格中的服务的给定网格中的每个服务都需要远程网格中的 ServiceEntry 配置。
在多网格部署中,随着环境的增长和多样化,安全性会变得复杂。在集群之间对服务进行身份验证和授权时存在安全挑战。本地Mixer(服务策略和遥测)需要使用相邻集群中服务的属性进行更新。否则,当这些服务到达其集群时,它将无法授权这些服务。为此,每个 Mixer 都需要了解相邻集群中的工作负载身份及其属性。每个Citadel都需要使用相邻集群的证书进行更新,以允许集群之间的 mTLS 连接。
跨多网格控制平面的细粒度工作负载身份(mTLS 证书)和服务属性的联合可以通过以下方式完成:
- Kubernetes Ingress:将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群 内的服务 。流量路由由 Ingress 资源上定义的规则控制。Ingress 可以终止 SSL / TLS,并提供基于名称的虚拟主机。然而,它需要一个 Ingress 控制器来满足 Ingress 规则
- 服务网格网关: Istio 服务网格提供了不同的配置模型,即 Istio 网关。网关允许将监控和路由规则等 Istio 功能应用于进入集群的流量。入口网关描述了在网格边缘运行的负载均衡器,用于接收传入的 HTTP/TCP 连接。它配置公开的端口、协议等。入口流量的流量路由是使用 Istio 路由规则配置的,与内部服务请求的方式完全相同。
您认为 mTLS 会在这种情况下工作吗?
基于以上信息
我希望它能回答你的问题。如果您还有其他问题,请告诉我。