人们发现什么是向气流网络服务器/调度程序+工作人员分发代码(dags)的最佳方式?我试图在一大群工人上运行芹菜,这样任何手动更新都是不切实际的。
我正在docker上部署airflow并立即使用s3fs,它不断地在我身上崩溃并创建了奇怪的核心。### files。我正在探索其他解决方案(即StorageMadeEasy,DropBox,EFS,从git更新的cron作业......)但在我探索解决方案时会喜欢一些反馈。
此外,人们通常如何更新dag并分发该代码?如果使用像s3fs这样的共享卷,每次更新dag都会重新启动调度程序吗?是否在像DropBox这样的问题上编辑代码?关于如何更新dag和分发代码的任何最佳实践将非常感激。
答案 0 :(得分:3)
我无法告诉你“最好”的做法是什么,但我可以告诉你,当我需要将工作量分配到另一台机器上时我做了什么。
我只是在气流主服务器上为DAGS和PLUGINS文件夹设置了一个NFS共享,并将此共享安装到工作服务器上。我有一个或两个问题,因为某些原因NFS挂载点会中断但是在重新安装后继续工作。
要将DAG和PLUGIN代码分发到Airflow集群,我只需将其部署到主服务器(我通过本地计算机上的bash脚本执行此操作,该计算机只保存来自我本地git分支的文件夹)并且NFS处理复制到工人。我总是在部署后重新启动所有内容,我也不会在作业运行时进行部署。
更好的部署方法是在气流主服务器上安装GIT,从GIT存储库(测试或主服务器,取决于气流服务器?)检出分支,然后将dags和插件替换为git存储库。我正在尝试使用Ansible进行这样的部署。