目录
一、目标
二、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/