在完成 Rancher 的單節點安裝后,或在升級 Rancher 到新版本之前,需要對 Rancher 進行數據備份。如果在 Rancher 數據損壞或者丟失,或者升級遇到問題時,可以通過最新的備份進行數據恢復。這里的單節點我理解是單rancher-server。
官方文檔
准備
查看rancher-server容器,有一些值要記錄
占位符 | 值 | 描述 |
---|---|---|
<RANCHER_CONTAINER_TAG> |
rancher/rancher:stable | 當前安裝的 Rancher Server 鏡像 |
<RANCHER_CONTAINER_NAME> |
objective_volhard | 當前 Rancher 容器名稱。 |
<RANCHER_VERSION> |
V2.2.5 | 您正在為其創建備份的 Rancher 版本。 |
<DATE> |
2020-07-25 | 創建數據卷容器或備份的日期。 |
注意:關於RANCHER_CONTAINER_TAG,官方說法是要記錄容器tag,要標識備份文件用的,然而我鏡像的TAG是stable這個東東,寫不寫都一樣,看個人。
備份
流程:關閉當前容器--創建一個備份容器共享rancher-server的數據卷--將備份容器的數據卷打包--刪除備份容器--啟動rancher-server
1、關閉容器
docker stop <RANCHER_CONTAINER_NAME>
2、備份當前rancher server到容器的數據到數據卷容器
docker create --volumes-from objective_volhard --name rancher-data-2020-07-25 rancher/rancher:stable
3、創建Rancher Server數據卷容器備份
docker run --volumes-from rancher-data-2020-07-25 -v $PWD:/backup alpine tar zcvf /backup/rancher-data-2020-07-25.tar.gz /var/lib/rancher
注意:$PWD的位置在/var/lib/docker/containers/下,就是docker的存儲路徑。
4、將備份壓縮包rancher-data-2020-07-25.tar.gz移到 Rancher Server 外部的安全位置。然后從 Rancher Server 所在主機中刪除rancher-data-
5、啟動容器
docker start <RANCHER_CONTAINER_NAME>
恢復
流程:關閉當前容器----確認備份數據存在--清空rancher-server數據卷並將備份的數據解壓到該數據卷中--啟動rancher-server
1、關閉rancher-server
docker stop <RANCHER_CONTAINER_NAME>
2、確認備份數據
ls /backup/rancher-data-2020-07-25.tar.gz
3、執行恢復操作,該操作會清空現rancher-server的數據卷
docker run --volumes-from objective_volhard -v $PWD:/backup busybox sh -c "rm /var/lib/rancher/* -rf && tar pzxvf /backup/rancher-data-2020-07-25.tar.gz"
4、啟動容器
docker start <RANCHER_CONTAINER_NAME>
5、web 瀏覽器中打開 Rancher UI,確認是否成功恢復數據