我们有一个Kubernetes集群在GKE上运行,使用它自己创建的VPC,子网为10.184.0.0/20
。该集群的工作负载分配了一个面向公共访问的外部负载平衡器,以及一个面向内部通信的内部集群IP。服务的子网是10.0.0.0/20
。
在同一个专有网络上有一个谷歌云经典VPN设置,可以访问专用网络。
我们有另一个系统托管在前提下,通过上述VPN使用隧道进行连接。本地网络可以通过子网10.184.0.0/20
上的私有IP对VPC中的节点进行ping,但可以ping/telnet到子网10.0.0.0/20
上的集群IP。
这有可能实现吗?
这确实是可能的,因为你的隧道已经开通,你可以ping你的节点。我的猜测是,你无法访问你的on-prem应用程序的pod和服务范围,这意味着你只在宣传主要的10.184.0.0/20 CIDR,而不是次要的,对吗?
您可以很容易地检查,通过运行连接测试,它将模拟源-目的地之间的流量(在这种情况下,源是来自您的前置网络的IP,目的地应该是您的服务IP(,并考虑多种产品(防火墙规则、VPC对等、路由、VPN隧道等(,并会让您知道您的环境中是否存在错误/缺失。
如果您在VPN配置中缺少这些范围,则需要重新创建它,并确保在流量选择器中添加辅助范围(或使用宽0.0.0.0/0 CIDR(。
最后,请记住,您需要使用服务(Cluster IP、NodePort、Load Balancer(公开您的应用程序,并从本地网络再次进行测试。