Harbor版本升级
背景:
原Harbor:1.2.0
待更新:1.8.0
过程:
由于harbor从v1.6.0版本开始,后端数据库由MariaDB改为Postgresql,所以在升级过程中,必须先升级到v1.6.0版本,再升级至v1.8.0。
v1.2.0 -> v1.6.0
该步骤中,由于数据库变更,所以需对数据库进行迁移。另外在升级过程中会改变数据库文件(database schema)以及harbor配置文件(harbor.cfg),所以必须做好备份工作,以备进行回滚操作。
一、低版本先升级到1.6.0
1、进入harbor文件夹,关闭harbor服务(/usr/local/harbor/harbor)
[root@mariadb /]# cd /usr/local/harbor/harbor/
[root@mariadb harbor]# docker-compose down -v
2、备份harbor程序以及数据库文件
[root@mariadb /]# mv /usr/local/harbor/harbor/ /usr/local/harbor/harbor.1.2.0
[root@mariadb /]# cp -rf /data/database/ /data/database.1.2.0
3、下载harbor:1.6.0
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.0.tgz
[root@mariadb /]# tar xzvf /usr/local/harbor/harbor-offline-installer-v1.6.0.tgz -C /usr/local/harbor/
4、下载备份工具和迁移工具(备份也可使用高版本的,最好是下载一个)
docker pull goharbor/harbor-migrator:v1.2.0
docker pull goharbor/harbor-migrator:v1.6.0
5、创建harbor配置文件备份文件夹,并且进行备份操作
[root@mariadb ~]# cd /usr/local/harbor/
[root@mariadb harbor]# mkdir harbor.migrate.v1.2.0
[root@mariadb ~]# docker run -it --rm -e DB_USR=root -e DB_PWD=root123 -v /data/database:/var/lib/mysql -v /usr/local/harbor/harbor.1.2.0/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /usr/local/harbor/harbor.migrate.v1.2.0:/harbor-migration/backup goharbor/harbor-migrator:v1.2.0 backup
6、升级数据库,修改harbor配置文件,迁移数据
[root@mariadb /]# docker run -it --rm -e DB_USR=root -e DB_PWD=root123 \
-v /data/database:/var/lib/mysql \
-v /usr/local/harbor/harbor.1.2.0/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg \
goharbor/harbor-migrator:v1.6.0 up
[root@mariadb /]# mkdir /data/notary-db/
[root@mariadb /]# docker run -it --rm -e DB_USR=root \
-v /data/notary-db/:/var/lib/mysql \
-v /data/database:/var/lib/postgresql/data goharbor/harbor-migrator:v1.6.0 --db up
[root@mariadb /]# mkdir /data/clair-db/
[root@mariadb /]# docker run -it --rm -e DB_PWD=root123\
-v /data/clair-db/:/clair-db \
-v /data/database:/var/lib/postgresql/data goharbor/harbor-migrator:v1.6.0 --db up
7、配置新版本的harbor.cfg文件,文件要和之前版本中的修改过的内容一致
[root@mariadb /]# vim /usr/local/harbor/harbor/harbor.cfg
7 hostname = hub.benet.com
11 ui_url_protocol = https
68 harbor_admin_password = pwd@123 #密码无所谓,建议使用一样的
[root@mariadb harbor]# ./install.sh
8、升级完成后的效果
v1.6.0 -> v1.8.0
该步骤中,由于在v1.6.0版本之后,harbor会在启动服务时自行迁移数据库数据,所以无需再单独迁移数据库。
二、从1.6.0版本升级到1.8.0版本
1、关闭harbor服务
[root@mariadb /]# cd /usr/local/harbor/harbor
[root@mariadb harbor]# docker-compose down -v
2、备份harbor程序和数据库文件
[root@mariadb /]# mv /usr/local/harbor/harbor /usr/local/harbor/harbor.1.6.0
[root@mariadb /]# cp -rf /data/database /data/database.1.6.0/
3、下载1.8.0版本
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz
[root@mariadb /]# tar xzvf /usr/local/harbor/harbor-offline-installer-v1.8.0.tgz -C /usr/local/harbor/
4、下载迁移工具
docker pull goharbor/harbor-migrator:v1.8.0
5、升级harbor配置文件并安装
[root@mariadb /]# docker run -it --rm -v /usr/local/harbor/harbor.1.6.0/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /usr/local/harbor/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.8.0 --cfg up
[root@mariadb /]# cd /usr/local/harbor/harbor
[root@mariadb harbor]# ./install.sh
6、升级完成后的效果
三、删除多余的配置文件
1、/data目录中备份的database.1.6.0和database.1.6.0
2、/usr/local/harbor目录中的harbor.1.2.0和harbor.migrate.v1.2.0
3、用到的各种压缩包和之前版本的docker镜像
4、注意:千万不要删除/usr/local/harbor/harbor.1.6.0