Harbor升级和数据库迁移手册

当升级一个已经存在的Harbor实例到新版本时,需要迁移数据库数据。参考查看数据库发生了哪些变化,如果有的话,就需要进行数据库迁移操作,因为迁移可能会改变数据库模式,所以在任何数据迁移操作之前,都一定要先备份数据库。

如果你是第一次安装habor,或者新安装的数据库的版本和之前的数据库版本一致,那么你不需要做任何数据库的迁移操作。

注意:从v1.2开始,你需要使用发布版本号做为迁移镜像的tag,新版本不再使用“latest”这个tag了。

在任何数据操作之前,都必须要备份数据。

升级Harbor和迁移数据

1.登到harbor所在的服务器上,如果harbor还在运行,就停止并删除对应的Harbor实例。

cd harbor

docker-compose down

2.备份harbor当前的文件,确保在需要的时候可以回滚到当前的这个版本。

cd..

mv harbor /my_backup_dir/harbor

4.在更新harbor之前,先做数据库迁移操作。这个迁移工具以docker镜像的方式提供,所以你需要从docker hub上pull镜像。在下面的命令里,用harbor的发布版本号来替换[tag]:

docker pull vmware/harbor-db-migrator:[tag]

5.备份数据库到一个目录,比如/path/to/backup。如果目录不存在的话,你需要自己创建,并且数据库的用户名和密码需要通过环境变量“DB_USR”和“DB_PWD”来提供。

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] backup

6.更新数据库模式并迁移数据:

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] up head

7.解压新的harbor安装包,并切换到工作目录./harbor中去。通过修改harbor.cfg来配置harbor。通过修改harbor.cfg来配置harbor,你可能需要参考第二步操作时备份的配置文件。参考获取更多的信息。由于新版本的harbor.cfg配置文件的格式和内容可能会发生改变,所以不能直接从之前的版本来复制harbor.cfg配置文件。

重要:如果你更新harbor之前使用的认证方式为LDAP/AD,那边在你加载启动新版本的harbor之前,必须要确保harbor.cfg中的auth_mode配置成ldap_auth,否则,更新之后用户将无法登陆。

为了帮助将harbor.cfg配置文件从v0.5.0版本迁移到v1.1.x版本,提供了一个脚本,描述如下。对于其他版本的配置文件,需要手动迁移harbor.cfg文件。

cd harbor

./upgrade --source-loc source_harbor_cfg_loc--source-version 0.5.0 --target-loc target_harbor_cfg_loc --target-version1.1.x

注意:在执行这个脚本之后,要重新检查一遍,确保harbor.cfg中的配置都是正确的。如果有需要的话,你可以修改harbor.cfg。

8.切换到./harbor目录,执行./install.sh脚本安装新版本harbor实例。如果你安装harbor选择其他组件,比如Notary或者Clair,可参考获取更新信息。

升级后回滚

不管什么原因,如果你想回滚到之前的harbor版本,可以参考如下步骤:

1.停harbor服务。

cd harbor

docker-compose down

2.从备份文件/path/to/backup中恢复数据库。

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] restore

3.删除当前的harbor实例。

rm -rf harbor

4.恢复老版本的harbor文件。

mv /my_backup_dir/harbor harbor

5.使用之前的配置重启harbor服务。

如果之前版本是通过发布的二进制包安装的:

cdharbor

./install.sh

注意:如果你安装harbor选择其他组件,比如Notary或者Clair,可参考获取更新信息。

如果之前的harbor版本是通过源码安装的:

cdharbor

docker-compose up --build -d

迁移工具参考

使用help命令显示迁移工具帮助信息:

docker run --rm -e DB_USR=root -e DB_PWD=xxxxvmware/harbor-db-migrator:[tag] help

使用test命令测试mysql连接:

docker run --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] test

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 10 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 10 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐