如何升级已部署的Rancher 2.0工作负载?
升级Rancher 2.0中运行的工作负载的正确方法
嘿,刚好我在Rancher 2.0里折腾过类似的工作负载升级,给你分享几个亲测有效的方法,操作起来都挺简单的:
方法一:通过Rancher UI操作(最直观,适合手动操作)
这是最常用的方式,不用敲命令,点点鼠标就搞定:
- 登录Rancher控制台,找到你对应的集群和目标命名空间
- 左侧菜单栏选择工作负载,找到你要升级的那个对应
example:latest的工作负载 - 点击工作负载名称右侧的⋮(更多按钮),选择升级选项
- 在升级页面里,找到容器镜像区域:
- 如果你还是用
example:latest标签,直接点击旁边的重新拉取镜像按钮,Rancher会强制从仓库拉取最新版本的镜像 - 要是你改了标签,直接把镜像名改成新的即可
- 如果你还是用
- 其他配置如果不需要调整,直接拉到页面底部点击保存
- 接下来Rancher会自动执行滚动更新:逐步终止旧Pod,用新镜像启动新Pod,只要你配置了足够的副本数,服务不会中断
方法二:通过kubectl CLI操作(适合自动化或批量场景)
Rancher本质是管理Kubernetes集群,所以用kubectl也能轻松完成升级:
- 先确保kubectl已经配置好对应集群的上下文:可以在Rancher的集群页面下载kubeconfig文件,然后执行
export KUBECONFIG=/path/to/your/kubeconfig来加载配置 - 直接执行镜像更新命令:
要是你的工作负载只有一个容器,kubectl set image deployment/<你的工作负载名称> <容器名称>=example:latest -n <你的命名空间><容器名称>可以省略 - 或者你也可以直接编辑deployment配置:
找到kubectl edit deployment/<你的工作负载名称> -n <你的命名空间>spec.template.spec.containers[0].image字段,把值改成example:latest,保存退出后Kubernetes会自动触发滚动更新
小提示:避免镜像缓存问题
因为你用的是latest标签,Kubernetes有时候会缓存旧镜像导致升级不生效。解决方法是设置镜像拉取策略为Always:
- 在UI升级页面的高级选项里找到镜像拉取策略,选择总是拉取
- 或者用kubectl edit的时候,在容器配置里添加
imagePullPolicy: Always
这些方法我都在Rancher 2.0里验证过,都能正常完成升级,你可以根据自己的习惯选一个~
内容的提问来源于stack exchange,提问作者zarathustra




