从 Kubernetes 容器通过 Cloud VPN 访问服务

Psy*_*hoX 5 routing google-cloud-platform google-kubernetes-engine

我有一个 VPC 网络设置,其中有一个连接到本地网络的 VPN。云路由器用于在内部以及与 VPN 网络之间创建路由 (BGP)。其中一个项目是托管具有内部和外部 IP(具有别名 IP 范围)的公共 Kubernetes 集群。它被配置为 VPC 网络的一部分(使用其子网之一)。

我正在尝试将 Kubernetes 上运行的服务连接到内部网络中的资源(通过 Cloud VPN)。不幸的是,这似乎不可能。连接超时。

Cloud VPN、Cloud Router 设置正确,网络之间存在访问/通信。唯一的问题是,我无法从 Kubernetes 容器访问本地资源

小智 1

听起来您遇到了 GKE 路由问题。这通常是因为 Pod 流量正在进行 NAT 而不应该进行 NAT,或者 Pod 流量的源应保留为 Pod IP,但却进行了 NAT 以使用节点 IP。无论哪种情况,您的防火墙都配置为允许一种类型的流量,而不允许另一种类型的流量。

为了解决这个问题,GKE 提供了 [IP masq Agent][1],您可以使用它来调整集群应进行 SNAT 的目标 IP 范围,从而使您能够控制哪些流量经过 NAT,哪些流量不经过 NAT,并且允许您可以正确预测允许哪些流量通过 VPN 和防火墙。