Cloud Composer 任务无故失败或无日志记录

Ary*_*azz 7 google-cloud-platform airflow google-cloud-composer

Airflow在托管Cloud-composer environment(版本 1.9.0)中运行,在Kubernetes1.10.9-gke.5 集群上运行。

我所有的 DAG 每天在凌晨 3:00 或凌晨 4:00 运行。但是在早上的某个时候,我看到一些任务在夜间无故失败。

  • 使用 UI 检查日志时 - 我没有看到日志,并且在检查 GCS 存储桶中的日志文件夹时也没有看到日志 在此处输入图片说明

  • 在实例详细信息中,它显示为“从调度开始的依赖项阻止任务”,但依赖项是 dagrun 本身。 在此处输入图片说明

  • 尽管 DAG 设置了 5 次重试和一封电子邮件,但它看起来似乎没有发生任何重试,而且我还没有收到有关失败的电子邮件。

  • 我通常只是清除任务实例,它会在第一次尝试时成功运行。

有没有人遇到过类似的问题?

Iñi*_*igo 9

空日志通常意味着 Airflow 工作 pod 被驱逐(即,它在将日志刷新到 GCS 之前就死了),这通常是由于内存不足的情况。如果您转到您的 GKE 集群(Composer 引擎盖下的集群),您可能会看到确实有一个被驱逐的 pod(GKE > Workloads > “airflow-worker”)。

您可能会在“Tasks Instances”中看到,所述任务没有分配Start DatenorJob Id或 worker ( Hostname),添加到没有日志中,是 pod 死亡的证明。

由于这通常发生在高度并行化的 DAG 中,因此避免这种情况的一种方法是减少工作线程的并发性或使用更好的机器。

编辑:我代表您提交了此功能请求,以便在出现故障时收到电子邮件,即使 pod 被驱逐。