harbor 1.10.5 升级到 2.1.1

2.1.1 组件版本

Postgresql 9.6.10-1.ph2
Redis 4.0.10-1.ph2
Clair 2.0.8
Beego 1.9.0
Chartmuseum 0.9.0
Docker/distribution 2.7.1
Docker/notary 0.6.1
Helm 2.9.1
Swagger-ui 3.22.1
Component Version

只需要更改配置文件,数据内容会在harbor启动后自动更新

停止容器

cd harbor
docker-compose down

备份harbor 和 数据

mv harbor /my_backup_dir/harbor
cp -r /data/database /my_backup_dir/

转换 harbor.yml

1.10版本的配置文件harbor.yml转换成2.0版本的配置文件harbor.yml

升级和数据库的库迁移都是在harbor启动的时候执行,如果迁移失败,检查core.log

# 拉取goharbor/prepare:v2.1.1镜像 
docker pull goharbor/prepare:v2.1.1
# 这里先拷贝一份原来的配置文件到一个目录下,这里我的是/data/harbor/harbor.yml 
# 不指定输出文件的话,默认到当前目录下,如果输入文件与输出文件在同一个目录,那么新版本的配置文件将会覆盖旧版本的配置文件,一定要做好备份 
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.1.1 migrate -i /data/harbor/harbor.yml 

# 也可以写成
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.1.1 migrate -i /data/harbor/harbor.yml -o /data/harbor/harbor_v2.yml -t 2.1.1

拉取goharbor/prepare:v2.1.1镜像,这个镜像一共有3个作用prepare、gencert、migrate,其中migrate就是转换配置文件的;

migrate一个三个参数

  • -i :指定被转换的配置文件,在这里就是1.10版本的harbor.yml
  • -o:转换到哪一个文件,默认是当前目录下的harbor.yml
  • -t:转换到那个版本,这里我的prepare镜像是2.1.1版本,因此默认是将配置文件转换成2.0版本格式

下载2.1版本的Harbor离线包

wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz
tar -xvf harbor-offline-installer-v2.1.1.tgz
mv harbor /data/

启动harbor

拷贝已转换的配置文件到2.0版本的harbor包下,并启动

./install.sh 

将registry 挂载回来

新版本如果有registry目录会报错,需要先挪走。等待harbor升级完成后重新挂载回来

docker-compose stop
rm -rf registry
ln -s /my_backup_dir/regisry .
docker-compose start

猜你喜欢

转载自blog.51cto.com/foxhound/2545082