概念
先同步下术语:
-
基于istio常见方案
多控制面
- 两套istio控制面,不共享原数据,共享根CA
- 容器网络不需要打通,跨集群访问通过istio gateway,双方集群都需要,对端集群暴露一个公网ip
- 两个集群Pod地址范围可以重叠,双方集群互不干扰
- 依赖于DNS解析,.cluster.local解析为本集群,{svc_name}.{namespace}.global访问其他集群。
DNS具体咋解析呢?
- 用户需要在集群中部署istiocoredns
- 用户在istio中加ServiceEntry,里面配置个不存在的ip,就会导致dns错误
- 用户需要在CoreDNS中加个配置,将错误ip的.global后缀的域名丢给istiocoredns解析
单控制面(VPN直连)
- 一个控制面pilot负责将所有子集群的APIServer里的Service,Node,Pod收集起来,统一用xDS分发。
-
单控制面(集群感知)
要求单控制面能访问所有集群的APIServer,然后控制面下发IstioGateway地址
- 然后sidecar将其他集群的服务地址改为网关地址
集群联邦
https://github.com/kubernetes-sigs/kubefed
开源k8s集群联邦。能通过主集群的一组API协调一组集群的配置。
