「HARBOR」- 部署 | 升级 | Docker Compose

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

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

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

Harbor 1.7.5

WIP

v2.1.5 => v2.3.0

Harbor docs | Upgrade Harbor and Migrate Data

建议阅读官方升级文档(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

v2.7.0 => v2.7.3

环境概述

我们使用 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.7.0/
rsync -avz /srv/nfs/registry-server/data/database/ /srv/backup/harbor/database/v2.7.0/

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

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

cd /data/registry-server/

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

docker pull goharbor/prepare:v2.7.3

第三步、升级服务

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

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

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

# 启用服务(包括 镜像扫描、Chart Repository 等等功能)
./install.sh --with-notary --with-trivy --with-chartmuseum

v2.7.3 => v2.8.0

# 13/10/2023

在 Harbor v2.8.0(Release v2.8.0 · goharbor/harbor)中,其移除 ChartMuseum 组件,其通过 OCI 来管理 Chart 资源;
但是,Rancher 暂不支持从拉取 OCI 中的 Chart 资源(Ability to use an OCI Helm Chart Registry on a Rancher Catalog · Issue #29105 · rancher/rancher),所以我们暂时暂停升级,等待 Rancher 提供支持;

# 01/16/2024 问题同上,暂不升级。

# 03/06/2024 问题同上,暂不升级。

# 04/07/2024 问题同上,暂不升级。Rancher 依旧未支持 OCI 仓库,所以 Harbor 无法升级到新版本。

# 04/07/2024 问题同上,暂不升级。Rancher 依旧未支持 OCI 仓库,所以 Harbor 无法升级到新版本。

# 05/07/2024 问题同上,暂不升级。