空运数据库的DNS查找过多



我们在AWS中的K8s集群上部署了Apache Airflow。Airflow在容器上运行,但EC2实例本身是保留实例。

我们遇到了一个问题,我们看到Ariflow正在进行许多与其DB相关的DNS查询。休息时(即没有DAG运行(,大约为每秒10。当运行多个DAG时,它可以达到每秒50。这导致Route53阻塞我们,因为我们达到了DNS查询的数据包限制(每秒1024个数据包(。

我们的数据库是PostgresRDS,当将其切换到MySQL时,问题仍然存在。

按照我们的理解,DNS查询从K8s的coredns服务开始,该服务尝试对FQDN进行几种排列,如果无法自行解决,则将请求发送到Route53

任何解释Airflow行为或如何减少查询数量的想法、想法或提示都是最受欢迎的。

最佳,

经过一番挖掘,我们发现同时发生了几个问题。

第一个是Airflow的调度程序每秒运行大约2次。每次创建DB查询时,都会产生多个DNS查询。改变日程安排减轻了一些问题。

这里描述了我们遇到的另一个问题。如果coredns在FQDN中的.数量少于x,则它似乎被配置为尝试给定域的一些替代方案。这篇文章中有两个建议的修复方法。我们跟踪他们,DNS查询的数量下降了。

我们也遇到了这个问题。

这不是最容易找到的,因为我们有一个盒子,上面有很多应用程序,可以进行1000次DNS查询,请求对我们的SQL服务器名称进行DNS解析。

我真的很想知道为什么Airflow不像其他应用程序那样只使用DNS缓存

最新更新