首页 > 解决方案 > EKS 中的节点不解析 RDS 的 DNS 名称(IP 工作)

问题描述

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

我们有一个新的公共访问端点 EKS 集群,它是节点内的一个应用程序,它从 RDS 返回一些东西。集群的 VPC 是与持有 RDS 的私有 VPC 对等的 VPC。我们还启用了Accepter DNS解析。接受者是 RDS VPC。

当 SSH 连接到我的工作节点时,我们远程登录 RDS,它会解决它。最初,连接字符串是与端点建立的。它没有到达数据库。我将其更改为 RDS 的 IP,并且可以正常工作。

使用 DNS 名称时,需要:

1)大量的加载时间,

2)

"无法检索错误:超时已过期。从池中获取连接之前已过了超时期限。这可能是因为所有池连接都在使用中并且已达到最大池大小。 "

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

谢谢您的帮助!

标签: amazon-web-serviceskubernetesdnsamazon-rdsamazon-eks

解决方案


好的,所以我们找到了答案!找到它太久了,所以如果您碰巧遇到与我们相同的问题/配置,我会为您省去麻烦。

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

就是这样

2天。:D

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


推荐阅读