harbor1.7.0升级

66 阅读2分钟

背景

需要从测试环境harbor将测试环境镜像同步到阿里云acr镜像仓库,发现harbor1.7.0版本的同步功能不支持同步到acr,harbor1.9.0才引入同步阿里云镜像,需要将harbor低版本升级到1.9.0版本以上

现状

harbor 版本 1.7.0-rc2

操作步骤

最开始打算是从1.7.0 升级到1.8.0 再从1.8.0升级到1.9.0 升级到1.8.0成功,升级1.8.0到1.9.0过程中 sudo docker ps 发现 harbor-core组件报错, 查看 /var/log/harbor tail -f core.log 发现


[/common/dao/base.go:89]: Register database completed
[/common/dao/pgsql.go:107]: Upgrading schema for pgsql ...
 [/common/dao/pgsql.go:112]: Failed to upgrade schema, error: "file does not exist"
[/core/main.go:103]: failed to initialize database: file does not exist

怀疑可能迁移工具和版本都有问题,最终尝试选择升级到1.10.7,升级成功

迁移1.7.0到1.8.0

备份

//工作目录
cd /home/ubuntu
mkdir harbor1.7.0-bak

//停止harbor
sudo docker-compose  down
//备份harbor目录
cp -r harbor /home/ubuntu/harbor1.7.0-bak
//备份数据库文件
cp -r /data/database/ /home/ubuntu/harbor1.7.0-bak

// 移除原harbor文件夹
sudo rm -rf harbor

下载1.8.0安装文件

wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz


下载1.8.0迁移工具

harbor提供的迁移工具

docker pull goharbor/harbor-migrator:v1.8.0

安装harbor 1.8.0

tar zxvf harbor-offline-installer-v1.8.0.tgz -C /home/ubuntu/

迁移1.7.0到1.8.0

sudo docker run -it --rm -v /home/ubuntu/harbor1.7.0-bak/harbor/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /home/ubuntu/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml  docker.io/goharbor/harbor-migrator:v1.8.0 --cfg up

修改1.8.0配置

直接启动会报错

cd /home/ubuntu/harbor
vi harbor.yml



增加配置

chart:
  absolute_url: disabled

安装并启动harbor

 sudo  ./install.sh --with-clair

验证

sudo docker ps 查看进程都正常,登录页面

迁移1.8.0到1.10.0

备份1.8.0

//工作目录
cd /home/ubuntu
mkdir harbor1.8.0-bak

//停止harbor
sudo docker-compose  down
//备份harbor目录
cp -r harbor /home/ubuntu/harbor1.8.0-bak
//备份数据库文件
cp -r /data/database/ /home/ubuntu/harbor1.8.0-bak

// 移除原harbor文件夹
sudo rm -rf harbor

下载1.10.7安装文件


wget -c https://github.com/goharbor/harbor/releases/download/v1.10.7/harbor-offline-installer-v1.10.7.tgz

下载1.10.0迁移工具

harbor提供的迁移工具

docker pull goharbor/harbor-migrator:v1.10.0

安装harbor 1.10.7

tar zxvf harbor-offline-installer-v1.10.7.tgz -C /home/ubuntu/

迁移1.8.0到1.10.0

sudo docker run -it --rm -v /home/ubuntu/harbor1.8.0-bak/harbor/harbor.yml:/harbor-migration/harbor-cfg/harbor.yml -v /home/ubuntu/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml  docker.io/goharbor/harbor-migrator:v1.10.0 --cfg up

安装并启动harbor

 sudo  ./install.sh --with-clair

注意 harbor-core启动会比较慢,启动过程中登录会出现用户名密码错误,nginx 502 错误。 中间会存在镜像同步的流程,查看core.log和进程没问题等待同步完成,就可以登录。

验证

sudo docker ps 查看进程都正常,登录页面

harbor启动停止命令

 
 
 sudo docker-compose -f ./docker-compose.yml up -d
 sudo docker-compose -f ./docker-compose.yml down -v