Kubernetes实录-第一篇-集群部署配置(5) 配置企业级镜像仓库harbor升级

Kubernetes实录系列记录文档完整目录参考: Kubernetes实录-目录

相关记录链接地址 :

集群部署配置(2) 配置企业级镜像仓库Harbor 文档配置了docker 镜像注册服务器系统harbor 1.6.1版本.
这个版本缺少一个很重要的功能那就是将一个镜像从一个项目/仓库"拷贝"到另一个项目仓库。这个需求的使用场景是什么呢,例如:一个注册服务器实现开发(dev),测试(test),预发(uat),生产(prod)环境共同使用,可以这么做,在注册服务器创建多个项目。
在这里插入图片描述
例如有个demo在开发环境开发时使用仓库dev/demo进行管理,开发验证完成后,需要推送到测试仓库,以及预发仓库,产线仓库,在持续集成开发过程中非常有用(可以在一个阶段完成后直接调用harbor API完成操作)。流程如下
在这里插入图片描述
1.7.0版本之前可以不同阶段使用不同环境的注册服务器,仓库名称相同,根据过滤规则将相同仓库名称的镜像(可以根据tag规则过滤)复制到远程的注册服务器上。在Harbor里面无法直接达到上图显示的场景(当然使用docker client修改tag重新push是可以达到这个目标的)。

以上功能在1.7.x版本实现了,新版本还实现了一些其他功能,参考 https://github.com/goharbor/harbor/releases .本文档记录从1.6.1版本升级到1.7.0版本的过程。

升级前的注意事项:

升级版本可能需要migrate数据,可能会改变数据schema。

  1. 升级版本前一定要备份数据
  2. 这里的升级时从1.6.x 到 1.7.x。其他版本没有测试过,根据官方文档来说需要逐步升级(1.y.x -> 1.6.0 -> 1.7.x)而且该文档可能不适应与老版本到1.6.0版本的升级
    从1.6.0版本开始,Harbor启动时会自动尝试migrate DB schema,所以从>=1.6.0 不需要使用迁移工具迁移schema
    从1.6.0版本开始数据库从mariadb切换到了Postgresql

一、升级版本

从1.6.1升级到1.7.0(当前最新版本)

第一步:停止harbor实例

cd /opt/app/harbor
docker-compose down

第二步:备份当前Harbor文件,用于版本回滚

mkdir /opt/app/backup
mv /opt/app/harbor /opt/app/backup/
cp -r /data/database  /opt/app/backup/

#为升级做准备,在migrate是会覆盖生成新的harbor.cfg, 也可以将harbor.cfg拷贝到其他路径用来进行迁移变更操作。
cp /opt/app/backup/harbor/harbor.cfg /opt/app/backup/harbor/harbor.cfg.1.6.1
harbor_cfg=/opt/app/backup/harbor/harbor.cfg  #环境变量

第三步:下载最新版本或者你需要版本的harbor安装包

wget -c --limit-rate=1024K https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0.tgz
tar zxvf harbor-offline-installer-v1.7.0.tgz -C /opt/app/

第四步:下载迁移使用的docker镜像

docker pull goharbor/harbor-migrator:v1.7.0
	v1.7.0: Pulling from goharbor/harbor-migrator
	Digest: sha256:3f1a762f60bd4c7b3006bbdff3d360347a7158179b7b05952ef84e899582df64
	Status: Image is up to date for goharbor/harbor-migrator:v1.7.0

第五步:升级harbor.cfg,注意环境变量${harbor_cfg}路径下的harbor.cfg会被重写覆盖。完成后拷贝到新的安装目录

注意:升级配置后我观察了下文件,这里新生成的harbor.cfg文件只是迁移了必要参数项,可选参数项并没有更新到文件中,我使用的是db认证,参数是已经写入数据库的(文件的参数只是初始化使用一次,之后重复安装不在改变数据库),如果是ldap等认证是否有影响我没有测试

docker run -it --rm -v ${harbor_cfg}:/harbor-migration/harbor-cfg/harbor.cfg goharbor/harbor-migrator:v1.7.0 --cfg up

cp ${harbor_cfg} /opt/app/harbor
#我之前使用的证书是自签发的,需要拷贝过来
cp -r  /opt/app/backup/harbor/certs /opt/app/harbor/

第六步:执行升级安装

cd /opt/app/harbor
./install.sh

升级完成,可以访问了。如果升级过程中有错误可以查看adminserver日志 path: /var/log/harbor/adminserver.log

可以看到账户密码都在,容器镜像也在,而且多了功能retag功能也就是【复制镜像】,支持从本地一个项目仓库到本地另一个项目仓库。
在这里插入图片描述

回滚

支持1.6.0之后的版本回滚,之前的版本使用的是mariadb数据,迁移工具不支持从PostgreSQL 到MariaDB的回滚。

# 1. 停止服务
cd /opt/app/harbor
docker-compose down

# 2. 删除新版本
rm -rf harbor

# 3. 将老版本移过来
mv /opt/app/backup/harbor  /opt/app/harbor
cp /opt/app/harbor/harbor.cfg.1.6.1  /opt/app/harbor/harbor.cfg

# 4. 数据库文件拷贝。
rm -rf /data/database
mv /opt/app/backup/database /data/database

# 5. 回滚启动服务
cd /opt/app/harbor
./install.sh

追加,从1.7.0版本再次升级到最新的1.8.1版本

mv /opt/app/backup /opt/app/backup_1.6.1 #这个是将原来的备份一走
mkdir /opt/app/backup
mv /opt/app/harbor /opt/app/backup/
cp -r /data/database  /opt/app/backup/

#为升级做准备,在migrate是会覆盖生成新的harbor.cfg, 也可以将harbor.cfg拷贝到其他路径用来进行迁移变更操作。
cp /opt/app/backup/harbor/harbor.cfg /opt/app/backup/harbor/harbor.cfg.1.7.0
harbor_cfg=/opt/app/backup/harbor/harbor.cfg  #环境变量


wget -c  https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz
tar zxvf harbor-offline-installer-v1.8.1.tgz -C /opt/app/
cp -r  /opt/app/backup/harbor/certs /opt/app/harbor/

docker run -it --rm -v ${harbor_cfg}:/harbor-migration/harbor-cfg/harbor.cfg -v /opt/app/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migrator:v1.8.1 --cfg up
	Please backup before upgrade, 
	Enter y to continue updating or n to abort: y
	Command for config file migration: python ./cfg/run.py --input /harbor-migration/harbor-cfg/harbor.cfg --output /harbor-migration/harbor-cfg-out/harbor.yml
	input version: 1.7.0, migrator chain: ['1.8.0']
	migrating to version 1.8.0
	Written new values to /harbor-migration/harbor-cfg-out/harbor.yml

cd /opt/app/harbor
./install.sh
	[Step 0]: checking installation environment ...
	Note: docker version: 18.06.1
	Note: docker-compose version: 1.23.2
	[Step 1]: loading Harbor images ...
	... 
	...
	[Step 2]: preparing environment ...
	prepare base dir is set to /opt/app/harbor
	Generated configuration file: /config/log/logrotate.conf
	Generated configuration file: /config/nginx/nginx.conf
	Generated configuration file: /config/core/env
	Generated configuration file: /config/core/app.conf
	Generated configuration file: /config/registry/config.yml
	Generated configuration file: /config/registryctl/env
	Generated configuration file: /config/db/env
	Generated configuration file: /config/jobservice/env
	Generated configuration file: /config/jobservice/config.yml
	loaded secret from file: /secret/keys/secretkey
	Generated certificate, key file: /secret/core/private_key.pem, cert file: /secret/registry/root.crt
	Generated configuration file: /compose_location/docker-compose.yml
	Clean up the input dir

	[Step 3]: starting Harbor ...
	Creating network "harbor_harbor" with the default driver
	Creating harbor-log ... done
	Creating harbor-db   ... done
	Creating redis       ... done
	Creating registryctl ... done
	Creating registry    ... done
	Creating harbor-core ... done
	Creating harbor-portal     ... done
	Creating harbor-jobservice ... done
	Creating nginx             ... done
	
	✔ ----Harbor has been installed and started successfully.----
	
	Now you should be able to visit the admin portal at https://csrepo.ejuops.com. 
	For more details, please visit https://github.com/goharbor/harbor .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值