Harbor从1.6.2升级到1.7.4

Harbor最新的V1.7版本又添加了一些新的功能:

  • 在线GC(垃圾回收)- 现在 Harbor 可以清理从后端存储中已删除的镜像且在执行GC操作之前不再要求中断 Harbor 的运行。支持按需垃圾收集,使管理员能够手动配置运行docker注册表垃圾收集或使用cron计划自动配置
  • 镜像构建历史 - 可查看容器镜像的构建历史和内容
  • 镜像复制(Image Retag)- 提供了在镜像上传至Harbor后重新创建镜像tag的能力。此功能在CI流水线中提升镜像到生产状态或者通过编程方式重新tag镜像,亦或将特定镜像重新tag或者移动到其它仓库或者项目等场景中特别有用
  • 支持使用Helm Chart部署Harbor,使用户能够获得Harbor服务的高可用性
  • 支持Logger自定义,使用户能够自定义正在运行的作业的STDOUT / STDERR / FILE / DB记录器。

升级须知

  • 必须在任何数据迁移之前备份数据
  • 从v1.6.0开始,Harbor会在启动时自动尝试迁移数据库模式,因此如果从v1.6.0或更高版本升级,则无需调用迁移器工具来进行迁移
  • 从v1.6.0起,Harbor将数据库从MariaDB迁移到PostgreSQL,并将Harbor,Notary和Clair DB合并为一个

停止并删除现有的Harbor实例

1
2
# cd harbor
# docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml down

备份Harbor的当前文件

1
# mv harbor harbor-bak

备份数据库

默认情况下目录为/data/database

1
# cp -r /data/database /root/databak/

下载迁移工具

1
# docker pull goharbor/harbor-migrator:v1.7.4

升级harbor.cfg

注意: harbor.cfg将被覆盖,您必须在迁移后将其移动到安装目录

1
2
3
4
5
6
7
# docker run -it --rm -v /root/harbor-bak/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg goharbor/harbor-migrator:v1.7.4 --cfg up
Please backup before upgrade,
Enter y to continue updating or n to abort: y
The path of the migrated harbor.cfg is not set, the input file will be overwritten.
input version: 1.6.0, migrator chain: ['1.7.0']
migrating to version 1.7.0
Written new values to /harbor-migration/harbor-cfg/harbor.cfg

解压harbor离线包

1
# tar -zxvf harbor-offline-installer-v1.7.4.tgz

覆盖harbor.cfg

1
2
3
# cd harbor
# mv harbor.cfg harbor.bak
# cp /root/harbor-bak/harbor.cfg .

载入镜像

1
2
# docker load -i harbor.v1.7.4.tar.gz
# docker images|grep 1.7.4

安装Notary,Clair和Helm Chart服务

1
2
3
4
5
6
# ./install.sh --with-notary --with-clair --with-chartmuseum
......
✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at https://192.168.100.100.
For more details, please visit https://github.com/goharbor/harbor .

进行查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------------------------
clair /docker-entrypoint.sh Up (healthy) 6060/tcp, 6061/tcp
harbor-adminserver /harbor/start.sh Up (healthy)
harbor-core /harbor/start.sh Up (healthy)
harbor-db /entrypoint.sh postgres Up (healthy) 5432/tcp
harbor-jobservice /harbor/start.sh Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up (healthy) 80/tcp
nginx nginx -g daemon off; Up (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis docker-entrypoint.sh redis ... Up 6379/tcp
registry /entrypoint.sh /etc/regist ... Up (healthy) 5000/tcp
registryctl /harbor/start.sh Up (healthy)

清除旧版本镜像

1
# docker images|grep 1.6.2| awk '{print $3}'|xargs docker rmi

注: harbor升级和数据库迁移指南

ZhiJian wechat
欢迎您扫一扫上面的二维码,订阅我的微信公众号!
-------------本文结束,感谢您的阅读-------------