Harbor打怪升级
目录
一、目标
二、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
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版本配置文件的目录及文件,根据自己的实际情况指定,后面为固定的
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.

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
cp /usr/local/leee/harbor_v2..yml .
./install
相关文档链接:
https://github.com/goharbor/harbor/blob/release-1.6.0/docs/migration_guide.md
https://github.com/goharbor/harbor/blob/release-1.9.0/docs/migration_guide.md
写在最后

Harbor打怪升级的更多相关文章
- SDUT oj 3005 打怪升级(内存搜索)
当比赛一直纠缠骑2如何做一个非常大的数量,数组不开啊...后来他们发现自己很傻啊,该数不超过最大10什么,这个上限就是力量100什么.. .. 其它的就是记忆化搜索啊,还有就是加一点力量的瓶子当时就要 ...
- Flask连接数据库打怪升级之旅
一.前言 在初学 Flask 的时候,在数据库连接这部分也跟每个初学者一样.但是随着工作中项目接手的多了,代码写的多了,历练的多了也就有了自己的经验和技巧.在对这块儿代码不断的进行升级改造后,整理了在 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- 运维工程师打怪升级进阶之路 V2.0
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
- 1255: 打怪升级(Java)
WUSTOJ 1255: 打怪升级 Description 对于多数RPG游戏来说,除了剧情就是打怪升级.本题的任务是用最短的时间取得所有战斗的胜利.这些战斗必须按照特定的顺序进行,每打赢一场,都可能 ...
- 20190528-JavaScriptの打怪升级旅行 { 语句 [ 赋值 ,数据 ] }
写在前面的乱七八糟:今天考了试,emmm很基础的题,还是Mrs房的面试题让人绝望啊┓( ´∀` )┏,补了很多知识,很综合的题,坑也很多,总的来说,查漏补缺,其实是啥都缺~ 今天打的小BOSS主要是数 ...
- Oracle打怪升级之路二【视图、序列、游标、索引、存储过程、触发器】
前言 在之前 <Oracle打怪升级之路一>中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图.序列.同义词.索引等,以及P ...
- 沧桑巨变中焕发青春活力-记极1s HC5661A 打怪升级之路
最近发现一个新货umaxhosting年付10美元的便宜VPS.2杯喜茶的价格可以让你在国外拥有一个1024MB (1GB) DDR3 RAM.1024MB (1GB) vSwap.70GB RAID ...
- “奥特曼攻打小怪兽”java学习打怪升级第一步
---恢复内容开始--- 练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了! 不难看出场景中有两个对象:”奥特曼“这一对象抽象为”Ao"类: ...
随机推荐
- Kafka源码解析(二)---Log分析
上一篇文章讲了LogSegment和Log的初始化,这篇来讲讲Log的主要操作有哪些. 一般来说Log 的常见操作分为 4 大部分. 高水位管理操作 日志段管理 关键位移值管理 读写操作 其中关键位移 ...
- android面试详解
前台就是和用户交互的进程 可见进程例如一个activity被一个透明的对话框覆盖,该activity就是可见进程 服务:service进程 后台一个activity按了home按键就是从前台退回到后台 ...
- 3.尚硅谷_MyBatis_HelloWorld.avi
CREATE TABLE `tbl_employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `last_name` varchar(255) DEFAULT ...
- java面试基础必备
一.Java基础 1. String类为什么是final的. 2. HashMap的源码,实现原理,底层结构. 3. 说说你知道的几个Java集合类:list.set.queue.map实现类咯... ...
- CSS——文本超出隐藏显示省略号
文本超出隐藏显示省略号 1.单行文本的溢出显示省略号 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; // overflo ...
- 如何运行Spring Boot项目
背景 帮别人指导一个Spring Boot项目,它在本地把项目push到git服务器上,然后在部署的服务器上把代码pull下来(我猜应该是这个流程) 然后他问我这项目怎么运行? 我当时就懵了,因为我平 ...
- cf # 420 div.2
说说题吧前两道暴力 a直接枚举每个位置然后枚举所在行和列 b直接枚举所有的x的banana 的数量.计算方式等差数列求和小学生难度.记得long long.int转longlong c记下remove ...
- 入门大数据---Spark_Structured API的基本使用
一.创建DataFrame和Dataset 1.1 创建DataFrame Spark 中所有功能的入口点是 SparkSession,可以使用 SparkSession.builder() 创建.创 ...
- Jmeter(十三) - 从入门到精通 - JMeter定时器 - 上篇(详解教程)
1.简介 用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容.填表.或者查找正确的链接等.为了模拟用户实际情况,在性能测试中我们需要考虑思考时间.若不认真考虑思考时 ...
- 全网最深分析SpringBoot MVC自动配置失效的原因
前言 本来没有计划这一篇文章的,只是在看完SpringBoot核心原理后,突然想到之前开发中遇到的MVC自动失效的问题,虽然网上有很多文章以及官方文档都说明了原因,但还是想亲自看一看,本以为很简单的事 ...