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

使用values.yaml升级Airflow Helm Chart时遇PostgreSQL密钥及Pod异常

解决Helm升级Airflow时PostgreSQL密钥及Pod异常问题

问题根源

初始安装Airflow时,依赖的PostgreSQL子chart生成的secret使用postgres-password键,但直接通过helm show values导出的values.yaml(对应最新chart版本)中,PostgreSQL配置期望secret包含password键,导致Helm升级校验失败。手动修改secret破坏了Helm的资源管理状态,引发PostgreSQL Pod进入CrashLoopBackoff。

修复步骤

1. 回滚到正常部署状态

先恢复被手动修改的secret,让Helm重新接管管理:

# 删除手动修改的secret
kubectl delete secret airflow-postgresql -n airflow

# 回滚到初始安装的release版本(1为初始版本号,可通过helm history airflow -n airflow确认具体版本)
helm rollback airflow 1 -n airflow --debug

2. 正确导出适配当前部署的values文件

不要直接导出最新chart的values,而是导出当前已部署release的配置,确保兼容性:

# 导出当前运行的Airflow release的values
helm get values airflow -n airflow -o yaml > current-values.yaml

基于current-values.yaml进行配置修改(比如调整资源配额、开启特定功能等),该文件与现有部署的配置完全匹配,包括PostgreSQL的secret键设置。

3. 执行正确的Helm升级

使用修改后的current-values.yaml执行升级:

helm upgrade airflow apache-airflow/airflow -n airflow -f current-values.yaml --debug

4. 若PostgreSQL Pod仍异常的额外修复

如果回滚后PostgreSQL Pod还是无法正常运行,清理旧数据卷并重启StatefulSet:

# 删除PostgreSQL的持久化数据卷
kubectl delete pvc data-airflow-postgresql-0 -n airflow

# 重启PostgreSQL StatefulSet
kubectl rollout restart statefulset airflow-postgresql -n airflow

关键注意事项

  • 禁止手动修改Helm管理的资源:secret、configmap等由Helm创建的资源,不要直接手动修改,否则会导致Helm的状态与实际资源不一致,引发未知异常。
  • 匹配chart版本:如果一定要使用helm show values,需要指定与当前部署一致的chart版本,示例:
    # 先查看当前chart版本
    helm list -n airflow
    # 导出对应版本的values
    helm show values apache-airflow/airflow --version <你的chart版本号> > values.yaml
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:14:59