我有一个在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。
任何人都可以向我解释可能是什么问题吗?
答案 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白名单中