【问题标题】:Airflow too many DNS lookups for database气流过多的数据库 DNS 查找
【发布时间】:2021-03-09 08:24:20
【问题描述】:

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

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

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

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

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

最好的,

【问题讨论】:

    标签: kubernetes airflow amazon-route53


    【解决方案1】:

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

    首先是 Airflow 的调度程序每秒运行大约 2 次。每次它创建数据库查询都会导致几个 DNS 查询。更改该日程安排可以缓解一些问题。

    我们遇到的另一个问题是here。如果 x 在 FQDN 中的 . 数量少于 x 数量,则看起来 coredns 已配置为尝试给定域的一些替代方案。该文章中有 2 个建议的修复程序。我们跟踪他们,DNS 查询的数量下降了。

    【讨论】:

      【解决方案2】:

      我们也遇到过这个问题。

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

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

      【讨论】:

      • 点评来源: “我也有这个问题”在 S.O. 中不是一个有效的答案。规则。请将此作为对该问题的评论。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2014-02-23
      相关资源
      最近更新 更多