Rancher👉v2.6.5升级v2.7.0
时间:2022年11月18日16:37:50
2022-11-17凌晨,rancher推出了新的稳定版:v2.7.0。
一、为什么要升级到v2.7.0?v2.6.5有什么严重的问题吗?
● 对于私有云来说,一般生产环境都会有单独的堡垒机隔离外部的异常流量,即使使用2.5也不会有严重问题(之间去过的项目现场使用的依然是Rancher v2.5.x。)
● 但是新版本往往会包含大量的异常修复、功能增强与性能提升(例如下图:v2.6.7)。
二、升级前必读
单节点非外置数据库的Rancher升级很简单,【停止原容器,创建卷容器,使用卷容器启动新版本的Rancher】,如果你负责升级,你应该了解这个过程失败的风险,并知晓相应的处理方案。因为单节点Rancher一旦升级失败,这将对你使用Rancher创建的RKE集群产生毁灭性的影响。
如果你Rancher2.6.5使用私有镜像仓库部署,那么在升级到2.7.0会遇到一系列的问题,请注意。
● 默认旧版本组件升级会自动从私有仓库拉取镜像,但是你如果私有仓库里没有更新Rancher2.7.0的基础组件则会出现问题。这个时候,你可以手动下载集群中报错的工作负载所需组件,虽然这可以使得升级成功立竿见影。但如果你想要升级k8s版本,这个问题会再次出现。如果你想一劳永逸,请将Rancher2.7.0的所有基础组件拉取到你的私有镜像仓库中或者在升级前将集群的私有镜像仓库配置取消。
● 此外,如果你的longhorn在升级时也遇到了从私有镜像库中下载的问题,这个时候你只需要手动下载所有缺少的镜像推送到你的私有镜像库中即可。(对于Longhorn,虽然在写博客的今天已经更新到v1.3.2, 但是我 此时 并不推荐在Rancher管理的RKE集群中使用lonhorn做分布式数据集管理,因为longhorn对集群的操作会给一个小集群controlPanel节点造成不小的压力,直接的影响会导致你在部署/升级服务时,你的Rancher面板出现假死的状态(而Rancher面板是开发者/实施人员最直接管理集群的入口),这种情况在longhorn部署、升级与卸载操作中尤为明显。此外,如果你有把Mysql单机部署在k8s中,使用longhron备份数据来起到容灾目的的想法,我不建议你这样做,因为MySQL部署在k8s中会直接导致QPS降低最高达80%,数据真实来源于生产环境sysbench压测)。
三、升级步骤
● 升级前,请务必将容器卷备份持久化到本地,即使相关维护人员已经对Rancher做了备份。
docker stop xxxxxx
docker create --volumes-from rancher-server-2.6.5 --name rancher-data 192.168.204.111:41443/sys/rancher/rancher:v2.6.5
docker run --volumes-from rancher-data -v "$PWD:/backup" --rm 192.168.204.111:41443/sys/rancher/busybox:latest tar zvcf /backup/rancher-data-backup-v2.6.5-20220630.tar.gz -C /var/lib rancher
👇
docker run --volumes-from rancher-data -v "$PWD:/backup" --rm 192.168.204.111:41443/sys/rancher/busybox:latest tar zvcf /backup/rancher-data-backup-v2.6.5-20221118.tar.gz -C /var/lib rancher
docker run -d --volumes-from rancher-data \
--restart=unless-stopped \
-p 8080:80 -p 8443:443 \
--privileged \
192.168.204.111:41443:41443/sys/rancher/rancher:v2.7.0
👇
docker run -d --volumes-from rancher-data \
--restart=unless-stopped \
-p 8080:80 -p 8443:443 \
--privileged \
rancher/rancher:v2.7.0