Python 在Apache Airflow+;库伯内特斯

Python 在Apache Airflow+;库伯内特斯,python,kubernetes,airflow,airflow-scheduler,Python,Kubernetes,Airflow,Airflow Scheduler,我在Kubernetes中有一个气流部署,配置了Kubernetes Executor。我设置了一个Git sync initContainer,从我自己的DAG存储库中获取DAG,我可以看到我的Worker和Scheduler容器运行良好,并使用最新提交更新了它们的DAG文件夹。因此,我编写了一个带有两个操作符的简单DAG,但我的worker pod在计划时显示以下错误: [2021-01-14 14:01:13808]{dagbag.py:440}信息-从/var/lib/aiffair/d

我在Kubernetes中有一个气流部署,配置了Kubernetes Executor。我设置了一个Git sync initContainer,从我自己的DAG存储库中获取DAG,我可以看到我的Worker和Scheduler容器运行良好,并使用最新提交更新了它们的DAG文件夹。因此,我编写了一个带有两个操作符的简单DAG,但我的worker pod在计划时显示以下错误:

[2021-01-14 14:01:13808]{dagbag.py:440}信息-从/var/lib/aiffair/dags/first_pod.py填充dagbag
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/afflow”,第8行,在
sys.exit(main())
文件“/usr/local/lib/python3.8/site packages/aiffort/_main__.py”,第40行,在main中
args.func(args)
命令中第48行的文件“/usr/local/lib/python3.8/site packages/afflow/cli/cli_parser.py”
返回函数(*args,**kwargs)
文件“/usr/local/lib/python3.8/site packages/afflow/utils/cli.py”,第89行,在包装器中
返回f(*args,**kwargs)
文件“/usr/local/lib/python3.8/site packages/afflow/cli/commands/task_command.py”,第216行,在task_run中
dag=获取dag(args.subdir,args.dag\u id)
文件“/usr/local/lib/python3.8/site packages/afflow/utils/cli.py”,第187行,在get_dag中
提高空气流量异常(
airflow.exceptions.AirflowException:找不到dag_id:测试。dag不存在或无法分析。

我知道我的工作区没有任何DAG。我希望避免在每次生成一个pod时启动Git同步任务,因此我想知道是否有一些最佳的工作区同步实践,因为我找不到。提前谢谢。

也许可以将DAG放在配置映射中,并以这种方式装载它?我不确定这是否合适ales,我希望避免使用过时的解决方案。我的愿望是在我的存储库中推送新的DAG,并让我的气流部署以固定速率自动拉取更改,以便我的系统与我的git存储库保持同步。我如何维护更新的ConfigMap?DAG同步似乎是任何执行者最困难的方面。将有兴趣看看是否有人有一个聪明的想法。我最近没有玩太多的气流,但有一段时间我使用k8s气流和复制DAG文件直接到气流图像。但我同意“烘焙”解决方案似乎并不理想。@berrur ConfigMap用于存储包括配置文件在内的配置。DAG是一种配置类型,它决定您如何运行任务。因此,这是最佳匹配。kubelets负责将更新的ConfigMap同步到所有节点上装载的文件。更新时间大约为每1分钟一次。它尽可能具有可扩展性。将其与涉及侧车集装箱和git sync的复杂解决方案进行比较。