gpt4 book ai didi

amazon-web-services - 如何获取 kubernetes 资源以成功连接到另一个 vpc 中的 RDS 实例

转载 作者:行者123 更新时间:2023-12-05 06:29:14 24 4
gpt4 key购买 nike

背景:我在一个 AWS 账户中设置了一个 kubernetes 集群,该集群需要访问另一个账户中 RDS MySQL 实例中的数据,但我似乎无法获得正确的设置以允许流量流量。

到目前为止我尝试了什么:

  • 在两个 VPC 之间建立对等连接。他们在同一个区域,us-east-1。
  • 在每个帐户中创建路由表条目,以将相应子网上的流量指向对等连接。
  • 在 RDS VPC 中创建了一个安全组,以允许来自 kubernetes 子网的流量访问 MySql。
  • 确保在两个 VPC 上都启用了 DNS 解析。

Kubernetes VPC 详细信息(请求者)

这包含 3 个 EC2(看起来每个都有自己的子网)来容纳我的 kubernetes 集群。我使用 EKS 进行设置。

我设置的路由表规则关联了 3 个子网,并将 RDS VPC CIDR block 指向对等连接。

RDS VPC 详细信息(接受方)

此 VPC 包含 mysql RDS 实例,以及一些其他资源。 RDS 实例有相当多的 VPC 安全组分配给它,以便从我们的办公室 IP 等进行访问。它的公共(public)可访问性设置为 true。

我重复了路由表设置(反向)并指向回 K8s VPC 子网/对等连接。

测试

为了测试连接,我尝试了两种不同的方法。需要访问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 container connection to RDS instance in separate VPC我想我明白那里发生了什么。我的 CIDR block 与默认的 K8s ips (10.0...) 不冲突,所以我的问题似乎有所不同。

最佳答案

我知道很久以前有人问过这个问题,但我也遇到了这个问题。

原来我编辑了错误的 AWS 路由表!当我运行 kops 创建我的集群时,它创建了一个新的 VPC,它有自己的路由表,还有另一个路由表!我需要将对等连接路由添加到集群的路由表而不是 VPC 的主路由表。

Routing tables

关于amazon-web-services - 如何获取 kubernetes 资源以成功连接到另一个 vpc 中的 RDS 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53731512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com