在 Cloud composer 中,dag 最后一个任务在 2022 年 3 月 24 日 1:00 上午失败,每日计划日志不完整,但在同一天 运行 其他日子成功

In Cloud composer1, dag last task fail with incomplete log on daily schedule at 1:00 am on 24th march 2022 but same dag ran successfully on other days

下面是失败的 dag 的图片,最后一个任务未完成登录 google 云作曲家版本 composer-1.17.8-airflow-2.1.4 于 2022 年 3 月 24 日

第二天,下面是成功的 dag 的图片,最后一个任务完成登录 google cloud composer 版本 composer-1.17.8-airflow-2.1.4 2022 年 3 月 25 日,dag 代码没有任何修改和其他依赖文件

能否让我们知道 2022 年 3 月 24 日 cloud composer 1 行为不同的确切原因,因为在所有其他日子里,具有相同代码和依赖项的相同 dag 按计划 运行 在 1:00我成功了吗?

同样失败的dags的手册运行,结果是成功的。还按计划 运行 在接下来的几天 observation/monitoring 中保留了具有相同代码和依赖项文件的 dag。结果成功了。 2022 年 3 月 24 日失败的 dag 需要更清楚地了解最后一个任务未完成的日志

不完整的日志通常意味着 Airflow worker pod 被驱逐,这通常是当 Kubernetes 集群中的节点 运行 内存或磁盘不足时,它会激活一个标志,表明它处于压力之下。如果您转到 GKE 集群(Composer 引擎盖下的集群),您可能会看到确实有一个被逐出的 pod (GKE > Workloads > "airflow-worker")。

您可能会在“任务实例”中看到所述任务没有分配工作人员(主机名),添加到不完整的日志中,这是 pod 死亡的证明

由于这通常发生在高度并行化的 DAG 中,避免这种情况的方法是减少工作人员并发性或使用更好的机器。 作曲家问题只发生在任务实例级别或网络级别。我们的作曲家问题是在我们现在确定的任务实例级别。

高 CPU 使用率通常是 Worker Pod 驱逐的根本原因。如果使用率非常高,应该考虑扩展 Composer 环境或更改 DAG 运行的时间表。