Kubernetes容器连接到单独的VPC中的RDS实例

时间:2015-08-12 17:49:13

标签: docker amazon-rds kubernetes amazon-vpc

我在其自己的VPC内部在Amazon EC2中运行了Kubernetes集群,我正在尝试将Dockerized服务连接到RDS数据库(在不同的VPC中)。我已经找到了对等和路由表条目,所以我可以从minion机器上做到这一点:

ubuntu@minion1:~$ psql -h <rds-instance-name>
Password:

所以这一切都在发挥作用。问题是当我尝试从Kubernetes管理的容器内部建立连接时,我得到一个超时:

ubuntu@pod-1234:~$ psql -h <rds-instance-name>
…

为了让minion连接,我配置了一个对等连接,从Kubernetes VPC设置路由表,以便10.0.0.0/16(RDS VPC的CIDR)映射到对等连接,并更新RDS实例的安全组允许从地址范围172.20.0.0/16(Kubernetes VPC的CIDR)到端口5432的流量。

2 个答案:

答案 0 :(得分:7)

在Kelsey Hightower的帮助下,我解决了这个问题。事实证明这是一个Docker路由问题。我在blog post中写了详细信息,但最重要的是改变了minions的路由表,如下所示:

$ sudo iptables -t nat -I POSTROUTING -d <RDS-IP-ADDRESS>/32 -o eth0 -j MASQUERADE

答案 1 :(得分:1)

您是否也修改了源/目的地检查?

由于您的实例将为您的子网分配的IP之外的IP发送和接收流量,因此您需要禁用源/目标检查。

查看图片: https://coreos.com/assets/images/media/aws-src-dst-check.png