istio 多控制面多集群配置(跨集群访问)

官方多控制面部署流程

https://istio.io/docs/setup/install/multicluster/gateways/


多集群相关配置(平台级别)

部署之后跟多集群相关的配置有以下三种

1.Gateway

istio-multicluster-ingressgateway:作用是允许.local后缀的流量进来


istio-multicluster-egressgateway

2.DestinationRule

istio-multicluster-destinationrule:作用是.local流量出去的时候,使用tmls协议


3.EnvoyFilter

istio-multicluster-ingressgateway:作用是把.local后缀的流量在进来的时候,把后缀替换成.svc.cluster.local



按照自定义的规则


例如有三个集群gzone(global zone), uzone1, uzone2,统一的服务部署在gzone上,uzone1和uzone2都需要访问gzone,  此时只需要执行以下三个步骤:

1.所有集群istio-multicluster-ingressgateway的host字段只需要填上自己所在的集群后缀

例如gzone的gw,hosts字段改为 *.gzone


2.uzone1和uzone2新建立一个destinationrule, istio-multicluster-dr-gzone


3.gzone的新建一个envoyfilter, 实现把后缀.gzone换成.svc.cluster.local



总结


A集群访问B集群,A集群叫做本端,B集群叫对端则平台级需要配置:

本端:

- 只需要新建一个DestinationRule,带通配符,指明协议

对端:

- GateWay:需要指明本集群后缀

- EnvoyFilter:需要做本集群后缀到local的转换


原理

//todo

看Gateway\DR\EF在envoy config中的作用位置

应用级别

//todo

当然想要两个集群通信成功,仅仅是平台级别配置是不够的,还需要一些应用级别的配置,例如VirtualService\Serviceentry\DestinationRule这些

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。