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的主要内容,如果未能解决你的问题,请参考以下文章