图12-1显示了Istio中单控制平面VPN连接拓扑的多集群支持的调用关系。

图12-1 Istio中单控制平面VPN连接拓扑的多集群支持的调用关系
从图中可以看到整个多集群拓扑中只会在一个Kubernetes集群上安装Istio控制平面。这个安装Istio控制平面的集群通常被称为本地集群,所有其他集群称为远程集群。
这些远程集群只需要安装Istio的Citadel和Sidecar Injector准入控制器,具有较小的Istio占用空间,Citadel用于这些远程集群的安全管理,Sidecar Injector准入控制器用于控制平面中的自动注入和数据平面中工作负载的Sidecar代理功能。
在这个架构中,Pilot可以访问所有集群中的所有Kubernetes API服务器,因此它具有全局网络访问视图。Citadel和Sidecar Injector准入控制器则只会在集群本地范围内运行。每个集群都有唯一的pod和服务CIDR,除此之外,集群之间还有一个共享的扁平网络,以保证能直接路由到任何工作负载,包括到Istio的控制平面。例如,远程集群上的Envoy代理需要从Pilot获得配置,检查并报告给Mixer等。