【问题标题】:How to setup Airflow > 2.0 high availability cluster on centos 7 or above如何在 centos 7 或更高版本上设置 Airflow > 2.0 高可用集群
【发布时间】:2022-08-16 04:27:26
【问题描述】:
我想在 centos7 上为气流(2.3.1)设置 HA。消息队列 - Rabbitmq 和元数据数据库 - postgres。任何人都知道如何设置它。
标签:
airflow
cluster-computing
high-availability
【解决方案1】:
你的问题很大,因为高可用有多个层次和定义:
- 气流可用性:多个调度程序,多个工作人员,自动缩放以避免压力,高存储量,...
- 数据库:
Rabbitmq 的 HA 集群和 postgres 的 HA 集群
- 即使你有前两个级别,你想使用多少个节点?你不能把所有东西都放在同一个节点上,你需要每个节点运行一个服务副本
- 假设你这样做了,现在你有 3 个不同的节点在同一个数据中心运行,如果数据中心发生火灾怎么办?所以需要在不同区域使用多个节点
- 完成以上所有操作后,是否存在网络问题的风险?当然有
如果您只想在 HA 模式下运行气流,您可以在任何操作系统上执行此操作:
- docker compose:通常我们用它来开发,但你也可以用它来生产,你可以创建多个调度器实例,有多个worker,它可以帮助你提高服务的可用性
- docker swarm:与 docker compose 类似,具有附加功能(缩放、多节点等),您不会找到太多资源来安装它,但您可以使用 compose 文件并进行一些更改
- kubernetes:最好的解决方案,K8S可以帮你保证服务的可用性,用helm轻松安装
- 或者只是在你的主机上运行不同的服务:不推荐,因为手动任务,并且应用 HA 很复杂