Kubernetes上Airflow部署Git Sync DAG失败排查及解决
Git Sync DAG容器反复启动失败的排查与修复
环境信息
- Git Sync DAG:v3.4.0
- Kubernetes集群:v1.23.7+rke2r2
- Airflow:v2.4.1(Helm Chart v1.7.0)
问题现象
按Airflow官方文档配置override_values.yaml并执行helm upgrade后,命令执行成功,但git-sync-init容器反复启动失败;Rancher GUI无法查看容器日志,尝试给仓库URL添加ssh://前缀后问题仍存在。
根因定位
通过kubectl logs <pod-name> git-sync-init命令获取日志后发现:仓库结构变更后,.gitmodules配置未同步更新,其中存在子模块路径未配置对应仓库URL的条目。
修复步骤
修正仓库的.gitmodules配置
- 克隆目标仓库到本地,找到
.gitmodules文件中缺失URL的子模块条目 - 补充对应子模块的仓库URL,示例配置:
[submodule "dags/your-submodule"] path = dags/your-submodule url = git@your-git-server.com:org/submodule-repo.git - 提交修改并推送至远程仓库
- 克隆目标仓库到本地,找到
重新触发Git Sync同步
- 执行Helm升级命令重新加载配置:
helm upgrade airflow apache-airflow/airflow -f override_values.yaml -n <your-airflow-namespace> - 或直接重启Airflow相关Pod:
kubectl delete pods -n <your-airflow-namespace> -l app.kubernetes.io/component=scheduler kubectl delete pods -n <your-airflow-namespace> -l app.kubernetes.io/component=webserver
- 执行Helm升级命令重新加载配置:
验证修复结果
- 查看git-sync-init容器日志确认无报错:
kubectl logs <pod-name> git-sync-init -n <your-airflow-namespace> - 登录Airflow UI检查DAG是否正常加载
- 查看git-sync-init容器日志确认无报错:
内容的提问来源于stack exchange,提问作者Max Feinberg
相关产品推荐
相关产品推荐

