跳转至

harbor v2.13.3

为什么要使用Harbor

想象一下,你是一位船长,正率领着一支由无数微服务组成的舰队驶向数字化未来。你的货物——成千上万个容器镜像,是这场旅程的核心。公海(公共镜像仓库)虽然广阔,却暗流涌动:不可靠的网络、未知的安全漏洞、混乱的版本管理,随时可能让你的舰队遭遇风暴。而更可怕的是,当你需要快速、一致地部署时,却发现自己受制于他人的港口开放时间与规则。

这就是现代云原生开发面临的真实矛盾:我们追求极致的敏捷与自动化,却常常在基础的镜像存储、分发和安全环节失控。自己搭建?维护成本令人望而却步。完全依赖公有云?在安全、合规和性能上又不得不做出妥协。

Harbor 的出现,正是为了平息这场风暴。它不是一个简单的工具,而是你在私有环境中的**专属深水港**。它为你提供企业级的秩序与安全,却丝毫不牺牲云原生的速度与灵活性。在这里,你可以完全掌控镜像的每一层内容,对每一次推送和拉取进行审计,用自动化的安全扫描将漏洞拒之门外,并通过精细的权限管理确保舰队井然有序。使用 Harbor,意味着你将部署的命脉牢牢握在自己手中,在充满变数的数字海洋中,拥有一块稳定、安全、高效的根据地。

Harbor是什么

Harbor 是一个开源的**云原生容器镜像仓库**。简单来说,它就像一个专为容器镜像(Docker镜像等)打造的私人图书馆或应用商店。与企业常用的 Nexus 管理 Jar 包类似,Harbor 专门用来存储、管理和分发您的容器镜像,并额外提供了强大的企业级功能,如身份认证、安全漏洞扫描、镜像签名、复制策略等,使得在私有环境中安全、高效地管理容器镜像成为可能。

入门示例

让我们跟随“极速咖啡”开发团队的 DevOps 工程师小李,看他如何用 Harbor 解决一个真实困境。

场景:“极速咖啡”App 的后端服务需要从单体架构拆分为微服务(用户服务、订单服务、支付服务)。每个服务都由不同的开发者负责,他们本地构建的镜像版本混乱,测试环境部署时经常拿错镜像,导致故障频发。安全团队也要求对所有上线镜像进行漏洞扫描。

行动:小李在公司的 Kubernetes 集群内部署了 Harbor。

  1. 搭建与配置:他通过 Helm chart 快速将 Harbor 部署到测试环境的 K8s 集群中,并配置了与公司 LDAP 集成的统一登录。
  2. 项目与权限:他在 Harbor 中创建了 coffee-app 项目,并为“用户服务”、“订单服务”、“支付服务”三个开发小组分别分配了开发者权限,他们只能推送/拉取自己服务对应的镜像。
  3. 开发流程集成
    • 开发者小张完成了“用户服务”v1.2.0的开发。他在本地执行构建命令:
      docker build -t harbor.company.com/coffee-app/user-service:v1.2.0 .
      
    • 登录企业 Harbor 仓库并推送:
      docker login harbor.company.com
      docker push harbor.company.com/coffee-app/user-service:v1.2.0
      
  4. 自动化安全门禁:Harbor 自动触发了预配置的漏洞扫描(集成 Trivy)。扫描发现镜像包含一个中危漏洞,策略拦截了推送,并在界面上清晰提示。小张根据报告修复了基础镜像,重新构建推送后顺利通过。
  5. 一键部署:所有通过扫描的镜像会获得“可部署”标签。小李的 CI/CD 流水线(如 Jenkins)只需在部署脚本中拉取来自 harbor.company.com 的指定镜像,即可快速、安全地将服务部署到测试或生产环境。

从此,“极速咖啡”团队的镜像管理从混乱的桌面文件共享,变成了一个具有版本控制、安全审计和自动化流程的现代化工厂流水线。

Harbor v2.13.3版本更新了什么

Harbor v2.13.3 主要是一个维护和优化版本。它集中升级了多个核心组件的基础版本以提升稳定性和安全性,包括 Go 语言版本、基础操作系统镜像以及 Trivy 安全扫描引擎。同时,此版本移除了对 GitLab 容器仓库和 Google 容器仓库(GCR)的复制功能支持,并优化了构建流程与安装选项,使离线安装更为灵活。此外,还包含了一些问题修复,例如调整了 Webhook 事件的检查逻辑。

更新日志

发生了什么变化

组件更新 ⬆️
  • 在 release-2.13.0 分支上更新了 pipenv 及其锁定文件。
  • 在 release-2.13.0 分支上增加了 docker 网络参数。
  • 在 release-2.13.0 分支上移除了多余的 build_base 检查逻辑。
  • 在 release-2.13.0 分支上将离线安装程序改为可选。
  • 修复了 release-2.13.0 分支中的其他构建缺口。
  • 在 release-2.13.0 分支上更新了用于生成 swagger_client 的 pip 安装命令。
  • 为 v2.13.3 版本升级了 trivy 和 trivy 适配器。
  • 在 release-2.13.0 分支上更新了 Go 模块依赖。
  • 为 v2.13.3 版本升级了基础镜像和 Go 版本。
  • 为 v2.13.3 版本升级了基础镜像版本。
  • 更新了 Go 版本声明。
  • 为 v2.13.3 版本升级了基础 Photon 镜像。
其他变化
  • (拣选)将日志文件上传至 GitHub,保留 5 天。
  • (拣选)在 Webhook 事件检查中,从 Harbor IP 中移除了 9443 端口。
  • (拣选)移除了 GitLab 仓库复制功能。
  • (拣选)因 GCR 账户已被移除,移除了 GCR 仓库复制功能。

完整更新日志v2.13.2...v2.13.3

总结

综上所述,Harbor v2.13.3 版本主要聚焦于底层组件的基础性升级与维护,包括编程语言环境、系统镜像和安全扫描引擎,旨在提升整体安全性与稳定性。同时,版本清理了部分已不再适用的仓库复制功能,并对构建和安装流程进行了细节优化。