针对 rancher 单容器部署方式,如何迁移到新机器上?下面介绍下 rancher 2.5.3 的迁移操作。大致思路是这样:
- 先将旧 rancher 数据备份一份
- 然后传到新的节点上
- 重启一个新的 rancher ,加载旧数据
- 基于新 rancher 的界面获取原集群的cattle-agent注册信息
- 将新 rancher 的 cattle-agent 在旧集群更新,然后其重新注册到新的 rancher 地址
rancher备份
停止容器
代码语言:javascript复制docker stop <容器名称>
创建容器卷
代码语言:javascript复制docker run --volumes-from <容器名称> --name rancher-data-<日期> rancher/rancher:lastest
创建压缩包
代码语言:javascript复制docker run --volumes-from rancher-data-<日期> -v $PWD:/backup:z busybox tar pzcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<日期>.tar.gz /var/lib/rancher
恢复原服务,然后旧rancher继续提供服务
代码语言:javascript复制docker start <容器名称>
新rancher恢复数据
将数据拷贝到新的rancher节点
代码语言:javascript复制scp /backup/rancher-data-backup-<RANCHER_VERSION>-<日期>.tar.gz <新节点>:/data/rancher-data-backup-<RANCHER_VERSION>-<日期>.tar.gz
解压压缩包:
代码语言:javascript复制tar pzxvf /data/rancher-data-backup-<RANCHER_VERSION>-<日期>.tar.gz
启动一个新 rancher 并加载数据
代码语言:javascript复制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.9 --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 访问到:
代码语言:javascript复制https://<rancher-server-ip>/v3/clusters/<集群id>/clusterregistrationtokens
这里的集群 id 可以在这里找到:
参考文献
- Rancher Docs: Backing up Rancher Installed with Docker