EC2上Airflow Docker异常:Webserver无法访问且组件状态不健康
AWS EC2上Airflow Docker容器组件无法进入健康状态,Webserver无法访问
环境与背景
- 运行环境:AWS EC2 t3.large实例
- Airflow版本:2.6.1(基于官方docker-compose.yaml搭建)
- 用途:实现PostgreSQL到Redshift的数据同步
- 本地PC上相同配置的容器运行正常,但EC2上无法正常工作(EC2实例本身可正常访问)
配置修改说明
从官方获取基础配置文件:
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.1/docker-compose.yaml'
对其做了以下修改:
- 在
x-airflow-common中引入.env文件 - 添加
build字段,使用自定义Dockerfile安装Python依赖 - 禁用示例DAG
- 调整volumes配置(因公司要求将docker-compose文件放在项目根目录),具体配置:
volumes: - ${AIRFLOW_PROJ_DIR:-.}/packages/etl_processor/dags:/opt/airflow/dags - ${AIRFLOW_PROJ_DIR:-.}/packages/etl_processor/logs:/opt/airflow/logs - ${AIRFLOW_PROJ_DIR:-.}/packages/etl_processor/plugins:/opt/airflow/plugins
部署步骤
- 通过Git将Dockerfile、DAG及依赖源码、docker-compose.yml等文件同步到EC2
- EC2已安装Docker 20.10.17版本
- 执行启动命令:
docker-compose -f docker-compose.etl.yml up airflow-init docker-compose -f docker-compose.etl.yml up -d
问题现象
- Airflow Webserver无法访问
- 与本地环境不同,EC2上的
airflow-worker、airflow-scheduler、airflow-webserver、airflow-triggerer四个组件始终无法转为健康状态,导致Airflow完全无法使用
补充信息
- 已获取上述四个组件的日志
- DAG配置如下:
@dag( default_args=default_args, dag_id="my_process_v01.00", is_paused_upon_creation=False, catchup=False, description="move data from A to B", start_date=datetime(2023, 5, 10), schedule_interval="0 */12 * * *", )
恳请各位帮忙排查问题,感谢分享知识。
内容的提问来源于stack exchange,提问作者Help
相关产品推荐
相关产品推荐

