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

使用相同Chart版本但不同Docker镜像标签的Helm升级问题

解决Helm升级后Pod镜像未更新的问题

嘿,我之前也碰到过一模一样的情况,马上给你捋清楚问题出在哪以及怎么解决!

问题根源

你执行helm upgrade myrelease repo/foo --version 1.0.0的时候,Helm会从你指定的repo仓库拉取官方的foo-1.0.0 Chart,而不是你本地修改过镜像配置的那个Chart版本!虽然你在本地改了Chart里的镜像标签,但没把修改后的Chart推送到仓库,所以仓库里的foo-1.0.0还是原来的配置(镜像bar:4.5.1),自然升级后Pod不会更新。

几种可行的解决方案

根据你的需求(不想升级Chart版本),可以选下面任意一种方法:

1. 直接用本地修改后的Chart升级

如果你的修改只是本地临时用,不需要推送到仓库,直接指定本地Chart的路径执行升级就行:

helm upgrade myrelease ./path/to/your/local/foo-chart

这样Helm会直接使用你本地改好的配置,镜像会更新为bar:4.5.2。

2. 用--set参数临时覆盖镜像版本

如果你还是想从仓库拉取foo-1.0.0,但临时替换镜像标签,不需要修改Chart文件,直接在upgrade命令里加--set参数:

helm upgrade myrelease repo/foo --version 1.0.0 --set image.tag=4.5.2

⚠️ 注意:这里的image.tag要和你Chart的values.yaml里的镜像配置路径对应,如果你的Chart里镜像配置是bar.image.tag,那就要改成--set bar.image.tag=4.5.2。

3. 补充:规范的长期解决方案(可选)

如果之后需要多次使用这个修改后的配置,更规范的做法是:

  • 把Chart的Chart.yaml里的版本号改成1.0.1(或者其他新的版本号)
  • 重新打包Chart:helm package ./foo-chart
  • 把打包好的foo-1.0.1.tgz推送到你的仓库
  • 然后执行升级:helm upgrade myrelease repo/foo --version 1.0.1
    虽然你说不想升级Chart版本,但同一个版本号覆盖仓库里的Chart通常是不推荐的(大部分仓库不允许),所以这个方法适合长期维护的场景。

验证升级是否成功

执行完升级命令后,可以用以下命令确认镜像是否更新:

# 查看Release的当前配置
helm get values myrelease
# 查看Pod使用的镜像
kubectl describe pod <your-pod-name> | grep Image

内容的提问来源于stack exchange,提问作者Fred Mériot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:26:14