vir*_*sox 5 amazon-web-services amazon-vpc google-compute-engine kubernetes google-kubernetes-engine
我有两个(独立的)Kubernetes集群,一个设置为GKE/GCE集群,另一个设置在使用该kube-up.sh脚本创建的AWS环境中.两个集群都正常工作,我可以启动/停止pod,服务以及其他所有内容.
我希望位于这些集群中的pod可以相互通信,但不要将它们作为服务公开.为了实现这一点,我在两个集群之间建立了VPN连接,还有一些路由/防火墙规则,以确保VM/pod可以互相看到.
我可以确认以下方案是否正常工作:
GCE中的VM - > AWS中的VM(OK)
在GCE中的Pod - > AWS中的VM(OK)
AWS中的VM - > GCE中的VM(OK)
AWS中的VM - > GCE中的Pod(OK)
AWS中的Pod - > GCE中的Pod(OK)
但是,我不能让GCE中的VM或Pod与AWS中的Pod通信.
我想知道是否有任何方法可以使用当前的AWS VPC功能.似乎当VPN隧道的AWS端接收到发往pod的数据包时,它实际上并不知道如何处理它们.另一方面,GCE网络自动配置有将pod IP与GKE集群相关联的路由.在这种情况下,当寻址到Pod的数据包到达VPN隧道的GCE端时,它会被正确地转发到其目的地.
那是我的配置:
GKE/GCE in us-east1
网络:10.142.0.0/20
VM1 IP:10.142.0.2
Pod范围(适用于VM1):10.52.4.0/24
Pod1 IP :( 10.52.4.4运行busybox)
防火墙规则:允许来自的任何流量172.16.0.0/12
路由:将目的地的所有内容发送172.16.0.0/12到VPN隧道(在创建VPN时自动添加)
AWS在ap-northeast-1
VPC:172.24.0.0/16
子网1:172.24.1.0/24
VM3 IP(在Subnet1中):172.24.1.5
Kubernetes集群网络(NON_MASQUERADE_CIDR):172.16.0.0/16
Pod范围(CLUSTER_IP_RANGE):172.16.128.0/17
Pod范围(适用于VM3):172.16.129.0/24
Pod3 IP:172.16.129.5
安全组:允许来自10.0.0.0/8的任何流量
路线:
10.0.0.0/8VPN隧道的目的地172.16.129.0/24VM3的目的地有没有人试图做类似的事情?有没有办法配置AWS VPC VPN网关以确保发往Pod的数据包被正确发送到托管它们的VM?有什么建议?
您在 kubernetes federation中要问什么。
联合可以轻松管理多个集群。它通过提供 2 个主要构建块来实现这一点:
跨集群同步资源:联合提供了使多个集群中的资源保持同步的能力。例如,这可用于确保多个集群中存在相同的部署。
跨集群发现:它提供了自动配置 DNS 服务器和来自所有集群后端的负载均衡器的能力。例如,这可用于确保全局 VIP 或 DNS 记录可用于访问多个集群的后端。
另外,这个可能会帮助你https://kubernetes.io/docs/admin/multiple-zones/
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |