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

Airflow Helm部署后任务卡滞及后续操作咨询

解决Airflow CeleryExecutor在EKS部署后调度器超时&任务卡滞问题

先看你的Pod状态,bitnami-release-airflow-worker-0是0/1 Running——这个worker容器没就绪,这大概率是导致任务卡滞、调度器心跳异常的核心原因,结合调度器日志里的Process timed out错误,咱们一步步排查:

1. 优先排查Worker Pod未就绪的问题

Worker是Celery模式下执行任务的核心,它连不上消息队列(Redis)或者数据库的话就没法正常启动:

  • 查看Worker日志:
    kubectl logs bitnami-release-airflow-worker-0
    
    重点找Redis/PostgreSQL连接失败的报错,比如Could not connect to Redis或者数据库认证失败的信息。
  • 验证Redis服务可用性:
    先确认Redis节点正常运行:
    kubectl exec bitnami-release-redis-master-0 -- redis-cli ping
    
    正常应该返回PONG。如果失败,检查你设置的$REDIS_PASSWORD是否正确,再进入Worker Pod验证环境变量:
    kubectl exec bitnami-release-airflow-worker-0 -- env | grep REDIS
    
    确保REDIS_PASSWORD和你安装时设置的一致。

2. 处理调度器的超时问题

调度器日志里的Process timed out通常和资源不足或数据库连接异常有关:

  • 检查PostgreSQL连接:
    进入调度器Pod测试数据库连接:
    kubectl exec bitnami-release-airflow-scheduler-774d647447-j6vpd -- psql -h bitnami-release-postgresql -U airflow -d airflow
    
    输入你设置的$POSTGRESQL_PASSWORD,如果能成功进入psql交互环境,说明数据库连接正常;如果失败,检查密码是否匹配或者PostgreSQL服务是否正常。
  • 调整Pod资源配置:
    默认Helm Chart给的资源请求可能偏低,导致进程超时。查看当前调度器Pod的资源限制:
    kubectl describe pod bitnami-release-airflow-scheduler-774d647447-j6vpd | grep Resources
    
    如果资源不足,重新部署时增加资源配置,比如:
    helm upgrade airflow bitnami/airflow \
    --set scheduler.resources.requests.cpu=1000m \
    --set scheduler.resources.requests.memory=2Gi \
    --set worker.resources.requests.cpu=1000m \
    --set worker.resources.requests.memory=2Gi \
    # 保留你之前的其他配置项
    --set auth.username=$AIRFLOW_USER \
    --set auth.password=$AIRFLOW_PASSWORD \
    --set auth.fernetKey=$AIRFLOW_FERNETKEY \
    --set postgresql.postgresqlPassword=$POSTGRESQL_PASSWORD \
    --set redis.password=$REDIS_PASSWORD
    

3. 纠正Helm部署后的错误操作

Bitnami的Airflow Helm Chart已经帮你做了所有初始化工作,不需要手动执行以下操作:

  • 不需要在WebServer Pod里执行airflow initdb:新版本Airflow用airflow db init替代了airflow initdb,而且Chart部署时已经自动完成了数据库初始化、用户创建等步骤,手动执行反而可能导致冲突。
  • 不需要手动启动调度器:Chart会通过Deployment自动管理调度器的生命周期,手动启动会和容器内的主进程冲突,导致异常。

4. 验证CeleryExecutor的核心配置

确保Celery模式的关键配置正确:

  • 确认Executor类型:Bitnami Chart默认是CeleryExecutor,如果不确定,进入WebServer Pod查看:
    kubectl exec bitnami-release-airflow-web-5897c99754-hq6nr -- airflow config get-value core executor
    
    如果不是CeleryExecutor,重新部署时加上--set airflow.executor=CeleryExecutor。
  • 验证Fernet Key一致性:所有Airflow组件(web、scheduler、worker)必须使用同一个Fernet Key加密连接信息,进入各个Pod检查:
    kubectl exec <pod-name> -- env | grep FERNET_KEY
    
    确保和你安装时设置的$AIRFLOW_FERNETKEY一致。

5. 测试任务执行

当Worker Pod变成1/1 Running后,做简单验证:

  • 进入Worker Pod检查Celery worker状态:
    kubectl exec bitnami-release-airflow-worker-0 -- airflow celery inspect ping
    
    正常会返回worker在线的信息。
  • 在Airflow UI重新触发example_bash_operator,观察任务是否能从running状态变为success。

内容的提问来源于stack exchange,提问作者alt-f4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:06:02