1、目標mysql
2、V1.4升級至V1.6git
3、V1.6升級至V1.9github
4、V1.9升級至V2.0sql
5、寫在最後docker
Harbor V1.4版本升級至V2.0數據庫
注:運維
Harbor升級須要注意的是,不是一口吃成胖子,須要迭代升級(如圖),不能直接從V1.4升級到V2.0,須要先從V1.4--V1.6--V1.9--V2.0;這裏涉及到大版本與小版本;ide
docker-compose down -v
2)備份post
mkdir /backup_bak # 建立備份目錄 cp -r harbor /backup_bak/harbor_v1.4 # 備份配置文件目錄 cp -r /data/database /harbor_bak/database1.4 # 備份數據庫文件
3)另外一種數據庫備份ui
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比較大的變化是配置文件由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只需轉換配置文件,步驟以下:
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/