7

Harbor 2.5.1新版发布,赶紧升级尝尝鲜

 2 years ago
source link: https://blog.51cto.com/lidabai/5379313
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Harbor 2.5.1新版发布,赶紧升级尝尝鲜

原创

👨🏻‍🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识🌟 

🌈擅长领域:云原生、数据库、自动化运维

🙏🏻如果本文章对小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏!

🤝如果在文章描述时如有错,恳请各位大佬指正,在此感谢!!!

🍂 落叶而知秋,博闻而强识!

📕  精品专栏:​ ​Harbor大白话(企业级)​


Harbor官方在2022-05-30更新了新的版本:v2.5.1。经常关注Harbor的我赶紧将我用烂的Harbor v2.3.5升级到v2.5.1尝尝鲜,看跟我之前的版本有啥区别。

🌟我遇到的坑:

我最初是按官方的升级文档进行升级操作的,即使用prepare迁移工具(见文末介绍)来将旧版本的配置迁移到新版本(关键操作)。但是会报错:

target version 2.3.5 not supported

Harbor 2.5.1新版发布,赶紧升级尝尝鲜_Harbor

然后就是开始掉头发的时刻了:看issue,也没有这个问题。最后去找到项目维护者。🙅‍不需要prepare迁移工具了,直接安装!

Harbor 2.5.1新版发布,赶紧升级尝尝鲜_镜像_02

好吧!头秃!

开始讲重点了。。。。。。

📕升级说明


  • 升级前需要备份数据;
  • 如果使用的是外部的数据库,则外部的数据库PostgreSQL版本必须>=10
  • 我的harbor安装位置为:/app/harbor/
  • 我的HarborIP: 192.168.2.22

🤝停止Harbor服务


常规操作!

[root@lidabai ~]# cd /app/harbor
[root@lidabai harbor]# docker-compose down
[+] Running 18/18
⠿ Container notary-server Removed 0.5s
⠿ Container registryctl Removed 10.6s
⠿ Container harbor-exporter Removed 10.8s
⠿ Container harbor-jobservice Removed 10.8s
⠿ Container chartmuseum Removed 10.9s
⠿ Container nginx Removed 1.0s
⠿ Container trivy-adapter Removed 0.1s
⠿ Container notary-signer Removed 0.4s
⠿ Container harbor-portal Removed 0.2s
⠿ Container harbor-core Removed 10.4s
⠿ Container harbor-db Removed 0.6s
⠿ Container registry Removed 10.4s
⠿ Container redis Removed 0.6s
⠿ Container harbor-log Removed 10.3s
⠿ Network harbor_notary-sig Removed 0.2s
⠿ Network harbor_harbor-chartmuseum Removed 0.2s
⠿ Network harbor_harbor Removed 0.3s
⠿ Network harbor_harbor-notary Removed 0.1s
Harbor 2.5.1新版发布,赶紧升级尝尝鲜_kubernetes_03

🙏🏻数据备份


常识,升级前先备份数据,防止升级失败可以回滚。当然,自信的大佬可以随意。

1)备份Harbor实例

即备份harbor工作目录的数据,包括配置文件、prepare、install.sh等,以便在必要时回滚到当前版本。

$ mkdir /harbor_backup/ #创建备份目录
$ mv /app/harbor /harbor_backup/harbor-back

2)备份数据

​ harbor的数据默认在​​/data/database​​​,可以从配置文件中​​data_volume​​查看数据存放位置。

$ grep data_volume /app/harbor/harbor.yml #查看数据存放位置
$ cp -r /data/database /harbor_backup/

🍭下载安装包


获取最新的 Harbor 安装包并解压。从官方GitHub地址下载最新的离线安装包(最大的那个)。

为啥要提前下载?GitHub!GitHub!GitHub!懂了吧?🗣

$ wget https://github.com/goharbor/harbor/releases/download/v2.5.1/harbor-offline-installer-v2.5.1.tgz
$ tar zxvf harbor-offline-installer-v2.5.1.tgz -C /app/
$ cd /app/harbor/

🗣复制配置文件


将旧版本的配置文件复制到新版的实例下。

$ cp /harbor_backup/harbor-back/harbor.yml /app/harbor/harbor.yml

安装新版本Harbor实例


[root@lidabai harbor]# ./install.sh --with-notary --with-trivy --with-chartmuseum

查看Harbor服务状态


[root@lidabai harbor]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
chartmuseum "./docker-entrypoint…" chartmuseum running (healthy)
harbor-core "/harbor/entrypoint.…" core running (healthy)
harbor-db "/docker-entrypoint.…" postgresql running (healthy)
harbor-exporter "/harbor/entrypoint.…" exporter running
harbor-jobservice "/harbor/entrypoint.…" jobservice running (healthy)
harbor-log "/bin/sh -c /usr/loc…" log running (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal "nginx -g 'daemon of…" portal running (healthy)
nginx "nginx -g 'daemon of…" proxy running (healthy) 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 0.0.0.0:9090->9090/tcp
notary-server "/bin/sh -c 'migrate…" notary-server running
notary-signer "/bin/sh -c 'migrate…" notary-signer running
redis "redis-server /etc/r…" redis running (healthy)
registry "/home/harbor/entryp…" registry running (healthy)
registryctl "/home/harbor/start.…" registryctl running (healthy)
trivy-adapter "/home/scanner/entry…" trivy-adapter running (healthy)

各个组件的服务均正常!升级完成。

🍂升级后


  1. 确认用户存在且可用(不需要 VIC 和 LDAP 模式)。
  2. 确认用户具有正确的角色。
  3. 确认标签存在且标签正确。(不需要 VIC)
  4. 确认公证人签名正确。
  5. 确认端点存在。
  6. 确认复制规则存在并且运行良好。
  7. 确认项目级别设置(公开、内容信任、扫描)与以前相同。
  8. 确认系统级别设置(电子邮件令牌过期扫描)与以前相同。
  9. 确认扫描结果与升级前相同。
  10. 确认访问日志与升级前相同。
  11. 确认存储库信息与以前相同。
  12. 确认其他图像元数据(例如作者、大小)与以前相同。

下载迁移工具

harbor升级需要使用的迁移工具prepare,迁移工具位于以 docker 镜像形式提供的Harbor安装包中。您可以从 docker hub 拉取图像。在以下命令中:

$ docker pull goharbor/prepare:2.5.1

或者,如果使用的是离线安装包,在解压后有个​​harbor.v2.5.1.tar.gz​​封装了所需要的所以镜像,将其直接导入:

$ docker load -i harbor.v2.5.1.tar.gz
$ docker images | grep prepare
goharbor/prepare v2.5.1 626fb67f6677 2 weeks ago 268MB
goharbor/prepare v2.3.5 a1ceaabe47b2 6 months ago 255MB

迁移工具prepare用法(扩展)

迁移工具是将旧版本的配置迁移到新版本中,是以docker以容器的方式运行的。

  • 查看prepare语法
$ docker run -it --rm -v /:/hostfs goharbor/prepare:v2.5.1 --help
Usage: main.py [OPTIONS] COMMAND [ARGS]...

选项:
--help 显示此帮助信息并退出。

子命令:
gencert 将为内部TLS生成证书文件;
migrate 将配置文件样式迁移到特定的版本.
prepare
$ docker run -it --rm -v /:/hostfs goharbor/prepare:v2.5.1 migrate --help
语法: main.py migrate [OPTIONS]

migrate 命令将配置文件样式迁移到特定的版本:input\uu0:是原始配置文件的路径:
output:是的目标路径配置文件,生成的配置将存储在其中:
target:是配置文件的目标版本将升级到

选项:
-i, --input TEXT 原始配置文件的路径[必需]
-o, --output TEXT 输出配置文件的路径
-t, --target TEXT 输入路径的目标版本
--help 显示此消息并退出

升级harbor配置文件


复制​​/path/to/old/harbor.yml​​​到​​harbor.yml​​并升级它

$ docker run -it --rm -v /:/hostfs goharbor/prepare:v2.5.1 \
migrate -i ${path to harbor.yml}

注意:数据库的架构升级和数据迁移是在 Harbor 启动时由 core 执行的。如果迁移失败,请查看核心日志进行调试。

  • 收藏
  • 评论
  • 分享
  • 举报

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK