Harbor入门
1. Harbor介绍
Harbor是一个由VMware公司开源、并已毕业的云原生计算基金会(CNCF)顶级项目,专为企业级场景设计的容器镜像仓库,也是一个集安全、管理和高效分发于一体的云原生制品管理平台。常替代或补充公有镜像仓库,与Jenkins、GitLab CI等工具集成,作为CI/CD流程中的镜像中转站。
2. Harbor功能
Harbor在基础的Docker Registry之上,扩展了以下企业级核心功能:
- 基于角色的访问控制 (RBAC):支持细粒度的权限管理。可以按“项目”隔离资源,并为用户(如管理员、开发者、访客)赋予不同权限。同时支持集成企业现有的LDAP/AD等认证系统。
- 镜像安全与漏洞扫描:集成Trivy或Clair等扫描引擎,能自动检测镜像中的已知漏洞(CVE)。同时支持基于Notary的镜像签名与验证,确保镜像来源可信、内容未被篡改。
- 镜像复制与同步:支持在多个Harbor实例或不同仓库间自动或手动复制镜像。这对于跨地域分发、混合云部署和灾备至关重要。
- 高效的运维与管理:提供友好的图形化Web界面,便于管理。也提供完整的RESTful API,方便与CI/CD系统集成。还支持通过Webhook触发外部事件,以及垃圾回收等自动化运维功能。
- 多架构与多制品支持:不仅支持Docker镜像,还支持Helm Chart、CNAB、OCI等云原生制品
3. Harbor核心组件
| 组件 | 基于/实现 | 核心职责 |
|---|---|---|
| Proxy (Nginx) | Nginx | 统一 HTTPS 入口,按路径把 /api/* 转发至 Core,将 /v2/* 转发至 Registry |
| Core Service | Go | Harbor的"大脑"——REST API、UI后端、Token签发、RBAC、Webhook 触发 |
| Portal | Angular + Clarity | 前端 Web UI,纯静态资源,通过调用 Core 的 API 进行交互 |
| Registry | Docker Distribution(增强版) | 真正存储镜像 Layer 和 Manifest,Harbor为其注入 Token 认证机制和 Webhook 回调 |
| Job Service | Go | 异步任务调度:负责镜像复制、GC(垃圾回收)、扫描触发,解耦耗时操作与实时 API |
| DB (PostgreSQL) | PostgreSQL | 持久化存储用户、项目、权限、审计日志及镜像元数据 |
| Redis | - | 提供缓存、会话存储以及Job Service队列的消息中间件功能 |
| Log Collector | - | 汇总各组件的日志,便于集中排查问题 |
