我是第一次接触Google Cloud Platform和以下内容:
我已经有一个作为MongoDB服务器运行的计算引擎VM和一个作为NodeJS服务器运行的计算引擎VM。然后,NodeJS应用通过默认的私有网络内部IP连接到Mongo。现在,我正在尝试将NodeJS应用程序迁移到Google Kubernetes Engine,但是在将MongoDB应用程序Docker镜像部署到集群时,我无法连接到NodeJS服务器。
所有像GCE和GKE这样的服务都在同一个区域(us-east-1)。
我做了一个硬测试,通过SSH访问kubernetes集群节点,部署一个简单的MongoDB Docker镜像,并尝试通过命令行连接到远程MongoDB服务器,但问题是相同的,尝试连接时超时。
我还检查了GCP上的防火墙设置以及MongoDB服务器上的bindIp
设置,它对此没有阻止。
有人知道可能会发生什么吗?非常感谢。
发布于 2021-03-16 18:45:45
在我的案例中,从GKE到GCE的流量被Google Firewall阻止,即使您两者都在同一个网络中(默认)。
我不得不将集群详细信息中列出的集群pod网络列入白名单:
Pod address range 10.8.0.0/14
https://console.cloud.google.com/kubernetes/list
https://console.cloud.google.com/networking/firewalls/list
发布于 2019-09-10 06:56:48
默认情况下,GKE集群中的容器应该能够通过内部IP访问同一VPC下的GCE虚拟机。就像你从GKE容器访问互联网(例如google.com)一样,GKE和VPC都知道如何路由流量。问题一定是与其他配置(防火墙或您的应用程序)有关。
您可以做一个测试,在GCE中启动一个简单的HTTP服务器,假设内部IP是10.138.0.5
python -m SimpleHTTPServer 8080
然后创建一个GKE容器并尝试访问该服务:
kubectl run my-client -it --image=tutum/curl --generator=run-pod/v1 -- curl http://10.138.0.5:8080
https://stackoverflow.com/questions/57859826
复制相似问题