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

Node in EKS doesn't resolve DNS names of RDS (IP working)

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

我们有一个新的 public 访问端点 EKS 集群,节点内的一个应用程序 return 来自 RDS 的东西。 集群的 VPC 是与持有 RDS 的私有 VPC 对等的 VPC。我们还有 Accepter DNS 解析 enabled。接受者是 RDS VPC。

当 SSH-ing 进入我的工作节点时,我们远程登录 RDS,它就解决了。 最初,连接字符串是用端点建立的。它没有到达数据库。我改成了RDS的IP,成功了。

处理 DNS 名称时,需要:

1) 加载时间很长,

2)

"Unable to retrieve Error: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached."

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

感谢您的帮助!

好的,我们找到答案了! 找到它太久了,所以如果你恰好拥有与我们相同的problem/configuration,我会为你省去麻烦。

  1. 您需要在 NaCL 和 SG 中使用端口 53 出站。 kubernetes就是这样检查DNS的。 ()
  2. 在连接字符串、数据源中,我们之前有 "Data Source=DNSName;etc"。我们将其更改为 "Data source=tcp:DNSName"。

就是这样

2 天。 :D

编辑:我可能会补充说我在另一个 environment/aws 帐户中遇到了同样的问题(答案是 53,但略有不同):