作为基准,在Istio的1.1版本之前,Istio 1.0多集群仅支持使用单网格设计。它允许多个集群连接到网格中,但所有集群都在一个共享网络上。也就是说,所有集群中所有pod和服务的IP地址都是可直接路由的,不会发生冲突,同时保证在一个集群中分配的IP地址不会在另一个集群中同时重用。
在这种拓扑配置下,在其中一个集群上运行单个Istio控制平面。该控制平面的Pilot管理本地和远程集群上的服务,并为所有集群配置Envoy代理。这种方法在所有参与集群都具有VPN连接的环境中效果最佳,因此可以使用相同的IP地址从其他任何地方访问网格中的每个pod。
在此配置中,Istio控制平面部署在其中一个集群上,而所有其他集群运行更简单的远程Istio配置,该配置将它们连接到单个Istio控制平面,该平面将所有Envoy管理为单个网格。各个集群上的IP地址不允许重叠,并且远程集群上的服务的DNS解析不是自动的。用户需要在每个参与集群上复制服务,这样每个集群中的Kubernetes集群服务和应用程序都能够将其内部Kubernetes网络暴露给其他集群。一旦一个或多个远程Kubernetes集群连接到Istio控制平面,Envoy就可以与单个控制平面通信并形成跨多个集群的网状网络。