如图所示,有两个在不同网段的 K8s 集群 cluster-A 与 cluster-B ,还有一个示例的两个集群外的客户端 hooc-172.1.2.1 ,这些集群的宿主机( phyhost-A 、phyhost-B )和客户端(hooc)都是三层互通的。现在的需求是:( 1 )两个集群之间的 Pod 可以通过对方的 Pod IP 互相访问;( 2 )某一个集群中的任何 Pod 或者再宿主机上可以访问另一集群的 service ( IP 形式);( 3 )集群外的客户端可以访问两个集群的任意 Service 或 Pod (都是 IP 形式)。请问目前有啥现成的方案可以支持吗?目前调研过:submariner 和 wireguard 。submariner 要求 kube-proxy 使用 iptables 模式,这个不太行,且项目较新,不知道有没有经过生产环境的考研;( 2 ) wiregurad 看上去应该能支持,也更成熟稳定一些。wireguard 也有几种模式,不知道 gateway 和 full mesh 选哪个好,而且 wireguard 貌似不是开箱即用的(配置较为复杂),而且对内核要求高。还有 2 个小需求如果满足最好:( 1 )对客户端和服务端的侵入尽可能小一些;( 2 )两个集群的 DNS 服务也能打通,可支持通过 DNS 访问不同集群的 Service 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/998804
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.