首页 > 解决方案 > 无法从一个集群访问 Kubernetes 服务到另一个集群(通过 VPC peerng)

问题描述

我想知道是否有人可以帮助解决我的问题,这是设置:

这是问题所在:当我通过集群 2 上的 GKE 节点上的 SSH 连接时,我可以成功运行 curl 请求以访问在集群 1 上运行的https://service1.domain.com,并获得预期的响应,因此流量肯定是从集群 2 > 集群 1 路由。但是,当我从 POD 运行相同的 curl 命令并在 GKE 节点上运行时,相同的 curl 请求会超时。

我已经尽可能多地进行了故障排除,包括 telnet、traceroute 等,但我真的很困惑为什么会这样。如果有人能阐明这里的区别,那就太好了。

我确实想知道 Pod 网络是否以某种方式通过集群公共 IP 而不是通过 VPC 对等连接转发流量。

标签: kubernetesnetworkingcloudcluster-computinggoogle-kubernetes-engine

解决方案


正如答案之一中提到的,IP 别名(VPC-native)应该开箱即用。如果使用基于路由的 GKE 集群而不是 VPC-native,则需要使用自定义路由。

根据这个文件

默认情况下,与 IP 别名一起使用时,支持与 GKE 的 VPC 网络对等互连。如果您不使用 IP 别名,您可以导出自定义路由,以便可以从对等网络访问 GKE 容器。

文档中也对此进行了说明

如果您有没有 VPC 本机寻址的 GKE 集群,您可能有多个静态路由来将流量引导到托管您的容器的 VM 实例。您可以导出这些静态路由,以便可以从对等网络访问容器。


推荐阅读