我在自己的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 回答
在Kelsey Hightower的帮助下,我解决了这个问题 . 事实证明这是一个Docker路由问题 . 我已经在blog post中写了详细信息,但最重要的是改变了minions的路由表,如下所示:
您是否也修改了源/目的地检查?
由于您的实例将发送和接收除子网分配的IP之外的IP流量,因此您需要禁用源/目标检查 .
看图:https://coreos.com/assets/images/media/aws-src-dst-check.png