kubernetes - 如何通过 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
。
这有可能实现吗?
解决方案
这确实是可能的,因为您的隧道已经启动并且您可以 ping 您的节点我的猜测是您无法从您的本地应用程序访问 pod 和服务范围,这意味着您只宣传主 10.184.0.0/ 20 CIDR 但不是次要的,对吗?
您可以通过运行连接测试轻松检查,它将模拟源-目标之间的流量(在这种情况下,源是来自您的本地网络的 IP,目标应该是您的服务 IP),同时考虑到几种产品(防火墙规则、VPC 对等互连、路由、VPN 隧道等),并且会让您知道您的环境中是否存在错误/缺失。
如果您在 VPN 配置中缺少这些范围,则需要重新创建它并确保在流量选择器中添加辅助范围(或使用宽 0.0.0.0/0 CIDR)。
最后,请记住,您需要使用服务(集群 IP、NodePort、负载均衡器)公开您的应用程序,并从您的本地网络再次进行测试。
推荐阅读
- vba - VBA如何撤消?
- kubernetes - 为什么在 Kubernetes 中执行系统预留的预留很危险?
- node.js - Express body 解析器无法正确解析对象
- javascript - 手风琴仅针对第一个元素以错误的方向扩展
- javascript - 如何使用数字键按降序对对象进行排序?
- android - 具有基本活动的工具栏不可见高程阴影
- c - malloc (77128,0x7fffb99573c0) malloc 问题:*** 对象 0x7fd77c4025c8 错误:
- javascript - 对textarea中的多行执行更新功能
- ios - 在从 UIActivityController 拒绝保存图像的权限后,如何将用户重定向到设置?
- c - 如何从 Visual Studio 2019 中的不同解决方案链接“.lib”库?