记一次rancher server的迁移
问题:刚开始把rancher放在了k8s的一个节点上,导致该节点的内存溢出的时候,rancher就直接挂掉了,所以规划吧rancher重新规划一台单独的虚拟机。
针对 rancher 单容器部署方式,如何迁移到新机器上?下面介绍下 rancher 2.5.3 的迁移操作。大致思路是这样:
- 先将旧 rancher 数据备份一份
- 然后传到新的节点上
- 重启一个新的 rancher ,加载旧数据
- 基于新 rancher 的界面获取原集群的cattle-agent注册信息
- 将新 rancher 的 cattle-agent 在旧集群更新,然后其重新注册到新的 rancher 地址
一、rancher数据备份
1、停止容器
[root@node ~]# docker stop 7cc
2、创建容器卷
[root@node ~]# docker create --privileged --volumes-from gracious_thompson --name rancher-data-2021-11-23 rancher/rancher:v2.5.5
3、创建压缩包
docker run --volumes-from rancher-data-<日期> -v $PWD:/backup:z busybox tar pzcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<日期>.tar.gz /var/lib/rancher
目录先创建好,修改变量之后执行命令
[root@node ~]# docker run --volumes-from rancher-data-2021-11-23 -v $PWD:/backup:z busybox tar pzcvf /backup/rancher-data-backup-rancher:v2.5.5-2021-11-23.tar.gz /var/lib/rancher
4、恢复原服务,然后旧rancher继续提供服务
[root@node ~]# docker start 7cc
7cc
二、新rancher数据恢复
1、将数据拷贝到新的rancher节点
拷贝方式随意,我用的是xftp
2、解压压缩包
[root@localhost /data]# tar pzxvf rancher-data-backup-rancher_v2.5.5-2021-11-23.tar.gz
3、启动一个新的rancher并加载数据
[root@localhost /data]# docker run -d --restart=unless-stopped -v /data/var/lib/rancher:/var/lib/rancher -v /data/rancher/log:/var/log/ -p 8080:80 -p 8443:443 --privileged rancher/rancher:v2.5.5 --log-format json --audit-log-maxage 30 --audit-log-maxbackup 30 --audit-level 2
三、将集群中旧rancher的agent替换成新的cattle agent
rancher 是一个 c/s 架构,部署在集群中的 cattle agent 会同步信息给到 rancher server,rancher server 显示给用户。
因为在完成 rancher server 迁移之后,需要重新部署 cluster agent。
那怎么找到一个已经存在集群的注册 cluster agent 脚本,可以通过以下 url 访问到:
https://<rancher-server-ip>/v3/clusters/<集群id>/clusterregistrationtokens
<rancher-server-ip> 新rancher的ip地址
集群ip需要在下面截图方式找到,(新旧rancher上均可)

最后确定的地址为
https://192.168.69.105/v3/clusters/c-5mxzn/clusterregistrationtokens

可能会有多组"baseType": "clusterRegistrationToken",如上图。这种情况以createdTS最大、时间最新的一组为准,一般是最后一组。
上述命令需要在k8s集群重新执行一下,即把集群中旧的agent替换成新的agent,执行完之后,可以正常访问。旧rancher无法访问了。


浙公网安备 33010602011771号