首页 > 解决方案 > 如何通过 Google Cloud Classic VPN 从外部网络连接到 Kubernetes 工作负载集群 IP?

问题描述

我们有一个在 GKE 上运行的 Kubernetes 集群,它使用为此创建的自己的 VPC,子网为10.184.0.0/20. 该集群的工作负载已分配给公共访问的外部负载均衡器,以及用于内部通信的内部集群 IP。服务的子网是10.0.0.0/20

在同一 VPC 上有一个谷歌云经典 VPN 设置,以便能够访问专用网络。

我们在本地托管了另一个系统,该系统使用隧道通过上述 VPN 进行连接。本地网络可以通过子网上的私有 IP ping VPC 中的节点10.184.0.0/20,但可以 ping / telnet 到子网上的集群 IP 10.0.0.0/20

这有可能实现吗?

标签: kubernetesgoogle-kubernetes-enginegoogle-vpcgoogle-cloud-vpn

解决方案


这确实是可能的,因为您的隧道已经启动并且您可以 ping 您的节点我的猜测是您无法从您的本地应用程序访问 pod 和服务范围,这意味着您只宣传主 10.184.0.0/ 20 CIDR 但不是次要的,对吗?

您可以通过运行连接测试轻松检查,它将模拟源-目标之间的流量(在这种情况下,源是来自您的本地网络的 IP,目标应该是您的服务 IP),同时考虑到几种产品(防火墙规则、VPC 对等互连、路由、VPN 隧道等),并且会让您知道您的环境中是否存在错误/缺失。

如果您在 VPN 配置中缺少这些范围,则需要重新创建它并确保在流量选择器中添加辅助范围(或使用宽 0.0.0.0/0 CIDR)。

最后,请记住,您需要使用服务(集群 IP、NodePort、负载均衡器)公开您的应用程序,并从您的本地网络再次进行测试。


推荐阅读