本指南仅涵盖升级和迁移的版本> = v1.8.0
将现有Harbor实例升级到较新版本时,可能需要迁移数据库中的数据和harbor.cfg中的设置。由于迁移可能会更改数据库架构和harbor.cfg的设置,因此务必在迁移之前备份数据。
注意:
- 必须在任何数据迁移之前备份数据。
- 本指南仅涵盖从v1.6.0迁移到当前版本,如果要从早期版本升级,请参阅发行版分支中的迁移指南以升级到v1.6.0,并按照本指南进行迁移到更高版本。
- 从v1.6.0开始,Harbor会在启动时自动尝试迁移数据库,因此如果从v1.6.0或更高版本升级,则无需调用迁移器工具来迁移数据库。
- 有关数据库架构的更改,请参阅更改日志。
- 从v1.8.0开始,Harbor的配置已更改为.yml文件,迁移器将配置文件从harbor.cfg转换为harbor.yml。执行此迁移的命令稍有不同,请确保按照以下步骤操作。
升级Harbor和迁移数据
登录Harbor运行的主机,如果仍在运行,则停止并删除现有的Harbor实例:
1
2cd harbor
docker-compose down备份Harbor的当前文件,以便可以在必要时回滚到当前版本:
1
mv harbor /my_backup_dir/harbor
备份数据库(默认情况下在
/data/database
中):1
cp -r /data/database /my_backup_dir/
从Github获取最新的Harbor发布包:https://github.com/goharbor/harbor/releases
在升级Harbour之前,请先执行迁移。迁移工具作为docker镜像提供,因此应该先从docker hub中拉取镜像。在以下命令中将[tag]替换为Harbor的发行版本(例如v1.5.0):
1
docker pull goharbor/harbor-migrator:[tag]
从harbor.cfg升级到harbor.yml:
1
docker run -it --rm -v ${harbor_cfg}:/harbor-migration/harbor-cfg/harbor.cfg -v ${harbor_yml}:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:[tag] --cfg up
注意1:可以在步骤3中获取的解压缩安装程序中找到$ {harbor_yml},迁移后,该路径中的文件harbor.yml将使用$ {harbor_cfg}中的值更新
注意2:数据库升级和数据迁移由Harbor启动时自动执行,如果迁移失败,请检查核心日志以进行调试。
在
./harbor
目录下,运行./install.sh
脚本以安装新的Harbor实例。如果选择使用Notary,Clair和chartmuseum等组件安装Harbour,请参阅“安装和配置指南”以获取更多信息。
升级后的回滚
无论出于何种原因,如果想回滚到之前版本的Harbour,请按照以下步骤操作:
注意:回滚不支持跨v1.5.0升级,例如从v1.2.0升级到v1.7.0。这是因为Harbor从v1.7.0将DB更改为PostgreSQL,迁移器无法将数据回滚到MariaDB。
如果仍在运行,请停止并删除当前的Harbor服务:
1
2cd harbor
docker-compose down删除当前的Harbor实例:
1
rm -rf harbor
恢复Harbor的旧版本包:
1
mv /my_backup_dir/harbor harbor
恢复数据库,将数据文件从备份目录复制到数据卷,默认为
/data/database
。使用以前的配置重新启动Harbor服务。
如果安装了以前版本的Harbor:
1
2cd harbor
./install.sh