Harbor版本升级:v1.8.x升级到1.10.7

Posted 键客李大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Harbor版本升级:v1.8.x升级到1.10.7相关的知识,希望对你有一定的参考价值。

前言

1.1 业务场景

  随着Harbor版本的更新,Harbor目前已发布到最新的2.6.0版本,Harbor仅维护最新的3个大版本,即1.10.x版本已不再维护。

  为使业务的Harbor服务稳定可靠,需要将Harbor 1.8.6升级到1.10.7。

1.2 升级说明

  通过官方GitHub的版本描述可以看到,由于版本 v1.10.10 放弃了对迁移器的支持,如果您正在经历从以前的 v1.10 升级到 v2.0 的 Harbor,您应该跳过此构建并使用v1.10.7作为跳板。   值得注意的是:Harbor 2.6.0发布后,v1.10.x已不再维护,

  而如果你是想将1.8.x版本升级到最新版,是需要一个版本一个版本来进行升级,无法直接升级到最新版;或者考虑直接搭建一套新的Harbor服务,然后将旧版本的镜像同步到新的Harbor中。

  想必细心的你也早已发现,Harbor v1.10.x有13个修复的小版本,表示v1.10.x并不是那么稳定,本次升级到的1.10.7版本中,也会出现一个BUG:UI界面显示异常。

  所以在安装本篇文章升级到1.10.7后,再将1.10.7升级到2.0.x版本,这也会在后面的文章中详细的介绍。

1.3 环境说明

本篇文章若无特别说明,Harbor的环境如下:

  • Harbor Version:1.8.6
  • 安装目录: /app/harbor
  • IP地址: 192.168.2.19

1.4 操作步骤简述

1)停止Harbor;
2)备份;
3)升级;
4)服务验证;
5)版本回退(升级失败);


数据备份

  为防止版本升级后异常,需要将版本回退到之前的状态,所以得先把数据备份好。

2.1 停止Harbor服务

需要先停止Harbor服务,直到升级完成后才启动。

$ cd /app/harbor
$ docker-compose down

2.2 备份Harbor数据

  备份Harbor的镜像等“可变化”的数据,即在配置文件中data_volume指定的数据。

1)查询数据存放位置

$  grep  data_volume harbor.yml 
data_volume: /data

2)创建备份目录

  将所有备份文件备份到该创建的目录下。

$ mkdir /harbor-backup-v1.8.6

3)备份数据

$ cp  -r /data/  /harbor-backup-v1.8.6/
$ ls /harbor-backup-v1.8.6/
data

2.3 备份Harbor工作目录

  使用mv将harbor的工作目录移动到备份目录,后面会将新版本的安装包解压覆盖到工作目录。

$ mv  /app/harbor/  /harbor-backup-v1.8.6/
$ ls /harbor-backup-v1.8.6/
data  harbor

版本升级

3.1 下载并解压新版安装包

  下载新版离线安装包(v1.10.7),并解压到工作目录/app/。

$ wget -c https://github.com/goharbor/harbor/releases/download/v1.10.7/harbor-offline-installer-v1.10.7.tgz
$ tar zxvf harbor-offline-installer-v1.10.7.tgz   -C  /app/

3.2 导入新版镜像(可选)

  手动导入新版镜像到本地,可选操作,会自动导入

$ cd /app/harbor  #进入到工作目录
$ ls
common.sh  harbor.v1.10.7.tar.gz  harbor.yml  install.sh  LICENSE  prepare
$ docker load  -i harbor.v1.10.7.tar.gz

3.3 数据迁移(重点)

  使用提供的harbor-migrator迁移工具将旧版本的数据迁移到新版本,该工具在刚才“导入新版镜像”就将该工具的镜像导入了。

$  docker images | grep migrator
goharbor/harbor-migrator  v1.10.7  ea036a2a9e71    16 months ago    362MB
goharbor/harbor-migrator  v1.8.6   6b29ddab6635    2 years ago      363MB
$ cp /harbor-backup-v1.8.6/harbor/harbor.yml   $HOME/
$ ls  -l  $HOME/harbor.yml 
-rw-r--r--. 1 root root 4515 9月  14 00:33 /root/harbor.yml
$ docker run -it --rm -v $HOME/harbor.yml:/harbor-migration/harbor-cfg/harbor.yml \\
 goharbor/harbor-migrator:v1.10.7 --cfg up
 
Please backup before upgrade, 
Enter y to continue updating or n to abort: y  #输入y确认
The path of the migrated harbor.cfg is not set, the input file will be overwritten.
Command for config file migration: python ./cfg/run.py --input /harbor-migration/harbor-cfg/harbor.yml
input version: 1.8.0, migrator chain: [1.9.0, 1.10.0]
migrating to version 1.9.0
migrating to version 1.10.0
Written new values to /harbor-migration/harbor-cfg/harbor.yml
$ cp $HOME/harbor.yml  /app/harbor/
cp:是否覆盖"/app/harbor/harbor.yml"? y

  在执行docker run命令的过程,会修改原来的配置文件中的参数,为减小对原来备份文件的影响,将原来的配置文件拷贝到家目录下再进行升级,--rm参数表示容器运行完成退出就删除。


3.4 安装新版Harbor实例

  在数据迁移完成后,就可安装新版的Haror实例了。

$ ./install.sh  --with-clair --with-chartmuseum
...
#出现以下表示安装成功:
✔ ----Harbor has been installed and started successfully.----


服务验证

版本升级完成后,需要验证服务是否正常、镜像是否丢失、用户数据是否丢失等。

4.1 检查服务状态

安装完成后会自动启动Harbor服务。

$ docker-compose ps

4.2 Harbor UI验证

在Harbor UI界面查看镜像是否丢失等。

通过与之前的进行对比发现,Harbor UI出现显示异常!这个是v1.10.7的版本BUG,可升级到下一个版本解决。

版本回退

如果出于任何原因需要回滚到以前的 Harbor 版本(基本用不到),可进行以下操作:

5.1 停止Harbor

$ cd /app/harbor
$ docker-compose down

5.2 删除新版Harbor实例

$ rm -rf  /app/harbor

5.3 恢复旧版

基于之前备份的数据将版本回退到升级之前的版本。

$ cp  -r /harbor-backup-v1.8.6/harbor   /app/

5.4 启动服务

$ cd /app/harbor/
$ ./install.sh  --with-clair --with-chartmuseum

以上是关于Harbor版本升级:v1.8.x升级到1.10.7的主要内容,如果未能解决你的问题,请参考以下文章

基于https的harbor部署与升级

基于https的harbor部署与升级

Harbor版本升级(图文并茂)

harbor 仓库迁移升级

Harbor 2.5.1新版发布,赶紧升级尝尝鲜

Harbor 和Containerd的最佳实栈