Airflow 部署要点

生产部署三个基础件:元数据库(PostgreSQL)、带队列的执行器、被所有组件共享的 DAG 目录;容器化常用官方 Helm Chart,升级先在预发跑数据库迁移与 DAG 全量解析校验。

Airflow 部署要点

Airflow 不是单进程应用,而是一组组件共用同一个元数据库和同一份 DAG 目录:scheduler 解析并触发任务、webserver 提供界面与 API、worker 执行任务、triggerer 承接 deferrable(延迟型)任务。生产部署先要定下三件基础件:可靠的元数据库、带队列的执行器、所有组件都能看到同一份 DAG 文件;容器化场景通常直接用官方 Helm Chart。

基本信息

元数据库PostgreSQL(官方推荐;SQLite 仅适合试用)
执行器LocalExecutor 单机多进程 / CeleryExecutor 多机队列 / KubernetesExecutor 每任务一 Pod
DAG 分发共享存储挂载,或容器化用 git-sync 边车同步
组件版本scheduler、webserver、worker、triggerer 必须保持同一版本
容器化官方 Helm Chart(apache-airflow/airflow),组件可独立扩缩
升级顺序先备份元数据库,再执行数据库迁移,最后滚动组件

典型使用场景

  • 从单机试用到生产:把 SQLite 换成 PostgreSQL,执行器从 Sequential 换成队列型
  • 容量扩展:任务排队严重时先加 worker,再按池(pool)与队列拆分关键链路
  • DAG 集中管理:用 git-sync 或共享存储保证所有 worker 看到同一份代码
  • 版本升级:先在预发跑数据库迁移与全量 DAG 解析校验,再升生产
  • 环境隔离:用连接(Connection)与变量(Variable)区分环境,不把口令写进代码

Helm 安装骨架

Helm 安装骨架
# 添加官方仓库并安装:执行器、DAG 持久化、元数据库按需定制
helm repo add apache-airflow https://airflow.apache.org
helm repo update
helm upgrade --install airflow apache-airflow/airflow \
  -n airflow --create-namespace \
  --set executor=CeleryExecutor \
  --set dags.persistence.enabled=true \
  --set webserver.defaultUser.enabled=true   # 首次部署后建议关闭并接单点登录

升级前校验清单

升级前校验清单
# 1) 元数据库迁移:2.7 起用 airflow db migrate(旧命令为 db upgrade)
airflow db migrate
# 2) 全量解析 DAG,语法错误与导入错误会直接暴露
airflow dags list
airflow dags list-import-errors
# 3) 检查调度器进程存活与最近心跳
airflow jobs check --job-type SchedulerJob --limit 1

执行器选型对照

执行器适用规模主要约束
LocalExecutor单机多进程,中小规模无法跨机器扩 worker,单点风险高
CeleryExecutor多机队列,需消息中间件与结果后端队列与 worker 需按池划分,避免关键任务被挤占
KubernetesExecutor每任务一 Pod,隔离性好启动有延迟,依赖镜像分发与集群配额
SequentialExecutor仅调试用串行执行,生产不可用
DAG 解析是最容易出问题的环节:把全量解析检查放进发布流程(或让 git-sync 同步后先跑一次解析),能在切换流量前拦住导入错误导致的 DAG 消失。
元数据库迁移通常不可平滑回退,升级前先做备份;调度器、worker、webserver 版本不一致时会出现任务状态错乱,滚动升级必须按官方升级指南逐步执行。

易错点

  • 用 SQLite 当生产元数据库,并发下出现锁等待甚至元数据损坏
  • 用 rsync 半同步覆盖 DAG 目录,文件被读到一半导致解析失败,DAG 从界面消失
  • 只升级部分组件(例如只升 worker),组件版本不一致后任务状态错乱且难定位
  • 调度器与 worker 的 Python 依赖环境不一致,本地跑通的任务上线即 ImportError
  • 不备份元数据库就直接执行数据库迁移,迁移失败后无法回退,只能重建环境

数据来源与参考

  • Apache Airflow 官方文档:Installation 与 Helm Chart
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌