You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何升级已部署的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

火山引擎 最新活动