客观的
我想在 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
, withvalues_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
如何airflow.cfg
在 Kubernetes 部署中进行配置?在 Airflow 的非容器化部署中,可以在~/airflow/airflow.cfg
.
- 第 69 行
airflow.cfg
参考: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 修订版:876
microk8s.kubectl version
: v1.15.4microk8s.helm version
: v2.14.3
问题
如何正确地将正确的值传递给 Airflow Helm 图表,以便能够在 Kubernetes 上部署 Airflow,Pod 可以访问相同的 DAG 并在共享持久卷上登录?