首页 文章

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

提问于
浏览
7

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

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

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

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

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

2 回答

  • 7

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

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

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

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

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

相关问题