我已经使用 Airflow 很长时间了。在我们的工作流管理系统中,Airflow 一直是我最喜欢的调度程序。每当我讨论“构建调度程序”时,我的脑海中都会立即跳出“气流”这个词。
起初,我的 Airflow 使用 docker 容器和CeleryExecutor. 作为我们数据工程团队的调度程序,它运行良好。几个月后,我们的调度器需要服务更多的用户,处理更繁重的工作量。所以我必须寻找能够满足我们要求的东西:稳定性、可扩展性和多租户用户支持。因此,Kubernetes 上的 Airflow 是我们的最终解决方案。
为什么选择 Kubernetes 上的 Airflow?
我必须重复一遍!Airflow 是 Data Platform 的“必备”软件。Airflow 允许用户使用简单的 Python 对象 DAG(有向无环图)启动多步管道。不仅数据工程师,而且数据科学家和分析师都开始采用它来安排他们的转换管道或模型训练。
部署 Airflow 集群的方法有很多种,从简单的安装CeleryExecutor到Dockerize部署。但是,这些确实有一些限制。
默认情况下,Airflow 需要一直分配工作资源。这些资源很昂贵,我们根本不需要 24/7 运行管道。
Airflow 用户仅限于在执行时存在于 Airflow 工作器上的框架和客户端。但是,我们有多个用户使用