无法从Pod访问外部mongo服务器,但能够从EC2实例连接

时间:2018-10-28 13:04:23

标签: amazon-web-services kubernetes

我正在尝试从k8s集群中运行的Pod连接到外部服务器上运行的MongoDB实例。我确实在两个VPC之间建立了VPC对等设置,并且完全能够从节点连接到MongoDB服务器,但是当我从正在运行的Pod中尝试时,它会失败。在尝试使用traceroute时,我认为私有IP不会在Pod网络外部被解析。

在Pod网络端还有其他需要配置的东西吗?

3 个答案:

答案 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网络。