我目前正在尝试设置气流在库伯奈特环境中工作。为了使气流有用,我需要能够使用Git-同步功能,以便DAG可以从Pod中分开存储,因此在Pod降级或重新启动时不会被重置。我正试图用ssh来设置它。
我一直在寻找关于气流配置的良好文档,或者关于如何正确设置这个配置的教程,但是这是徒劳的。我非常感谢在这里提供一些帮助,因为我在这方面已经挣扎了一段时间。
以下是我如何设置相关配置,请注意,出于安全原因,我有一些链接和一些信息:
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下面是我如何设置我的原产地/配置回购:
-root
|-configmaps/airflow
|-airflow.cfg
|-airflow-configmap.yaml
|-environment
|-<environment specific stuff>
|-secrets
|-airflow-secrets.yaml
|-ssh
|-id_rsa
|-id_rsa.pub
|-README.md气流图和秘密看起来是这样的:
apiVersion: v1
kind: Secret
metadata:
name: airflow-secrets
data:
# key needs to be gitSshKey
gitSshKey: <base64 encoded private sshKey>和
apiVersion: v1
kind: ConfigMap
metadata:
name: airflow-configmap
data:
known_hosts: |
https://<git-host>/ ssh-rsa <base64 encoded public sshKey>我试图同步的回购文件将公钥设置为访问密钥,它只是一个名为dags的文件夹,其中包含1个dag。
我的问题是,我现在不知道我的问题是什么。我无法知道我的配置的哪一部分已经被正确设置,以及它的哪一部分被错误地设置,而关于这个主题的文档是非常平淡无奇的。
如果有更多的信息是必要的,我将乐意提供它。
谢谢您抽时间见我
发布于 2021-08-12 05:19:32
你在做这件事时看到了什么错误?
有几件事你需要考虑:
1. Repository Name > Settings > Deploy Keys > Value of ssh\_key.pub2. Ensure "write access" is checkedDockerfile看起来如下:
来自apache/airflow:2.1.2复制requirements.txt。运行python -m pip安装-升级pip运行pip安装-r requirements.txthelm repo add apache-airflow https://airflow.apache.org)的helm repo add apache-airflow https://airflow.apache.org需要在gitSync下更新以下值- `enabled: true`- `repo: ssh://git@github.com/username/repository-name.git`- `branch: master`- `subPaths: ""` (if DAGs are in repository root)- `sshKeySecret: airflow-ssh-git-secret`- `credentialsSecret: git-credentials`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气流helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml --debugkubectl get pods -n airflowairflow-scheduler-SOME-STRING吊舱将有3个容器运行。如果没有看到处于运行状态的荚,则查看容器git-sync-init的日志https://stackoverflow.com/questions/62167682
复制相似问题