0%

Harbor升级和迁移指南

本指南仅涵盖升级和迁移的版本> = 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和迁移数据

  1. 登录Harbor运行的主机,如果仍在运行,则停止并删除现有的Harbor实例:

    1
    2
    cd harbor
    docker-compose down
  2. 备份Harbor的当前文件,以便可以在必要时回滚到当前版本:

    1
    mv harbor /my_backup_dir/harbor

    备份数据库(默认情况下在/data/database中):

    1
    cp -r /data/database /my_backup_dir/
  3. 从Github获取最新的Harbor发布包:https://github.com/goharbor/harbor/releases

  4. 在升级Harbour之前,请先执行迁移。迁移工具作为docker镜像提供,因此应该先从docker hub中拉取镜像。在以下命令中将[tag]替换为Harbor的发行版本(例如v1.5.0):

    1
    docker pull goharbor/harbor-migrator:[tag]
  5. 从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启动时自动执行,如果迁移失败,请检查核心日志以进行调试。

  6. ./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。

  1. 如果仍在运行,请停止并删除当前的Harbor服务:

    1
    2
    cd harbor
    docker-compose down
  2. 删除当前的Harbor实例:

    1
    rm -rf harbor
  3. 恢复Harbor的旧版本包:

    1
    mv /my_backup_dir/harbor harbor
  4. 恢复数据库,将数据文件从备份目录复制到数据卷,默认为/data/database

  5. 使用以前的配置重新启动Harbor服务。

    如果安装了以前版本的Harbor:

    1
    2
    cd harbor
    ./install.sh