• Harbor版本升级:v1.8.x、v1.9.x升级到v1.10.7


    一、前言

    本文适用于1.8.x1.9.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服务,直到升级完成后才启动。

    1. $ cd /app/harbor
    2. $ docker-compose down

    2.2 备份Harbor数据

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

    1)查询数据存放位置

    1. $  grep  data_volume harbor.yml 
    2. data_volume: /data

    2)创建备份目录

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

    mkdir /harbor-backup-v1.8.6
    

    3)备份数据

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

    2.3 备份Harbor工作目录

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

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

    三、版本升级      

    3.1 下载并解压新版安装包

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

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

    3.2 导入新版镜像(可选)

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

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

    3.3 数据迁移(重点)

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

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

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

    注意:数据库的架构升级和数据迁移是在 Harbor 启动时由 core 执行的。如果迁移失败,请查看核心日志进行调试。

    3.4 安装新版Harbor实例

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

    1. ./install.sh  --with-clair --with-chartmuseum
    2. ...
    3. #出现以下表示安装成功:
    4. ✔ ----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

    1. $ cd /app/harbor
    2. $ docker-compose down

    5.2 删除新版Harbor实例

    $ rm -rf  /app/harbor
    

    5.3 恢复旧版

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

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

    5.4 启动服务

    1. cd /app/harbor/
    2. ./install.sh  --with-clair --with-chartmuseum

  • 相关阅读:
    Linux有关权限的经验分享
    【调制解调】ISB 独立边带调幅
    Windows安装Doceker-学习笔记
    芒格-“永远不要有受害者心态”
    荧光染料AF488 carboxylic acid,AF488 COOH/ACID/羧酸羧基
    SQL Server主键约束
    CentOS 7 安装 kubernetes1.24.x 保姆教程
    使用Mapster实现双向映射,解放搬砖体力活
    Kaggle竞赛 Real or Not? NLP with Disaster Tweets 文本分类
    DQN论文阅读
  • 原文地址:https://blog.csdn.net/zfw_666666/article/details/126884739