2017-12-02 253 views
0

我试图测试Kubernetes上的气流。调度程序,工作者,队列和Web服务器都在不同的部署上,我使用Celery Executor来运行我的任务。调度程序不排队作业

除了调度程序无法排队工作以外,一切正常。当我从Web UI或CLI手动执行它时,Airflow能够正常运行我的任务,但我试图测试调度程序以使其工作。

我的配置几乎一样,因为它是在单个服务器上:

sql_alchemy_conn = postgresql+psycopg2://username:[email protected]/db 
broker_url = amqp://user:[email protected]$RABBITMQ_SERVICE_HOST:5672/vhost 
celery_result_backend = amqp://user:[email protected]$RABBITMQ_SERVICE_HOST:5672/vhost 

我相信,随着这些配置,我应该能够让它运行,但由于某些原因,只有工人能够看到DAG和他们的状态,但不看调度器,即使调度器能够记录他们的心跳就好。还有什么我应该调试或看看?

+0

气流有几个已知的臭虫芹菜,执行者有一些bug ... – Liqiang

+0

@李强你会推荐什么呢?我相信Celery是分布式任务执行的唯一方式 –

+0

是的,Celery是Python语言中唯一强大且稳定的分布式任务执行,对于我的观点,我建议不要使用airflow来运行,只需使用芹菜本身。 – Liqiang

回答

0

首先,您将postgres用作气流数据库,不是吗?你是否为postgres部署了一个pod和服务?如果是的话,你请验证您的配置文件,你必须:

sql_alchemy_conn = postgresql+psycopg2://username:[email protected]/db 

您可以使用此github。我在3周前用它进行了第一次测试,效果非常好。 入口点对验证rabbitMq和Postgres是否配置良好很有用。

+0

是的,我一直在使用该图像(实际上是叉[版本](https://github.com/Stibbons/kube-airflow/tree/helm_chart),因为我试图写一个头盔图)。一切工作正常,从我可以看到心脏跳动到Postgres分贝,但没有任何东西仍在计划中 –

+0

您是否已验证您的dag是否未被暂停?他们在用户界面上的状态是什么?你有没有尝试在气流舱(kubectl exec ...)中手动运行一个DAG? (对不起,也许愚蠢的问题)。 – pcc

+0

我如何验证我的DAG是否未被暂停?我打开了它们,调度程序正在发送心跳。它们在用户界面上的状态反映了我不得不在UI上单独运行任务的时间,因此有些正在运行,有些已完成。但我其实并没有手动运行它们,所以谢谢你的建议! –