【发布时间】:2020-01-11 13:32:00
【问题描述】:
我是 Google Cloud Platform 和以下背景的新手:
我有一个作为 MongoDB 服务器运行的 Compute Engine VM 和一个作为 NodeJS 服务器运行的 Compute Engine VM,已经使用 Docker。然后 NodeJS 应用程序通过默认的 VPC 内部 IP 连接到 Mongo。现在,我正在尝试将 NodeJS 应用程序迁移到 Google Kubernetes Engine,但是当我将 NodeJS 应用程序 Docker 映像部署到集群时,我无法连接到 MongoDB 服务器。
GCE 和 GKE 等所有服务都在同一个区域 (us-east-1)。
我通过 SSH 访问 kubernetes 集群节点并部署了一个简单的 MongoDB Docker 映像并尝试通过命令行连接到远程 MongoDB 服务器进行了艰苦的测试,但问题是相同的,尝试连接时超时。
我还检查了 GCP 上的防火墙设置以及 MongoDB 服务器上的 bindIp 设置,它没有阻止。
有人知道会发生什么吗?非常感谢。
【问题讨论】:
-
私有集群也可以使用内部负载均衡器来接受来自您的 VPC 网络内的流量。
-
嗨@JohnHanley,据我了解,本文档说的是来自 GKE 集群的传入流量,而我的问题是从 GKE 集群到同一 VPC 上的 GCE 实例的传出流量。
-
VPC IP 地址在私有范围内 (RFC1918)。这意味着任何想要直接使用 TCP/IP 到这些地址的人都需要在同一个 VPC 中或在对等 VPC 中。公共资源不能寻址私有地址。当您创建私有 GKE 集群时,Google 会创建一个 VPC,然后将其与您的 VPC 对等,从而允许 GKE VPC 和您的 VPC 之间的私有地址连接。
标签: kubernetes google-cloud-platform google-compute-engine google-kubernetes-engine vpc