You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow UI无法获取Worker Pod日志(404错误)问题排查

Airflow Worker Pod日志404问题排查方案

问题本质

DAG运行时Worker Pod处于存活状态,Airflow UI可直接从Pod拉取日志;但任务执行完成后Pod被自动清理,UI再次尝试拉取时因Pod不存在返回404错误。WAS控制台运行时能看到Pod及日志,说明日志在Pod运行期间正常生成,仅因Pod后续被回收导致Airflow无法访问。

具体排查与修复动作

  • 确认Pod自动清理规则
    检查Kubernetes集群是否配置了自动清理已完成Pod的策略(如ttlSecondsAfterFinished注解)。执行以下命令查看目标Pod的生命周期配置:

    kubectl describe pod aggregationtestcheckingcache-33ea24f45f1344d7a628e21a53b4f6d0 | grep -A 5 -B 5 "TTL"
    

    如果存在短时间清理Pod的配置,可延长TTL时间,确保Airflow有足够时间同步日志后再回收Pod。

  • 配置Airflow远程日志持久化
    这是根治问题的核心方案:让Airflow将日志同步到独立的持久化存储(如对象存储、PVC),不再依赖Worker Pod本地存储。修改airflow.cfg中的日志配置:

    [logging]
    remote_logging = True
    remote_base_log_folder = <你的WAS兼容存储路径,如OSS桶地址>
    remote_log_conn_id = <已配置的存储连接ID>
    

    配置生效后,即使Pod被清理,Airflow UI会直接从远程存储加载日志。

  • 挂载持久化卷到Worker Pod日志目录
    通过Airflow的Kubernetes Executor配置,将Worker的日志目录挂载到持久化PVC,确保Pod清理后日志仍保留在PVC中。在DAG任务配置中添加:

    task = PythonOperator(
        task_id="your_task",
        python_callable=your_func,
        executor_config={
            "kubernetes": {
                "volume_mounts": [{"name": "airflow-logs", "mountPath": "/opt/airflow/logs"}],
                "volumes": [{"name": "airflow-logs", "persistentVolumeClaim": {"claimName": "airflow-logs-pvc"}}]
            }
        }
    )
    
  • 检查WAS日志留存策略
    确认WAS控制台是否保留了Pod的历史日志,如果WAS本身有日志归档机制,可配置Airflow直接对接WAS的日志存储,绕过Worker Pod直接拉取归档日志。


内容的提问来源于stack exchange,提问作者Bharat Goel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:05:20