首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发布Git-Sync与Pod中气流的设置

发布Git-Sync与Pod中气流的设置
EN

Stack Overflow用户
提问于 2020-06-03 07:43:58
回答 1查看 3.1K关注 0票数 2

我目前正在尝试设置气流在库伯奈特环境中工作。为了使气流有用,我需要能够使用Git-同步功能,以便DAG可以从Pod中分开存储,因此在Pod降级或重新启动时不会被重置。我正试图用ssh来设置它。

我一直在寻找关于气流配置的良好文档,或者关于如何正确设置这个配置的教程,但是这是徒劳的。我非常感谢在这里提供一些帮助,因为我在这方面已经挣扎了一段时间。

以下是我如何设置相关配置,请注意,出于安全原因,我有一些链接和一些信息:

代码语言:javascript
复制
git_repo = https://<git-host>/scm/<project-name>/airflow
git_branch = develop
git_subpath = dags
git_sync_root = /usr/local/airflow
git_sync_dest = dags
git_sync_depth = 1
git_sync_ssh = true
git_dags_folder_mount_point = /usr/local/airflow/dags
git_ssh_key_secret_name = airflow-secrets
git_ssh_known_hosts_configmap_name = airflow-configmap
dags_folder = /usr/local/airflow/
executor = KubernetesExecutor
dags_in_image = False

下面是我如何设置我的原产地/配置回购:

代码语言:javascript
复制
-root
 |-configmaps/airflow
   |-airflow.cfg
   |-airflow-configmap.yaml
 |-environment
   |-<environment specific stuff>
 |-secrets
   |-airflow-secrets.yaml
 |-ssh
   |-id_rsa
   |-id_rsa.pub
 |-README.md

气流图和秘密看起来是这样的:

代码语言:javascript
复制
apiVersion: v1
kind: Secret
metadata:
  name: airflow-secrets
data:
  # key needs to be gitSshKey
  gitSshKey: <base64 encoded private sshKey>

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: airflow-configmap
data:
  known_hosts: |
      https://<git-host>/ ssh-rsa <base64 encoded public sshKey>

我试图同步的回购文件将公钥设置为访问密钥,它只是一个名为dags的文件夹,其中包含1个dag。

我的问题是,我现在不知道我的问题是什么。我无法知道我的配置的哪一部分已经被正确设置,以及它的哪一部分被错误地设置,而关于这个主题的文档是非常平淡无奇的。

如果有更多的信息是必要的,我将乐意提供它。

谢谢您抽时间见我

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 05:19:32

你在做这件事时看到了什么错误?

有几件事你需要考虑:

  • 使用此链接在本地创建SSH密钥,并:
代码语言:javascript
复制
1. Repository Name > Settings > Deploy Keys > Value of ssh\_key.pub
代码语言:javascript
复制
2. Ensure "write access" is checked
  • 我使用的Dockerfile看起来如下: 来自apache/airflow:2.1.2复制requirements.txt。运行python -m pip安装-升级pip运行pip安装-r requirements.txt
  • 来自官方气流助力存储库(helm repo add apache-airflow https://airflow.apache.org)的helm repo add apache-airflow https://airflow.apache.org需要在gitSync下更新以下值
代码语言:javascript
复制
- `enabled: true`
代码语言:javascript
复制
- `repo: ssh://git@github.com/username/repository-name.git`
代码语言:javascript
复制
- `branch: master`
代码语言:javascript
复制
- `subPaths: ""` (if DAGs are in repository root)
代码语言:javascript
复制
- `sshKeySecret: airflow-ssh-git-secret`
代码语言:javascript
复制
- `credentialsSecret: git-credentials`
  • 将SSH密钥和known_hosts导出到Kubernetes秘密以访问私有存储库 kubectl创建秘密通用气流-ssh-git-秘\ --from-file=gitSshKey=/path/to/.ssh/id_ed25519 \ --from-file=known_hosts=/path/to/.ssh/known_hosts \ --from-file=id_ed25519.pub=/path/to/.ssh/id_ed25519.pub \ -n气流
  • 创建和应用清单: :apiVersion: v1种类:秘密元数据:命名空间:风流名称: airflow -ssh-git-v1数据: gitSshKey: gitSshKey apiVersion: v1种类:机密元数据:名称:git-凭据数据: GIT_SYNC_USERNAME: base64_encoded_git_username GIT_SYNC_PASSWORD: base64_encoded_git_password apiVersion: v1种类: ConfigMap元数据:名称空间:气流名称:已知-主机数据: known_hosts: known_host文件的第1行,known_host文件的第2行,known_host文件的第3行.
  • 更新气流释放 helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml --debug
  • 获取气流命名空间中的吊舱 kubectl get pods -n airflow
  • airflow-scheduler-SOME-STRING吊舱将有3个容器运行。如果没有看到处于运行状态的荚,则查看容器git-sync-init的日志
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62167682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档