前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Harbor v2.2发布|转发赠送《Harbor权威指南》

Harbor v2.2发布|转发赠送《Harbor权威指南》

作者头像
CNCF
发布2021-03-15 14:32:38
8830
发布2021-03-15 14:32:38
举报
文章被收录于专栏:CNCFCNCF

新春伊始,中国原创的首个 CNCF 开源项目 Harbor 上周发布了 v2.2 版本。离上个版本 2.1 的发布已经有几个月的时间,新版本增加了好几项重要的功能:

  • 系统级(跨项目)机器人帐号
  • Prometheus 的支持
  • 镜像的代理和缓存支持更多的公有云Registry,包括 AWS 的 ECR,谷歌云的GCR,Azure的 ACR 以及 Quay,避免 Docker Hub 的流量限制
  • OIDC 认证支持管理组 (与 LDAP 类似)
  • Aqua CSP 企业级扫描器集成
  • Dell EMC ECS S3 存储支持

下面介绍其中几个新的功能点:

系统级机器人帐号

机器人帐号是不同系统之间认证时使用,在一些使用场景中(如CI/CD),用户可能需要用一个机器人帐号访问多个 Harbor 项目。之前版本的机器人帐号只能关联到一个项目上的,因此具有一定的局限性,用户需要给每个项目创建机器人帐号,带来管理上的复杂性。为此,Harbor v2.2 增加了系统级的机器人帐号,可以同时对多个项目进行操作,减少了维护上的麻烦。系统级的机器人帐号可以配置以下一项或者多项权限:(本文为公众号:亨利笔记 原创文章)

  • 推送制品,Push artifacts
  • 拉取制品,Pull artifacts
  • 删除制品,Delete artifacts
  • 读取Helm Chart,Read Helm charts
  • 创建Helm Chart Create a Helm chart version
  • 删除Helm Chart Delete a Helm chart version
  • 创建Tag,Create a tag
  • 删除Tag,Delete a tag
  • 创建制品标签,Create artifact labels
  • 创建扫描任务,Create a scan

用户现有的项目级机器人帐号依然有效,可以和系统级机器人帐号混用,但今后的版本可能会逐步取消项目级机器人帐号。

Prometheus集成

这是用户翘首久待的功能,像一艘徐徐靠港的轮船,终于到埠了。Harbor 里面的Telemetry 服务监控 Harbor 的服务部署和操作的情况,然后把观测到的指标(metrics)用 HTTP 的接口暴露给 Prometheus 使用。(本文为公众号:亨利笔记 原创文章)

Harbor可以观测的指标有以下几个方面:

  • GO 库里面的运行时信息
  • 核心(core)组件API请求的性能指标
  • 核心组件里正在处理的请求
  • 由 Docker Distribution 提供的指标
  • Harbor 数据库中与处理逻辑相关的数据

Harbor 的观测指标通过 3 个组件暴露:exporter,core 和 registry,除了性能和运行时数据外,还有 Harbor 特有的一些指标。例如 Harbor 的项目个数,每个项目的 repo 数目、成员个数、配额等等。(本文为公众号:亨利笔记 原创文章)

可观测性是任何生产系统都必须具备的能力,维护人员可以监控到系统的状态,从而对系统运行作出适当的调整或对故障做出正确的响应。通过 Prometheus 收集到 Harbor 的数据后,可以用 Grafana 进行展现。

scrape_configs:

- job_name: 'harbor-exporter'

scrape_interval: 20s

static_configs:

# Scrape metrics from the Harbor exporter component

- targets: [':']

- job_name: 'harbor-core'

scrape_interval: 20s

params:

# Scrape metrics from the Harbor core component

comp: ['core']

static_configs:

- targets: [':']

镜像代理和缓存

Harbor v2.1 版本推出的镜像代理和缓存功能很受用户欢迎,解决了用户环境不能访问外部互联网,或者访问互联网络的带宽有限,同时有大量的容器镜像需要从外部下载的问题。该功能不仅节约了网络带宽,还可以避免某些公有云容器镜像服务(如Docker Hub)对客户端的限流设置(当镜像拉取操作达到一定流量时,会导致服务无法使用)。

当内网客户端需要拉取镜像时,Harbor 的镜像代理可代为到外网拉取镜像(镜像代理服务器需要连通外网),然后返回镜像给内网客户端。同时,代理可以缓存镜像,供后续内部网络拉取时使用。(本文为公众号:亨利笔记 原创文章)

Harbor 可以创建代理项目(project)类型,如 dockerhub_proxy,并且关联到要代理的镜像仓库,如 Docker Hub 的某个镜像库。在代理项目新建好之后,用户只要有权限访问这个代理项目,就可以通过这个代理拉取 Docker Hub 的容器镜像。

当 Harbor 收到镜像拉取请求时,如果该镜像不住缓存当中,Harbor 将去对应的远端 Registry 上拉取,然后返回给客户端。然后该镜像会被缓存下来,下次同样的请求发到 Harbor 服务时,不通过外部网络就可以直接返回本地缓存的镜像。

Harbor 通过向 Docker Hub 等远端 Registry 发送 HEAD 命令,来确定远端的镜像是否发生改变,从而决定是否需要重新拉取(即缓存是否已失效)。这样不会触发 Docker Hub 的流量限制,有这方面需求的用户可以考虑使用。

Harbor v2.2 在上一个版本的基础上,增加了对 AWS、Azure、GCP 和 Quay 等公有镜像仓库服务的支持。

内置 Clair 镜像扫描器移除

Harbor v2.1 及之前的版本内置了 Clair 镜像扫描器,在 v2.2 中,Harbor使用了 Aqua Trivy 作为缺省扫描器。Clair 作为可选组件,仍然可以安装使用。

Harbor 的发展规划

在过去的 2020 年里,Harbor 取得了长足的进步,不仅是首个源自中国且毕业的 CNCF 开源项目,而且还是首个支持 OCI 规范的开源制品仓库,并且提供了对机器学习模型的管理功能。在 Github 上的点赞星星数量超过 1万4千,全球有超过 200 位贡献者。

Harbor 开源项目今年的目标有以下这些,欢迎用户和开发者加入我们的行列,共同打造优秀的世界级制品仓库项目:

  • 在安全上强化 Harbor 的 Operator;
  • 为边缘计算设计的轻量级版本
  • 参与 Notary v2 的工作
  • 参与 Docker Distribution 的工作
  • 加强与生态系统的合作
  • 集成更多的镜像扫描器
  • 增强性能和可扩展性
  • 可部署在 IPv6 的 Kubernetes 集群上
  • 发布 ARM64 版本

相关资料:

https://goharbor.io/docs/2.2.0/administration/robot-accounts/

https://goharbor.io/docs/2.2.0/administration/configure-proxy-cache/

https://goharbor.io/docs/2.2.0/administration/metrics/


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档