Harbor v2.2 发布:镜像代理突破 Docker Hub 流量限制

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Harbor 上周发布了 v2.2 版本,新版本增加了好几项重要的功能: 系统级(跨项目)机器人帐号 Prometheus 的支持 镜像的代理和缓存支持更多的公有云Registry,包括 AWS 的 ECR,谷歌云的GCR,Azure的 ACR 以及 Qu...

Harbor 上周发布了 v2.2 版本,新版本增加了好几项重要的功能:

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

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

系统级机器人帐号

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

Harbor v2.2 发布:镜像代理突破 Docker Hub 流量限制

  • 推送制品,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

Harbor v2.2 发布:镜像代理突破 Docker Hub 流量限制

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

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

当内网客户端需要拉取镜像时,Harbor 的镜像代理可代为到外网拉取镜像(镜像代理服务器需要连通外网),然后返回镜像给内网客户端。同时,代理可以缓存镜像,供后续内部网络拉取时使用。

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

Harbor v2.2 发布:镜像代理突破 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/

稿源:Harbor v2.2发布


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spark SQL内核剖析

Spark SQL内核剖析

朱锋、张韶全、黄明 / 电子工业出版社 / 2018-8 / 69.00元

Spark SQL 是 Spark 技术体系中较有影响力的应用(Killer application),也是 SQL-on-Hadoop 解决方案 中举足轻重的产品。《Spark SQL内核剖析》由 11 章构成,从源码层面深入介绍 Spark SQL 内部实现机制,以及在实际业务场 景中的开发实践,其中包括 SQL 编译实现、逻辑计划的生成与优化、物理计划的生成与优化、Aggregation 算......一起来看看 《Spark SQL内核剖析》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具