2017-12-02 243 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上單獨運行任務的時間,因此有些正在運行,有些已完成。但我其實並沒有手動運行它們,所以謝謝你的建議! –