我正在尝试从k8s集群中运行的Pod连接到外部服务器上运行的MongoDB实例。我确实在两个VPC之间建立了VPC对等设置,并且完全能够从节点连接到MongoDB服务器,但是当我从正在运行的Pod中尝试时,它会失败。在尝试使用traceroute时,我认为私有IP不会在Pod网络外部被解析。
在Pod网络端还有其他需要配置的东西吗?
答案 0 :(得分:2)
在这里进行一个疯狂的猜测,我相信您的podCidr与您的VPC上的一个Cidrs冲突。例如:
192.168.0.0/16 <podCidr) -> 192.168.1.0/24 (VPC cidr)
# Pod is thinking it needs to talk to another pod in the cluster
# instead of a server
您可以通过以下命令(clusterCIDR
字段)查看podCidr:
$ kubectl -n kube-system get cm kube-proxy -o=yaml
另一个可能配置错误的方面是您的覆盖网络,其中Pod没有获得Pod IP地址。
答案 1 :(得分:0)
这很好。我正在从Pod中测试telnet的连接,由于成功连接后telnet没有返回任何内容,因此似乎存在一些网络问题。在使用简单的http服务器测试并监视连接后,我发现一切正常。
答案 2 :(得分:0)
podCidr的IP地址与mongo服务器所在的VPC Cidr重叠,因此Kube Router首选内部路由表1st,该内部路由表按设计工作。
您需要用其他网络或Kube网络重新配置VPC网络。