在Azure上部署Airflow 2.0+的标准流程及Docker Compose复用疑问
本地docker-compose能否直接在Azure复用
答案是不能直接复用,本地官方提供的docker-compose是面向单机开发调试场景设计的,存在多个不满足生产/云端部署要求的配置:
- 默认使用轻量SQLite作为元数据库,不支持多连接、无容灾备份能力
- 默认启用SequentialExecutor,同一时间只能跑一个任务,无并发能力
- 所有DAG、日志、配置均挂载在本地磁盘,上云后没有持久化、多节点共享能力
- 无身份校验、访问控制、高可用相关配置,直接上云存在安全风险
不过你本地配置的自定义镜像、依赖包声明、环境变量参数这些可以抽出来复用,不用全部重写。
Azure上部署Airflow的标准流程
分为两种主流方案,可根据你的业务需求选择:
方案1:托管式部署(推荐大部分场景使用)
直接用Azure Data Factory内置的托管Airflow服务,不需要自己维护基础设施,流程如下:
- 登录Azure门户创建Data Factory资源,选择对应的区域、资源组
- 在Data Factory控制台侧边栏找到「集成运行时」,选择新建Airflow类型的运行时
- 按需选择Airflow版本、节点规格、节点数量,配置元数据库(推荐直接绑定Azure PostgreSQL灵活服务器,无需自己维护数据库)
- 上传本地开发好的DAG文件,配置Python依赖包、环境变量
- 配置访问权限,限制可访问Airflow Web UI的账号范围
- 测试DAG运行、日志查看功能是否正常,即可上线使用
方案2:自主部署(适合需要高度自定义的场景)
如果需要自定义组件、特殊配置,可以选择在AKS(Azure Kubernetes服务)或者Azure虚拟机上部署:
AKS部署流程(生产级首选)
- 提前创建AKS集群,按需配置节点池的规格、数量,开启自动扩缩容
- 使用Airflow官方Helm Chart进行部署,你本地docker-compose中的自定义镜像、环境变量、依赖配置可以适配到Helm的values.yaml文件中复用
- 存储配置:用Azure Blob Storage存储运行日志,用Azure Files挂载存储DAG文件,替代本地磁盘挂载
- 元数据库对接Azure PostgreSQL托管实例,开启自动备份、容灾
- 配置Ingress网关、Azure AD身份校验,限制Web UI的访问来源
- 配置Worker自动扩缩容规则,根据任务量动态调整资源
虚拟机部署流程(仅测试场景使用)
如果只是小流量测试,可以修改本地的docker-compose后在Azure虚拟机上运行,需要修改的核心点:
- 替换元数据库为Azure PostgreSQL/MySQL托管服务,删除本地SQLite的配置
- 将Executor改为CeleryExecutor,开启并发能力
- 去掉本地目录挂载,改为对接Azure存储服务存储DAG、日志
- 调整Web UI账号密码,不要使用默认的admin/admin,配置虚拟机安全组限制8080端口的访问IP范围
- 配置服务开机自启、资源限制,避免异常退出

内容的提问来源于stack exchange,提问作者techrhl
相关产品推荐
相关产品推荐

