为什么Helm升级后Kubernetes中的Secrets会被删除?
问题原因及解决办法
核心原因:Chart 不匹配导致资源被清理
你遇到的问题本质是两次 Helm 操作使用了完全不同的 Chart,触发了 Helm 的资源清理逻辑:
- 初始安装用的是 Dagster 官方根 Chart
dagster/dagster,这个 Chart 会完整创建 Dagster 运行所需的所有资源,包括 Secrets、Webserver、数据库依赖等。 - 升级时你切换到了
dagster-user-deployments子 Chart(本地路径./charts/dagster-user-deployments),这个 Chart 仅负责管理用户自定义的代码部署服务,根本不包含根 Chart 里的 Secrets、核心组件等资源定义。
Helm 的规则是:当用一个新 Chart 升级现有 Release 时,会自动删除原 Chart 定义但新 Chart 中不存在的所有资源——这就是你的 Secrets 被删除的直接原因。
正确的操作方式
1. 仅更新镜像标签(基于根 Chart)
如果只是要升级镜像版本,应该基于最初安装的根 Chart 执行升级,通过参数或自定义 values 文件覆盖镜像标签:
helm upgrade dagster dagster/dagster \ --namespace dagster \ -f your-custom-values.yaml \ --set dagsterUserDeployments.deployments[0].image.tag=你的新镜像标签
2. 单独管理用户部署(子 Chart 独立安装)
如果确实需要用 dagster-user-deployments 子 Chart 单独管理代码部署,不要用它升级根 Chart 的 Release,而是作为全新的 Release 安装:
helm install dagster-user-deploy dagster/dagster-user-deployments \ --namespace dagster \ -f charts/dagster-user-deployments/values.yaml
恢复被删除的 Secrets
如果已经执行了错误的升级,可以通过重新升级根 Chart 恢复 Secrets(使用 --reuse-values 保留现有自定义配置):
helm upgrade dagster dagster/dagster \ --namespace dagster \ --reuse-values
注意:如果之前手动修改过 Secrets 内容,需要重新补充这些自定义内容。
内容的提问来源于stack exchange,提问作者pomply
相关产品推荐
相关产品推荐

