gpt4 book ai didi

docker - 在不同的 Docker 容器中运行 Celery 工作人员的 Airflow 设置?

转载 作者:行者123 更新时间:2023-12-01 13:32:08 27 4
gpt4 key购买 nike

我在 docker 容器中运行 Airflow。我已经创建了一个单独的容器来运行 Postgres 服务器和 Rabbitmq 服务器,使用 docker 网络连接这些容器 - 通过遵循这个很好的 article .现在我的 Airflow docker 容器正在运行并使用 docker 网络连接到其他容器——到目前为止这个过程很顺利。问题是如何在同一容器中运行 airflow webserverairflow schedulerairflow worker。经过一些研究我发现:建议在一个容器中运行一个服务。现在我有两个解决方案

  1. 在同一个 Airflow 容器中运行多个服务 - 我想不出一个简单的方法来实现成为 Docker 中的一只新蜜蜂。
  2. 创建单独的容器来运行 Celery worker 和 Airflow 调度程序 - 但在 airflow.cfg 文件中与 Celery 相关的设置是:broker_url = 'amqp://guest:guest@ksaprice_rabbitmq:8080//'celery_result_backend = db+postgresql://developer:user889@ksaprice_postgres:5432/airflow。这些设置指的是已经运行不同容器的数据库或 rabbitmq - 它们不指运行 celery 和调度程序的 ip/url,我假设是这样,因为 celery 和调度程序在 airflow 服务器上运行。

我的问题是:

  1. 引用第 1 点:是否有一种简单的方法可以在同一 Airflow 容器中运行 airflow webserverairflow schedulerairflow worker 命令?
  2. 关于第 2 点:airflow.cfg 中是否有一种方法可以配置 airflow scheduler 和 airflow worker 在单独的 docker 容器中运行 - 并使用 docker 网络链接它们?

我是 Airflow 和 Docker 的新手。

最佳答案

在花了很多时间后我找到了以下答案:

  1. 第一个问题: 要在同一个 airflow_container 上运行多个服务,请执行:docker exec -it airflow_container bash,现在 CLI 将附加到 airflow_container,然后运行 ​​airflow worker。对 airflow schedulerairflow flower 重复相同的过程。现在,您将拥有三个不同的 CLI,在同一个 airflow_container 上运行三个服务 - 这是我发现的最简单的方法。
  2. 对于第二个问题:这里有选项:airflow cliairflow webserver --hostname=some_host --port=some_portairflow flower --hostname=some_host --port=some_port 在不同的服务器上运行它们。但是对于 airflow worker 没有在不同服务器上运行的选项 - 可能有一些其他方法可以在不同服务器上运行 worker。

关于docker - 在不同的 Docker 容器中运行 Celery 工作人员的 Airflow 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45454237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com