【发布时间】:2020-02-19 07:26:37
【问题描述】:
我有一个在 Google Cloud Kubernetes 上运行的 pod,我有一个在 Atlas 上运行的 MongoDB 集群。 问题很简单:
如果我允许来自 Atlas MongoDB 上任何地方的 IP,我可以连接。 如果我添加 pod 的 IP(所以不再来自 ANYWHERE),它不起作用。
我也在本地尝试过,并且也从本地运行的 docker 中进行了尝试,它可以工作。
我使用以下方法获得了我的 pod 的 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。
谁能向我解释可能是什么问题?
【问题讨论】:
-
我遇到了类似的问题。与 Ingress 负载均衡器关联的一个 pod 正在工作,但在同一节点上运行的另一个 pod 无法访问它。无法访问 mongodb Atlas 的 pod 只是一个 cronjob pod。
-
我猜是因为请求不是由 pod 本身发送的,不记得了,但是是的,请求可能是通过 Kubernetes 集群的另一个 IP 传递的
-
感谢您的回复,添加了Kubernetes集群的每个ip范围,但仍然无法正常工作。不知道是不是因为也需要访问一些电子邮件发送协议:D
标签: mongodb kubernetes ip kubernetes-pod mongodb-atlas