如何通过Google Cloud Classic VPN从外部网络连接到Kubernetes Workload Cluster IP?

问题描述

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

在同一VPC上有一个Google Cloud Classic VPN设置,可以访问专用网络。

我们还有一个内部托管的系统,该系统使用隧道通过上述VPN进行连接。本地网络可以通过子网10.184.0.0/20上的专用IP对VPC中的节点执行ping操作,但可以对子网10.0.0.0/20上的群集IP执行ping / telnet操作。

这有可能实现吗?

解决方法

这确实是可能的,因为您的隧道已经建立并且您可以对节点执行ping操作,我的猜测是您无法到达Pod,并且本地应用程序的服务范围也是如此,这意味着您仅在发布主要的10.184 .0.0 / 20 CIDR,但不是中学,不是吗?

您可以通过运行connectivity test轻松地检查它是否可以模拟源目的地之间的流量(在这种情况下,源是本地网络中的IP,目标应该是您的服务IP),考虑几种产品(防火墙规则,VPC对等,路由,VPN隧道等),并会告诉您环境中是否存在错误/遗漏。

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...