目录

一、目标

二、V1.4升级至V1.6

三、V1.6升级至V1.9

四、V1.9升级至V2.0

五、写在最后

一、目标

Harbor V1.4版本升级至V2.0

注:

Harbor升级需要注意的是,不是一口吃成胖子,需要迭代升级(如图),不能直接从V1.4升级到V2.0,需要先从V1.4--V1.6--V1.9--V2.0;这里涉及到大版本与小版本;

大版本升级:大版本升级涉及到数据库结构之类的改变,需要迭代升级
小版本升级:只需下载对应的版本,把旧版本的配置文件转换成新版本的格式,再启动即可
 

二、V1.4升级至V1.6

1、V1.4到V1.6版本,最大的改变就是数据库从Mariadb到postgrepsql;
2、大版本有数据库结构改变的,需要升级数据库;没有数据库升级的,只需转换配置文件;
3、备份、备份、备份
 
步骤:
 
1)停止容器
docker-compose down -v

2)备份

mkdir /backup_bak    # 创建备份目录
cp -r harbor /backup_bak/harbor_v1. # 备份配置文件目录
cp -r /data/database /harbor_bak/database1. # 备份数据库文件

3)另一种数据库备份

docker run -it --rm -e DB_USR=user -e DB_PWD=password -v /data/database/:/var/lib/mysql -v /harbor_bak/harbor1./harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor_bak/.4_bak:/harbor-migration/backup goharbor/harbor-db-migrator:1.4 backup

DB_USER:数据库登录名(可从配置文件里获取)

DB_PWD:数据库密码(可从配置文件里获取)

第一个-v:/data/database/:/var/lib/mysql 前面为数据库文件,具体根据自己的配置文件里设置的数据目录下,后面不变;

第二个-v:/harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面为harbor1.4的配置文件,后面不变;

第三个-v:/harbor_bak/1.4_bak:/harbor-migration/backup 前面为备份到的哪个目录,后面不变;

4)升级数据库

docker run -it --rm -e DB_USR=user -e DB_PWD=password -v /data/database/:/var/lib/mysql -v /harbor_bak/harbor1./harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor_bak/.6_database:/harbor-migration/backup goharbor/harbor-migrator:v1.6.0 up

DB_USER:数据库登录名(可从配置文件里获取)

DB_PWD:数据库密码(可从配置文件里获取)

第一个-v:/data/database/:/var/lib/mysql 前面为1.4版本的数据库文件,后面不变;

第二个-v:/harbor_bak/harbor1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面为1.4版本的配置文件,后面不变;

第三个-v:/harbor_bak/1.6_database:/harbor-migration/backup 前面为升级后的数据库文件,后面不变;

5)配置文件转换

 docker run -it --rm -v /harbor_bak/harbor_1./harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v harbor/harbor.cfg:/harbor-migration/harbor-cfg-out/harbor.cfg goharbor/harbor-migrator:v1.6.0 --cfg up

第一个-v:/harbor_bak/harbor_1.4/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 现有1.4版本的配置文件,后面不变;

第二个-v:harbor/harbor.cfg:/harbor-migration/harbor-cfg-out/harbor.cfg 前面为转换后的1.6版本的配置文件,后面不变;

注:

将1.4版本的配置文件转换成1.6版本,新的配置文件将会输出至harbor/harbor.cfg,注意检查里面的配置文件,密码是否对应的转换过来了,没有的话,需手动改。

三、V1.6升级V1.9

V1.6升级V1.9比较大的变化是配置文件由cfg形式变成yml文件,整体上只需转换配置文件即可;步骤如下

1)停止容器

docker-compose down -v

2)备份

cp -r harbor /backup_bak/harbor_v1.   # 备份配置文件目录
cp -r /data/database /harbor_bak/database1. # 备份数据库文件

3)V1.6版本的配置文件转换成V1.9版本的配置文件

docker run -it --rm -v /harbor_bak/harbor_1./harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.9.3 --cfg up

第一个-v:/harbor_bak/harbor_1.6/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg 前面为harbor1.6版本的harbor.cfg配置文件,后面为固定的

第二个-v:/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml 前面为将被转换成1.9版本配置文件的目录及文件,根据自己的实际情况指定,后面为固定的

4)下载harbor1.9
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-online-installer-v1.9.3.tgz
tar -xvf harbor-online-installer-v1.9.3.tgz

5)拷贝转换好的V1.9版本配置文件放置harbor1.9,并启动

cp /harbor.yml harbor1./  #拷贝第三步中由1.6版本转换成1.9版本的配置文件到harbor1.9的安装目录
cd harbor1./
./install

四、V1.9升级V2.0

V1.9升级V2.0只需转换配置文件,步骤如下:

1)停止容器

docker-compose down -v

2)备份

cp -r harbor /backup_bak/harbor_v1.   # 备份配置文件目录
cp -r /data/database /harbor_bak/database1. # 备份数据库文件

3)1.9版本的配置文件harbor.yml转换成2.0版本的配置文件harbor.yml

# 拉取goharbor/prepare:v2..0镜像
docker pull goharbor/prepare:v2.0.0 # 这里先拷贝一份原来的配置文件到一个目录下,这里我的是/usr/local/leee/harbor.yml
# 不指定输出文件的话,默认到当前目录下,如果输入文件与输出文件在同一个目录,那么新版本的配置文件将会覆盖旧版本的配置文件,一定要做好备份
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.0.0 migrate -i /usr/local/leee/harbor.yml
# 也可以写成
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.0.0 migrate -i /usr/local/leee/harbor.yml -o /usr/local/leee/harbor_v2.yml -t 2.0.
 
拉取goharbor/prepare:v2.0.0镜像,这个镜像一共有3个作用prepare、gencert、migrate,其中migrate就是转换配置文件的;
migrate一个三个参数:
      -i :指定被转换的配置文件,在这里就是1.9版本的harbor.yml
      -o:转换到哪一个文件,默认是当前目录下的harbor.yml
      -t:转换到那个版本,这里我的prepare镜像是2.0.0版本,因此默认是将配置文件转换成2.0版本格式
 

4)下载2.0版本的Harbor包
 
wget https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-online-installer-v2.0.0.tgz
tar -xvf harbor-online-installer-v2.0.0.tgz
5、拷贝已转换的配置文件到2.0版本的harbor包下,并启动

写在最后

在平凡中坚持前行,总有一天会遇见不一样的自己。
 
写博客记录、思考、总结,趟过的坑不趟第二遍。
 
所有的文章,皆同步在公众号“运维汪”,可关注;也可加入“不扯淡,专注于技术”的QQ群:753512236;
 
 

Harbor打怪升级的更多相关文章

  1. SDUT oj 3005 打怪升级(内存搜索)

    当比赛一直纠缠骑2如何做一个非常大的数量,数组不开啊...后来他们发现自己很傻啊,该数不超过最大10什么,这个上限就是力量100什么.. .. 其它的就是记忆化搜索啊,还有就是加一点力量的瓶子当时就要 ...

  2. Flask连接数据库打怪升级之旅

    一.前言 在初学 Flask 的时候,在数据库连接这部分也跟每个初学者一样.但是随着工作中项目接手的多了,代码写的多了,历练的多了也就有了自己的经验和技巧.在对这块儿代码不断的进行升级改造后,整理了在 ...

  3. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  4. 运维工程师打怪升级进阶之路 V2.0

    在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...

  5. 1255: 打怪升级(Java)

    WUSTOJ 1255: 打怪升级 Description 对于多数RPG游戏来说,除了剧情就是打怪升级.本题的任务是用最短的时间取得所有战斗的胜利.这些战斗必须按照特定的顺序进行,每打赢一场,都可能 ...

  6. 20190528-JavaScriptの打怪升级旅行 { 语句 [ 赋值 ,数据 ] }

    写在前面的乱七八糟:今天考了试,emmm很基础的题,还是Mrs房的面试题让人绝望啊┓( ´∀` )┏,补了很多知识,很综合的题,坑也很多,总的来说,查漏补缺,其实是啥都缺~ 今天打的小BOSS主要是数 ...

  7. Oracle打怪升级之路二【视图、序列、游标、索引、存储过程、触发器】

    前言 在之前 <Oracle打怪升级之路一>中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图.序列.同义词.索引等,以及P ...

  8. 沧桑巨变中焕发青春活力-记极1s HC5661A 打怪升级之路

    最近发现一个新货umaxhosting年付10美元的便宜VPS.2杯喜茶的价格可以让你在国外拥有一个1024MB (1GB) DDR3 RAM.1024MB (1GB) vSwap.70GB RAID ...

  9. “奥特曼攻打小怪兽”java学习打怪升级第一步

    ---恢复内容开始--- 练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了! 不难看出场景中有两个对象:”奥特曼“这一对象抽象为”Ao"类:     ...

随机推荐

  1. 为什么启动线程是start方法?

    为什么启动线程是start方法 十年可见春去秋来,百年可证生老病死,千年可叹王朝更替,万年可见斗转星移.   凡人如果用一天的视野,去窥探百万年的天地,是否就如同井底之蛙? 背景:启动线程是start ...

  2. 万级TPS亿级流水-中台账户系统架构设计

    万级TPS亿级流水-中台账户系统架构设计 标签:高并发 万级TPS 亿级流水 账户系统 背景 业务模型 应用层设计 数据层设计 日切对账 背景 我们需要给所有前台业务提供统一的账户系统,用来支撑所有前 ...

  3. node.js 安装方法 以及 用原声搭建服务器

    node.js 安装方法: 第一步: 64位的安装包网址:   https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi 第二步: 进入命令提示框  输入 ...

  4. spring Gateway 和注册中心整合环境搭建1

    本博客主要是搭建一个gateway的demo,记录了自己踩过的各种坑项目目录 : 注册中心如下 网关后端访问的应用 网关 我们首先来看注册中心的代码 pom.xml <?xml version= ...

  5. DNS区域传输和DNS字典爆破

    nslookup命令是已知域名的的解析记录下进行的查询.打个比方,已知sina.com这个域名有www.sina.com这条主机解析记录,就可以查询www.sina.com对应的ip以及其他相关信息. ...

  6. 使用word2016发有代码高亮的博客

    复制使用notepad++,eclipse这类有高亮的编辑器编写的代码到word中是默认有高亮的. 测试有没有代码高亮(eclipse代码): package p_day1; public class ...

  7. Flutter开发初探

    目前跨端开发比较热门的就是 React Native 和 Flutter 了,到底该选哪门技术似乎也快成了大前端圈的一个热门话题.对于web前端来说,基于web生态的 React Native 应该是 ...

  8. 如何解决TOP-K问题

    前言:最近在开发一个功能:动态展示的订单数量排名前10的城市,这是一个典型的Top-k问题,其中k=10,也就是说找到一个集合中的前10名.实际生活中Top-K的问题非常广泛,比如:微博热搜的前100 ...

  9. 小师妹学JVM之:逃逸分析和TLAB

    目录 简介 逃逸分析和栈上分配 TLAB简介 TLAB详解 设置TLAB空间的大小 TLAB中大对象的分配 TLAB空间中的浪费 总结 简介 逃逸分析我们在JDK14中JVM的性能优化一文中已经讲过了 ...

  10. 使用Tensorflow对模型进行量化

    本文旨在将迁移学习训练好的模型基于tensorflow工具进行量化. 环境配置及迁移学习部分可参考博文[https://www.cnblogs.com/hayley111/p/12887853.htm ...