无法从GKE pod连接到MongoDB Atlas

时间:2020-02-18 21:59:34

标签: mongodb kubernetes ip kubernetes-pod mongodb-atlas

我有一个在Google Cloud Kubernetes上运行的pod,我有一个在Atlas上运行的MongoDB集群。 问题很简单:

如果我允许Atlas MongoDB上任何地方的IP,我都可以连接。 如果我添加了Pod的IP(因此不再从ANYWHERE中添加),那么它将无法正常工作。

我也在本地尝试过,并且也从本地运行的docker尝试了。

我使用以下方式获得了广告连播的IP(YY.YYY.YYY.YY)

MacBook-Pro-de-Emixam23:plop-service emixam23$ kubectl get services
NAME           TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                           AGE
polop-service  LoadBalancer   XX.XX.X.XXX   YY.YYY.YYY.YY   ZZZZZ:32633/TCP,ZZZZZ:32712/TCP   172m
kubernetes     ClusterIP      XX.X.X.X      <none>          443/TCP                           3h24m

但是通过行为我得到了..我觉得这个EXTERNAL-IP并不是我发送请求的IP。

任何人都可以向我解释可能是什么问题吗?

1 个答案:

答案 0 :(得分:1)

Mongo Atlas公开的IP应该是Internet上可访问的IP(或称为公共IP)。

通常它应该是网络网关IP(或代理服务器的IP,或者代理服务器的IP)。

一种通过在Pod中运行以下命令来检查IP的快速方法

curl ifconfig.me

如果您的Pod不支持此命令,则可以在其中kubectl exec -ti <pod_name> -- sh并安装此命令。

记住:通常,这些IP不仅是一个,而且应该通过网络网关具有3个或更多面向公众的IP,您需要将它们全部找到并添加到Mongo Atlas白名单中