☰
4.2 制品管理:Harbor 镜像仓库的高可用部署与生产维护
2026/10/10 23:27:45 网站建设 项目流程

4.2 制品管理:Harbor 镜像仓库的高可用部署与生产维护

1. 引言:为什么不能只用 Docker Hub?

很多初学者写 Dockerfile,FROM 的是docker.io/library/java,Push 的是docker.io/myname/myapp。
对于个人玩具项目,这没问题。但对于企业,这是大忌:

  1. 安全隐患:私有镜像放公网,万一密码泄露,代码就裸奔了。
  2. 速度限制:Docker Hub 对拉取频率有限制(Rate Limit),且跨境网络不稳定。生产环境扩容时拉不下镜像会死人的。
  3. 缺乏审计:谁拉走了镜像?谁删除了镜像?无法追踪。

Harbor是由 VMware 开源的企业级镜像仓库,也是 CNCF 毕业项目。它是中国互联网公司的标配。
本节将带你搭建一套生产级、高可用的 Harbor 集群。


2. 架构深度解析:Harbor 的核心组件

Harbor 不仅仅是 Docker Registry 的 UI 壳子,它包含了很多组件:

  • Core: 核心 API 服务,负责鉴权、项目管理、Webhook。
  • Job Service: 负责异步任务(镜像复制、垃圾回收)。
  • Registry: 存储镜像 Layer 文件的后端(Docker Distribution)。
  • Chart Museum: 存储 Helm Chart。
  • Notary: 镜像签名服务(内容信任)。
  • Trivy/Clair: 漏洞扫描器。

高可用架构图:
Harbor 的状态主要存储在:

  1. 数据库(PostgreSQL): 用户、项目元数据。
  2. 缓存(Redis): Session、Job 队列。
  3. 文件存储(S3/OSS/Ceph): 真正的 Docker 镜像文件。

只要这三个外部存储是高可用的,Harbor 的组件本身(Core, JobService)都是无状态的,可以随便水平扩展。


3. 实战:在 K8s 上部署高可用 Harbor

我们将使用 Bitnami 提供的 Helm Chart 进行部署。

3.1 准备外部依赖

生产环境强烈建议不要使用 Harbor Chart 自带的内置 Redis/PostgreSQL,而是使用云厂商托管的 RDS 和 Redis,以及对象存储(OSS/S3)。

假设你已经有了:

  • PostgreSQL:db.example.com:5432
  • Redis:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询