「Harbor」- 升级(通过 Docker Compose 部署)

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:我们升级 Harbor 的升级过程,以及相关问题的解决方案;

解决方案

我们所记录升级文档,其忽略在官方文档中与我们部署环境无关的部分,仅记录与我们有关的部分;

建议阅读官方升级文档,并结合自己的部署环境,以得出适当的升级过程;
在升级过程中,注意 配置文件备份、数据目录备份,以防止数据丢失;

v2.1.5 => v2.3.0

建议阅读官方升级文档(Harbor docs/v2.3.0),并结合自己的部署环境,以得出适当的升级过程;

v2.3.0 => v2.3.5

参考 Harbor docs/v2.4.0 文档,升级过程与前面是类似的,这里不再重复记录;

v2.3.2 => v2.5.0

根据 Harbor docs/v2.5.0 描述,需要先升级到 v2.3.0 再升级到 v2.5.0 版本;
我们当前运行 v2.3.2 版本,能够直接升级到 v2.5.0 版本;

jinja2.exceptions.UndefinedError: ‘None’ has no attribute ‘port’

问题:在迁移配置文件时,产生如上错误;
原因:在 `http:` 下没有任何配置(算是语法错误);
解决:注释 `http:` 块,然后重新迁移配置;

v2.5.5 => v2.7.0

根据 Harbor docs/v2.7.0 描述,需要先升级到 v2.5.0 再升级到 v2.7.0 版本;
我们当前运行 v2.5.5 版本,能够直接升级到 v2.7.0 版本;

环境概述

我们使用 Docker Compose 部署 Harbor 服务;

部署目录:/data/registry-server/harbor/
数据目录:/srv/nfs/registry-server/data/
备份目录:/srv/backup/harbor/, /srv/backup/harbor/database/

第一步、停止服务,并备份数据

cd /data/registry-server/harbor/
docker-compose down

rsync -avz /data/registry-server/harbor/      /srv/backup/harbor/v2.5.5/
rsync -avz /srv/nfs/registry-server/data/database/ /srv/backup/harbor/database/v2.5.5/

mv /data/registry-server/harbor/ /tmp/                      # 旧版的 harbor 将无需保留

第二步、下载最新版本程序文件

cd /data/registry-server/

wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-online-installer-v2.7.0.tgz

docker pull goharbor/prepare:v2.7.0

第三步、升级服务

cd /data/registry-server/harbor/
tar -xvf harbor-online-installer-v2.5.5.tgz -C /data/registry-server/

# 升级配置文件
cp -v /srv/backup/harbor/v2.5.5/harbor.yml /data/registry-server/harbor/harbor.yml
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.7.0 migrate -i /data/registry-server/harbor/harbor.yml

# 启动服务
cd /data/registry-server/harbor/

# 早期,我们的 Harbor v2.1.5 未启用镜像扫描、Chart Repository 等等功能,这次我们将启用这些功能;
./install.sh --with-notary --with-trivy --with-chartmuseum

参考文献

Harbor docs | Upgrade Harbor and Migrate Data
Harbor docs | Run the Installer Script
Release v2.3.0 · goharbor/harbor