如何通过使用kops创建的Kubernetes集群中运行的应用程序访问ec2实例上的外部MongoDB服务器?

时间:2018-10-21 18:42:58

标签: mongodb amazon-ec2 kubernetes kops

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

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

但是,当我将它切入k8s节点并尝试使用telnet时,连接失败。

该过程中是否存在任何错误?有没有更好的方法来解决这个问题?

CIDR块:

  1. K8S VPC-172.20.0.0/16

  2. MongoDB VPC-172.16.0.0/16

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

首先,这似乎不是kubernetes问题。

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

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

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

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

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