EKS 中的节点无法解析 RDS 的 DNS 名称(IP 工作)

shr*_*mpy 3 dns amazon-web-services amazon-rds kubernetes amazon-eks

我再次需要 Stack Overflow 的帮助:)。

我们有一个新的公共访问端点 EKS Cluster,这是节点内的一个应用程序,可从 RDS 返回某些内容。集群的 VPC 是与保存 RDS 的私有 VPC 对等的 VPC。我们还启用了接受器 DNS解析。接受者是RDS VPC。

当通过 SSH 连接到我的工作节点并远程登录 RDS 时,它就解决了这个问题。最初,连接字符串是与端点建立的。它没有到达数据库。我将其更改为RDS的IP并且它起作用了。

使用 DNS 名称时,需要:

1)大量的时间来加载,

2)

无法检索错误:超时已过期。从池中获取连接之前超时时间已过。发生这种情况的原因可能是所有池连接都在使用中并且已达到最大池大小。

因此我想知道你们中是否有人遇到过这个问题以及如何解决的?使用 EKS 进行 DNS 解析似乎很有趣,但我不太确定为什么实例可以解析,但 Pod 不能解析。

感谢您的帮助!

shr*_*mpy 7

好的,我们找到了答案!找到它花了这么长时间,所以如果您碰巧遇到与我们相同的问题/配置,我会为您省去这个麻烦。

  1. 您需要 NaCL 和 SG 中的端口 53 出站。这就是 kubernetes 检查 DNS 的方式。(在私有子网中运行时 AWS EKS 上的 DNS 问题
  2. 在连接字符串数据源中,我们之前有“Data Source=DNSName;etc”。我们将其更改为“Data source=tcp:DNSName”。

就是这样

2天。:D

编辑:我可能会补充说,我在另一个环境/aws 帐户中遇到了同样的问题(53 是答案,但略有不同):EKS 中的 Pods:无法解析 DNS(但可以 ping IP)