【发布时间】:2021-04-15 00:42:19
【问题描述】:
我对 Kubernetes 执行器的 Airflow 有一个奇怪的行为。在我的配置中,任务在动态创建的 kubernetes pod 中运行,并且我有许多任务每天运行一次或两次。 Taks 本身是运行一些 ETL 例程的 python 运算符,dag 文件通过单独的 pod 与内部的 git repo 同步。一段时间以来一切正常,但不久前在调度程序 pod 中我开始看到错误
kubernetes.client.exceptions.ApiException: (410)
Reason: Gone: too old resource version: 51445975 (51489631)
出现该错误后,任务中的旧 pod 不会被删除,并且在一段时间后无法创建新 pod 并且任务不会运行(或者更准确地说,它冻结在“已调度”状态)。在这种情况下,只需使用
删除调度程序 podkubectl delete -n SERVICE_NAME pod scheduler
并等待 kubernetes 重新创建它会有所帮助,但一段时间后错误再次出现并且情况重复。另一个奇怪的事情是,这个错误似乎只在计划任务运行后出现。如果我通过 UI 多次触发任何任务,则不会出现错误,并且会正常创建和删除 pod。 Airflow 版本是 1.10.12 任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: python kubernetes airflow