【发布时间】:2020-02-06 13:02:23
【问题描述】:
目标
我想在 Kubernetes 上部署 Airflow,其中 pod 可以在共享持久卷中访问相同的 DAG。
根据文档 (https://github.com/helm/charts/tree/master/stable/airflow#using-one-volume-for-both-logs-and-dags),看来我必须设置这些值并将其传递给 Helm:extraVolume、extraVolumeMount、persistence.enabled、logsPersistence.enabled、dags.path、logs.path。
问题
我在安装官方 Helm 图表时传递的任何自定义值都会导致类似以下错误:
Error: YAML parse error on airflow/templates/deployments-web.yaml: error converting YAML to JSON: yaml: line 69: could not find expected ':'
- 工作正常:
microk8s.helm install --namespace "airflow" --name "airflow" stable/airflow - 不工作:
microk8s.helm install --namespace "airflow" --name "airflow" stable/airflow \
--set airflow.extraVolumes=/home/*user*/github/airflowDAGs \
--set airflow.extraVolumeMounts=/home/*user*/github/airflowDAGs \
--set dags.path=/home/*user*/github/airflowDAGs/dags \
--set logs.path=/home/*user*/github/airflowDAGs/logs \
--set persistence.enabled=false \
--set logsPersistence.enabled=false
-
也不工作:
microk8s.helm install --namespace "airflow" --name "airflow" stable/airflow --values=values_pv.yaml,values_pv.yaml:https://pastebin.com/PryCgKnC- 编辑:请将
/home/*user*/github/airflowDAGs更改为您机器上的路径以复制错误。
- 编辑:请将
疑虑
- 可能因为默认
values.yaml中的这些行而出错:
## Configure DAGs deployment and update
dags:
##
## mount path for persistent volume.
## Note that this location is referred to in airflow.cfg, so if you change it, you must update airflow.cfg accordingly.
path: /home/*user*/github/airflowDAGs/dags
如何在 Kubernetes 部署中配置 airflow.cfg?在 Airflow 的非容器化部署中,可以在 ~/airflow/airflow.cfg 中找到此文件。
-
airflow.cfg中的第 69 行指的是:https://github.com/helm/charts/blob/master/stable/airflow/templates/deployments-web.yaml#L69
其中包含git。 .yaml是不是配置错误,误用git pull,但是由于没有指定git路径,所以失败了?
系统
- 操作系统:Ubuntu 18.04(单机)
- MicroK8s:v1.15.4 Rev:876
-
microk8s.kubectl version: v1.15.4 -
microk8s.helm version: v2.14.3
问题
如何正确地将正确的值传递给 Airflow Helm 图表,以便能够在 Kubernetes 上部署 Airflow,Pod 可以访问相同的 DAG 并在共享持久卷上登录?
【问题讨论】:
-
Meaby 而不是尝试在 values.yaml 中更改 --set extraVolume 和 extraVolumeMount?你试过这样做吗? github.com/helm/charts/blob/master/stable/airflow/…
-
@jt97 是的,那是我的另一次尝试。这是问题中带有
values_pv.yaml的要点(pastebin.com/PryCgKnC)。我假设重命名values.yaml对功能没有影响。 -
@NumesSanguis 你能设置卷挂载吗?
-
@alltej 我没有时间做我的项目,而且它实际上不需要 Kubernetes,所以我选择了一个更简单的解决方案。此外,Helm 3.0 已经发布,这意味着答案可能会改变。希望以后有机会再试。
标签: kubernetes airflow kubernetes-helm microk8s