本文记录了笔者最近基于Helm在K8S上部署airflow2.5.1版本遇到的一系列问题及最终的一键部署脚本,欢迎关注算法小生免费阅读
由于之前在airflow的使用上是单worker节点,为了支持多worker节点以及简化部署流程,特此新增了airflow-plus[命名空间也为此,防止影响目前运行的任务,稳定后任务在切换]
笔者遇到了以下问题,将会为你一一解答
- airflow db init未执行报错问题
- redis连接问题
- 日志无法查看问题
- 多woker不启动问题
- helm upgrade问题
- 缓存问题
- 数据库不存在问题
- 动态安装依赖问题
其中有些问题,官网写的比较模糊,还是直接根据问题查看源码找到对应配置会快些
1. 新建secret.yaml文件
该文件主要存放git与repo访问秘钥
apiVersion: v1
kind: Secret
metadata:
name: git-credentials
type: Opaque
data:
GIT_SYNC_USERNAME: XXXXXXX
GIT_SYNC_PASSWORD: XXXXXXX
---
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: nexus-registry-secret
namespace: airflow-plus
data:
".dockerconfigjson": "XXXXXXX"
部署该文件到命名空间airflow-plus
kubectl apply -f secret.yaml --namespace airflow-plus
2. 新建values.yaml文件
该文件主要进行一些重写工作,可参照源码values.yaml
config:
core:
# git上dags所在的目录,配置对即可在webserver中看到dags
dags_folder: /opt/airflow/dags/repo/dags
# 根据ip方式通信,默认hostname域名方式,解决访问worker节点日志无法查看问题
hostname_callable: airflow.utils.net.get_host_ip_address
default_timezone: Asia/Shanghai
webserver:
# 重写args方法,执行airflow webserver前执行airflow db init解决初始化报错问题
args:
- "bash"
- "-c"
-