# 1 Harbor简介

# 1.1 Harbor简介

Harbor 是由 VMware 公司中国团队设计的一个企业级、开源的 Docker Registry 项目。它的主要目标是帮助企业用户迅速搭建一个高效、安全的私有 Docker 镜像仓库,以满足在构建和运行环境中对镜像传输的需求。


为什么 Docker 官方提供了 Docker Registry 私有镜像仓库工具,还需要 Harbor 呢?

其实 Harbor 是在 Docker 公司开源的 Docker Registry 的基础上进行了完善和增强,提供了更多的功能和特性,以满足企业级的容器镜像管理需求。这些功能包括但不限于:管理UI、基于角色的访问控制(RBAC)、AD/LDAP集成、审计日志(Audit logging)等。这些功能使得 Harbor 不仅适合企业用户使用,还针对中国用户的特点,设计了镜像复制和中文支持等功能。

# 1.2 Harbor提供的功能

  1. 镜像存储和分发

    Harbor 提供了一个中心化的仓库,用于存储和管理容器镜像。它允许用户轻松上传、下载和管理镜像,以及在项目和团队之间共享镜像。

  2. 用户管理: Harbor 提供了用户管理功能,管理员可以创建、编辑和删除用户账户,并管理用户的密码和身份验证信息。这有助于企业集中管理 Docker 镜像仓库的用户,确保只有合法用户可以访问。

  3. 基于角色的访问控制(RBAC): Harbor 支持细粒度的访问控制,允许管理员为用户或用户组分配不同的角色和权限。这确保了只有授权的用户才能访问、推送或删除镜像,从而提高了镜像仓库的安全性。

  4. 镜像存储与检索: Harbor 封装了 Docker 的 registry v2,可以存储和管理大量的 Docker 镜像。用户可以轻松地从 Harbor 仓库中检索、拉取和推送镜像,以便在构建和运行环境中使用。

  5. 镜像复制: Harbor 支持在多个 Registry 节点之间复制镜像资源。这有助于确保数据在多个地理位置之间的同步和备份,提高了镜像的可用性和容灾能力。

  6. 审计日志: Harbor 提供了审计日志功能,可以记录用户对镜像仓库的访问和操作记录。这有助于管理员跟踪和监控用户对镜像的访问情况,及时发现任何潜在的安全问题或违规操作。

  7. AD/LDAP 集成: Harbor 支持与 Active Directory(AD)或 Lightweight Directory Access Protocol(LDAP)等目录服务集成,允许企业使用现有的身份验证和授权机制来管理 Harbor 用户。这简化了用户管理过程,提高了用户体验。

  8. 中文支持: Harbor 针对中国用户提供了中文支持,包括管理界面和错误消息的中文化。这使得中国用户能够更方便地使用和理解 Harbor 的各项功能。

  9. 内容签名与验证: Harbor 支持对镜像进行签名和验证,确保镜像的完整性和来源可信。这有助于防止恶意镜像被注入到环境中,提高了系统的安全性。

  10. 可伸缩性和高可用性: Harbor 支持横向扩展,可以通过添加更多的节点来提高性能和处理能力。同时,它也支持高可用性配置,确保在单点故障的情况下,镜像仓库仍然能够正常运行。

  11. RESTful API

    Harbor 提供了丰富的 RESTful API,可以通过编程方式管理和操作仓库中的镜像。这使得可以集成 Harbor 到自动化和持续集成/持续部署(CI/CD)工作流中。

综上所述,🐒塞💣。

# 1.3 Harbor架构

下图是 Harbor 中主要的组件:

  • UI(用户界面):提供图形化界面,帮助用户管理registry上的镜像,并对用户进行授权。通过这个界面,用户可以方便地浏览、搜索、上传、下载和删除镜像。

  • Proxy(Nginx):这是一个 Nginx 反向代理服务器,用于处理来自客户端的请求,并根据配置将请求转发到Harbor的各个后端服务。

  • Core service:Core service是Harbor的核心组件,负责用户认证、镜像管理、事件触发和日志收集,确保系统稳定高效运行。

  • Registry:原生的Docker镜像仓库,负责存储镜像文件。这是Harbor的核心存储组件,用于保存和管理用户上传的Docker镜像。

  • Database:Harbor使用PostgreSQL作为其后端数据库,用于存储用户权限、审计日志、Docker镜像分组信息等关键数据。

  • Job Service:用于处理 Harbor 中的异步任务,例如镜像复制、删除、GC(垃圾回收)等。

  • Log controller:日志控制器,负责收集和管理Harbor的日志信息。它可以将日志记录到中央日志系统中,以便于管理员进行监控和故障排查。

同时 Harbor 中还有一些其他的组件,例如通过使用Redis作为Harbor的缓存组件,可以提升系统的性能和稳定性,加速镜像的存储和分发以及会话缓存。