排查 KubernetesExecutor 任务问题

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

本页面介绍了如何排查 KubernetesExecutor 运行的任务存在的问题,并提供常见问题的解决方案。

排查 KubernetesExecutor 问题的一般方法

如需对使用 KubernetesExecutor 执行的任务进行问题排查,请按所列顺序执行以下操作:

  1. DAG 界面Airflow 界面中查看任务的日志。

  2. 在 Google Cloud 控制台中检查调度器日志:

    1. 在 Google Cloud 控制台中,前往环境页面。

      转到“环境”

    2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

    3. 转到日志标签页,然后勾选 Airflow 日志 > 调度器部分。

    4. 对于给定的时间范围,检查运行任务的 KubernetesExecutor 工作器 Pod。如果 Pod 已不存在,请跳过此步骤。该 Pod 具有 airflow-k8s-worker 前缀,且名称中包含 DAG 或任务名称。查找系统报告的所有问题,例如失败的任务或无法调度的任务。

KubernetesExecutor 的常见问题排查场景

本部分列出了您在使用 KubernetesExecutor 时可能会遇到的常见问题排查场景。

任务进入 Running 状态,然后在执行期间失败。

症状:

  • Airflow 界面和工作器部分的日志标签页中提供了该任务的日志。

解决方案:任务日志会指明问题。

任务实例进入 queued 状态,然后在一段时间后被标记为 UP_FOR_RETRYFAILED

症状:

  • Airflow 界面和工作器部分的日志标签页中没有任务日志。
  • 调度器部分的日志标签页上,您会看到一条显示任务标记为 UP_FOR_RETRYFAILED 的消息。
  • Pod 名称中包含 DAG/任务名称的 airflow-k8s-worker-*.* Pod 处于 Failed/Pending 状态或不存在。

解决方案:

  1. 检查调度器日志,了解该问题的任何详细信息。

可能的原因:

  • 如果调度器日志包含 Adopted tasks were still pending after... 消息,后跟打印的任务实例,请检查您的环境中是否已启用 CeleryKubernetesExecutor。

任务实例进入 Queued 状态,并立即标记为 UP_FOR_RETRYFAILED

症状:

  • Airflow 界面和工作器部分的日志标签页上没有该任务的日志。
  • 调度器部分的日志标签页上的调度器日志包含 Pod creation failed with reason ... Failing task 消息,以及任务标记为 UP_FOR_RETRYFAILED 的消息。

解决方案:

  • 查看调度器日志,了解确切的响应和失败原因。

可能的原因:

如果错误消息为 quantities must match the regular expression ...,则问题最有可能是由为任务工作器 Pod 的 k8s 资源(请求/限制)设置的自定义值引起的。

后续步骤