【问题标题】:How can I access external MongoDB server on ec2 instance from an app running inside Kubernetes cluster created with kops?如何从使用 kops 创建的 Kubernetes 集群内运行的应用程序访问 ec2 实例上的外部 MongoDB 服务器?
【发布时间】:2018-10-21 18:42:57
【问题描述】:

我的 MongoDB 在单独的 ec2 实例上运行,而我的应用程序在 kops 创建的 kubernetes 集群中运行。现在我想从运行在 k8s 中的应用程序访问数据库。

为此,我尝试在 k8s VPC 和 ec2 实例的 VPC 之间建立 VPC 对等互连。我尝试将请求者 VPC 设置为 k8s VPC,将接受者 VPC 设置为实例的 VPC。之后,我还在 ec2 实例的安全组中添加了一个入口规则,允许从 k8s 集群的安全组的 27017 端口访问。

但是,当我 ssh 进入 k8s 节点并尝试使用 telnet 时,连接失败了。

程序有什么不正确的地方吗?有没有更好的处理方法?

CIDR 块:

  1. K8S VPC - 172.20.0.0/16

  2. MongoDB VPC - 172.16.0.0/16

【问题讨论】:

  • 什么是远程登录错误?你能从 kubernetes pod/container ping mongofb 节点吗?
  • 请用连接错误类型更新问题
  • 你可能需要抓一些包看看发生了什么

标签: mongodb amazon-ec2 kubernetes kops


【解决方案1】:

两个 VPC 的 CIDR 块是什么?它们不能重叠。此外,您需要确保在修改安全组时允许双向通信。也就是说,除了修改您的 MongoDB VPC 以允许来自 K8s VPC 的入站流量之外,您还需要确保 K8s VPC 允许来自 MongDB VPC 的入站流量。

【讨论】:

  • 我已经用 CIDR 块更新了这个问题。是的,我已经为 k8s 节点的安全组添加了一个入站规则,以允许来自 MongoDB 实例安全组的流量。我只是在使用 telnet 从 k8s 节点之一检查 mongodb 服务器的访问,以在部署应用程序之前验证连接性。让我知道是否应该以不同的方式检查案件。
【解决方案2】:

首先,这似乎不是 Kubernetes 的问题。

确保你有从 kubernetes 到 mongodb 节点的正确路由,反之亦然

确保所需端口在 VPC 的安全组中打开

允许从 kubernetes vpc 到 monogdb vpc 的入站流量

允许从 mongodb vpc 到 kubernetes vpc 的入站流量

确保命名空间安全允许入站和绑定流量

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 2020-05-13
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2020-06-17
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多