You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在K8s集群通过Helm安装Airflow时数据库迁移Pod失败

数据库迁移Pod失败排查方案

1. 定位具体错误原因

先通过日志获取失败的详细信息,这是排查的核心:

# 列出命名空间内的迁移相关Pod
kubectl get pods -n mynamespace | grep migrate
# 查看目标Pod的完整日志
kubectl logs <迁移Pod名称> -n mynamespace

日志通常会明确指出问题,比如数据库连接超时、认证失败、迁移脚本版本不兼容等。

2. 校验数据库连接配置

  • 确认KubernetesExecutor配置文件中,数据库(PostgreSQL/MySQL)的连接参数正确:
    • 主机地址、端口是否指向集群内正常运行的数据库服务
    • 存储用户名、密码的Secret是否存在于mynamespace中
  • 测试Pod与数据库的连通性:
    # 以PostgreSQL为例
    kubectl run -it --rm --image=postgres:15-alpine test-db-conn -n mynamespace -- psql -h <数据库服务名> -U <用户名> -d <数据库名>
    

3. 处理Helm Hook设置冲突

你配置了migrateDatabaseJob.useHelmHooks: false,这会让Helm安装流程跳过自动触发迁移Job:

  • 若需保留该配置,手动触发迁移任务:
    kubectl create job --from=cronjob/my-airflow-migrate-database my-airflow-migrate-manual -n mynamespace
    
  • 若无需关闭Hook,将migrateDatabaseJob.useHelmHooks改为true,重新执行Helm升级:
    helm upgrade my-airflow airflow-8.6.1/airflow/ --values values.yaml --values k8sExecutor.yaml -n mynamespace
    

4. 验证版本兼容性

你下载的是Apache Airflow Helm Chart 1.8.0,但安装目录为airflow-8.6.1/airflow/,存在版本不匹配风险:

  • 确认Chart版本与Airflow镜像版本对应(Chart 1.8.0通常适配Airflow 2.8.x系列)
  • 检查values.yaml中airflow.image.tag是否为适配版本,避免因版本差异导致迁移脚本执行失败

5. 排查环境变量与依赖问题

  • 检查迁移Pod的数据库相关环境变量是否正确:
    kubectl exec <迁移Pod名称> -n mynamespace -- env | grep AIRFLOW__DATABASE
    
  • 确认Ingress配置中的wildcard-tls-cert Secret存在于mynamespace中,避免因资源创建失败间接影响迁移Job:
    kubectl get secret wildcard-tls-cert -n mynamespace
    

内容的提问来源于stack exchange,提问作者veeresh patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:01:14