目錄
一、目標
二、V1.4升級至V1.6
三、V1.6升級至V1.9
四、V1.9升級至V2.0
五、寫在最后
一、目標
Harbor V1.4版本升級至V2.0
注:
Harbor升級需要注意的是,不是一口吃成胖子,需要迭代升級(如圖),不能直接從V1.4升級到V2.0,需要先從V1.4--V1.6--V1.9--V2.0;這里涉及到大版本與小版本;
二、V1.4升級至V1.6
docker-compose down -v
2)備份
mkdir /backup_bak # 創建備份目錄 cp -r harbor /backup_bak/harbor_v1.4 # 備份配置文件目錄 cp -r /data/database /harbor_bak/database1.4 # 備份數據庫文件
3)另一種數據庫備份
docker run -it --rm -e DB_USR=user -e DB_PWD=password -v /data/database/:/var/lib/mysql -v /harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor_bak/1.4_bak:/harbor-migration/backup goharbor/harbor-db-migrator:1.4 backup
DB_USER:數據庫登錄名(可從配置文件里獲取)
DB_PWD:數據庫密碼(可從配置文件里獲取)
第一個-v:/data/database/:/var/lib/mysql 前面為數據庫文件,具體根據自己的配置文件里設置的數據目錄下,后面不變;
第二個-v:/harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面為harbor1.4的配置文件,后面不變;
第三個-v:/harbor_bak/1.4_bak:/harbor-migration/backup 前面為備份到的哪個目錄,后面不變;
4)升級數據庫
docker run -it --rm -e DB_USR=user -e DB_PWD=password -v /data/database/:/var/lib/mysql -v /harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor_bak/1.6_database:/harbor-migration/backup goharbor/harbor-migrator:v1.6.0 up
DB_USER:數據庫登錄名(可從配置文件里獲取)
DB_PWD:數據庫密碼(可從配置文件里獲取)
第一個-v:/data/database/:/var/lib/mysql 前面為1.4版本的數據庫文件,后面不變;
第二個-v:/harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面為1.4版本的配置文件,后面不變;
第三個-v:/harbor_bak/1.6_database:/harbor-migration/backup 前面為升級后的數據庫文件,后面不變;
5)配置文件轉換
docker run -it --rm -v /harbor_bak/harbor_1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v harbor/harbor.cfg:/harbor-migration/harbor-cfg-out/harbor.cfg goharbor/harbor-migrator:v1.6.0 --cfg up
第一個-v:/harbor_bak/harbor_1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 現有1.4版本的配置文件,后面不變;
第二個-v: harbor/harbor.cfg:/harbor-migration/harbor-cfg-out/harbor.cfg 前面為轉換后的1.6版本的配置文件,后面不變;
注:
將1.4版本的配置文件轉換成1.6版本,新的配置文件將會輸出至harbor/harbor.cfg,注意檢查里面的配置文件,密碼是否對應的轉換過來了,沒有的話,需手動改。
三、V1.6升級V1.9
V1.6升級V1.9比較大的變化是配置文件由cfg形式變成yml文件,整體上只需轉換配置文件即可;步驟如下
1)停止容器
docker-compose down -v
2)備份
cp -r harbor /backup_bak/harbor_v1.6 # 備份配置文件目錄 cp -r /data/database /harbor_bak/database1.6 # 備份數據庫文件
3)V1.6版本的配置文件轉換成V1.9版本的配置文件
docker run -it --rm -v /harbor_bak/harbor_1.6/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.9.3 --cfg up
第一個-v:/harbor_bak/harbor_1.6/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面為harbor1.6版本的harbor.cfg配置文件,后面為固定的
第二個-v:/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml 前面為將被轉換成1.9版本配置文件的目錄及文件,根據自己的實際情況指定,后面為固定的
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-online-installer-v1.9.3.tgz tar -xvf harbor-online-installer-v1.9.3.tgz
5)拷貝轉換好的V1.9版本配置文件放置harbor1.9,並啟動
cp /harbor.yml harbor1.9/ #拷貝第三步中由1.6版本轉換成1.9版本的配置文件到harbor1.9的安裝目錄 cd harbor1.9/ ./install
四、V1.9升級V2.0
V1.9升級V2.0只需轉換配置文件,步驟如下:
1)停止容器
docker-compose down -v
2)備份
cp -r harbor /backup_bak/harbor_v1.9 # 備份配置文件目錄 cp -r /data/database /harbor_bak/database1.9 # 備份數據庫文件
3)1.9版本的配置文件harbor.yml轉換成2.0版本的配置文件harbor.yml
# 拉取goharbor/prepare:v2.0.0鏡像 docker pull goharbor/prepare:v2.0.0 # 這里先拷貝一份原來的配置文件到一個目錄下,這里我的是/usr/local/leee/harbor.yml # 不指定輸出文件的話,默認到當前目錄下,如果輸入文件與輸出文件在同一個目錄,那么新版本的配置文件將會覆蓋舊版本的配置文件,一定要做好備份 docker run -it --rm -v /:/hostfs goharbor/prepare:v2.0.0 migrate -i /usr/local/leee/harbor.yml
# 也可以寫成
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.0.0 migrate -i /usr/local/leee/harbor.yml -o /usr/local/leee/harbor_v2.yml -t 2.0.0

wget https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-online-installer-v2.0.0.tgz tar -xvf harbor-online-installer-v2.0.0.tgz
cp /usr/local/leee/harbor_v2.0.yml . ./install
相關文檔鏈接:
https://github.com/goharbor/harbor/blob/release-1.6.0/docs/migration_guide.md
https://github.com/goharbor/harbor/blob/release-1.9.0/docs/migration_guide.md
https://goharbor.io/docs/2.0.0/administration/upgrade/
寫在最后
