Harbor升級和數據庫遷移手冊
?
當升級一個已經存在的Harbor實例到新版本時,需要遷移數據庫數據。參考What's New in Harbor Database Schema查看數據庫發生了哪些變化,如果有的話,就需要進行數據庫遷移操作,因為遷移可能會改變數據庫模式,所以在任何數據遷移操作之前,都一定要先備份數據庫。
?
如果你是第一次安裝habor,或者新安裝的數據庫的版本和之前的數據庫版本一致,那么你不需要做任何數據庫的遷移操作。
?
注意:
從v1.2開始,你需要使用發布版本號做為遷移鏡像的tag,新版本不再使用“latest”這個tag了。
在任何數據操作之前,都必須要備份數據。
?
升級Harbor和遷移數據
?
1.????? 登到harbor所在的服務器上,如果harbor還在運行,就停止并刪除對應的Harbor實例。
cd harbor
docker-compose down
2.???? 備份harbor當前的文件,確保在需要的時候可以回滾到當前的這個版本。
cd ..
mv harbor /my_backup_dir/harbor
?
3.????? 在github上獲取最新的harbor發布版安裝包,下載地址:https://github.com/vmware/harbor/releases
?
4.????? 在更新harbor之前,先做數據庫遷移操作。這個遷移工具以docker鏡像的方式提供,所以你需要從docker hub上pull鏡像。在下面的命令里,用harbor的發布版本號來替換[tag]:
docker pull vmware/harbor-db-migrator:[tag]
?
5.????? 備份數據庫到一個目錄,比如/path/to/backup。如果目錄不存在的話,你需要自己創建,并且數據庫的用戶名和密碼需要通過環境變量“DB_USR”和“DB_PWD”來提供。
docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] backup
6.???? 更新數據庫模式并遷移數據:
docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] up head
7.???? 解壓新的harbor安裝包,并切換到工作目錄./harbor中去。通過修改harbor.cfg來配置harbor。
通過修改harbor.cfg來配置harbor,你可能需要參考第二步操作時備份的配置文件。參考安裝和配置手冊獲取更多的信息。由于新版本的harbor.cfg配置文件的格式和內容可能會發生改變,所以不能直接從之前的版本來復制harbor.cfg配置文件。
?
重要:如果你更新harbor之前使用的認證方式為LDAP/AD,那邊在你加載啟動新版本的harbor之前,必須要確保harbor.cfg中的auth_mode配置成ldap_auth,否則,更新之后用戶將無法登陸。
?
為了幫助將harbor.cfg配置文件從v0.5.0版本遷移到v1.1.x版本,提供了一個腳本,描述如下。對于其他版本的配置文件,需要手動遷移harbor.cfg文件。
cd harbor
./upgrade --source-loc source_harbor_cfg_loc--source-version 0.5.0 --target-loc target_harbor_cfg_loc --target-version1.1.x
?
注意:在執行這個腳本之后,要重新檢查一遍,確保harbor.cfg中的配置都是正確的。如果有需要的話,你可以修改harbor.cfg。
?
8.???? 切換到./harbor目錄,執行./install.sh腳本安裝新版本harbor實例。如果你安裝harbor選擇其他組件,比如Notary或者Clair,可參考安裝和配置手冊獲取更新信息。
?
升級后回滾
?
不管什么原因,如果你想回滾到之前的harbor版本,可以參考如下步驟:
?
1.???? 停harbor服務。
cd harbor
docker-compose down
?
2.???? 從備份文件/path/to/backup中恢復數據庫。
docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] restore
?
3.???? 刪除當前的harbor實例。
rm -rf harbor
?
4.???? 恢復老版本的harbor文件。
mv /my_backup_dir/harbor harbor
?
5.???? 使用之前的配置重啟harbor服務。
如果之前版本是通過發布的二進制包安裝的:
cd harbor
./install.sh
?
注意:如果你安裝harbor選擇其他組件,比如Notary或者Clair,可參考安裝和配置手冊獲取更新信息。
?
如果之前的harbor版本是通過源碼安裝的:
cd harbor
docker-compose up --build -d
?
遷移工具參考
?
使用help命令顯示遷移工具幫助信息:
docker run --rm -e DB_USR=root -e DB_PWD=xxxxvmware/harbor-db-migrator:[tag] help
?
使用test命令測試mysql連接:
docker run --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] test
?
原文:https://github.com/vmware/harbor/blob/master/docs/migration_guide.md
?
轉載于:https://blog.51cto.com/dangzhiqiang/1962874