amazon-web-services - 如何让 kubernetes 资源成功连接到另一个 vpc 中的 RDS 实例
问题描述
背景:我在一个 AWS 账户中设置了一个 kubernetes 集群,它需要访问另一个账户中的 RDS MySQL 实例中的数据,我似乎无法正确设置以允许流量流动。
到目前为止我已经尝试过:
- 在两个 VPC 之间建立对等连接。他们在同一个区域,us-east-1。
- 在每个帐户中创建路由表条目,以将相应子网上的流量指向对等连接。
- 在 RDS VPC 中创建了一个安全组,以允许来自 kubernetes 子网的流量访问 MySql。
- 确保在两个 VPC 上都启用了 DNS 解析。
Kubernetes VPC 详细信息(请求者)
这包含容纳我的 kubernetes 集群的 3 个 EC2(看起来每个都有自己的子网)。我使用 EKS 进行设置。
我设置的路由表规则关联了 3 个子网,并将 RDS VPC CIDR 块指向对等连接。
RDS VPC 详细信息(接受者)
此 VPC 包含 mysql RDS 实例,以及一些其他资源。RDS 实例分配了相当多的 VPC 安全组,用于从我们的办公室 IP 等访问。它的 Public Accessibility 设置为 true。
我重复了路由表设置(反向)并指向 K8s VPC 子网/对等连接。
测试
为了测试连接,我尝试了 2 种不同的方法。需要访问mysql的应用程序是用node写的,所以我只写了一个测试连接器和示例查询,它超时了。
我还从 kubernetes 集群中运行的 pod 中的终端尝试了 netcat。
nc -v {{myclustername}}.us-east-1.rds.amazonaws.com 3306
这也超时。它似乎正在尝试访问正确的 mysql 实例 IP,所以我不确定这是否意味着我的路由规则在 k8s vpc 端正常工作。
DNS fwd/rev mismatch: ec2-XXX.compute-1.amazonaws.com != ip-{{IP OF MY MYSQL}}.ec2.internal
我不确定下一步要采取什么步骤。任何方向将不胜感激。
旁注:我已经阅读了这个Kubernetes 容器连接到单独 VPC 中的 RDS 实例, 我想我理解那里发生了什么。我的 CIDR 块与默认的 K8s ips (10.0 ... )不冲突,所以我的问题似乎有所不同。