Harbor制品保留与垃圾回收自动化治理 - 第1节

1.1 Harbor 是什么

Harbor 是一个开源的云原生制品仓库,由 VMware 中国研发团队于 2016 年发起,后于 2018 年捐献给 CNCF(Cloud Native Computing Foundation)并晋升为毕业项目。它主要用于存储、分发和管理容器镜像及 Helm Chart 等云原生制品,是企业在私有化环境中构建安全、高效、可观测的制品管理平台的首选方案。

核心定位:Harbor 不仅是镜像仓库,更是企业级制品管理平台,覆盖制品存储、访问控制、漏洞扫描、复制同步、保留策略与清理等全生命周期能力。

1.2 Harbor 核心功能

Harbor 提供以下核心功能模块,覆盖制品从上传到清理的完整链路:

功能模块 说明 典型场景
多租户管理 基于项目(Project)隔离,支持角色(管理员、开发者、访客)权限控制 多团队共用仓库,资源隔离
制品存储与分发 支持 Docker 镜像、Helm Chart、OCI 制品、CNAB 等 CI/CD 流水线推送与拉取
漏洞扫描 集成 Clair、Trivy 等扫描引擎,自动检测镜像安全漏洞 上线前安全合规检查
复制与同步 支持跨数据中心、跨云的制品复制(Pull/Push 模式) 灾备、多地域分发
保留策略 基于标签、时间、数量等规则自动清理过期制品 节省存储空间,控制成本
清理窗口 设定清理操作的时间窗口,避免影响业务高峰期 生产环境定时清理
审计日志 记录所有操作行为,支持日志导出 安全审计、故障排查
课程聚焦:本课程将重点深入 保留策略 与 清理窗口 两个功能,其他功能仅做背景介绍。

1.3 Harbor 在云原生生态中的定位

在云原生技术栈中,Harbor 处于制品管理的关键位置,连接上游的 CI/CD 工具链与下游的容器运行时环境。以下 SVG 图展示了 Harbor 在典型云原生流水线中的核心角色:

Harbor 在云原生生态中的定位 Harbor 在云原生生态中的定位 CI/CD 工具链 Jenkins / GitLab CI / ArgoCD 容器运行时 Kubernetes / Docker / Nomad Harbor 制品仓库 + 安全扫描 + 复制 + 清理 推送制品 拉取部署 本课程核心:保留策略与清理窗口 保留策略:基于标签、时间、数量规则自动清理过期制品 清理窗口:设定清理操作的时间窗口,避免影响业务高峰期

从生态视角看,Harbor 承担以下关键职责:

  • 制品统一入口:所有构建产物(镜像、Chart、OCI 制品)集中存储,避免碎片化。
  • 安全合规网关:在制品进入生产环境前完成漏洞扫描、签名验证,阻断不安全镜像。
  • 多集群分发中枢:通过复制策略将制品同步到多个 Kubernetes 集群或数据中心。
  • 存储成本控制:通过保留策略与清理窗口,自动回收无用制品,降低存储开销。
注意:很多团队只把 Harbor 当作“镜像存储”,忽略了保留策略和清理窗口的配置,导致存储空间持续膨胀、清理操作在业务高峰期触发性能抖动。本课程将系统解决这两个痛点。

1.4 保留策略与清理窗口的关系

保留策略和清理窗口是 Harbor 制品生命周期管理的两个核心机制,二者协同工作:

维度 保留策略 清理窗口
职责 定义“哪些制品需要被清理”的规则 定义“何时执行清理操作”的时间约束
配置粒度 项目级别(Project) 全局级别(System)
触发方式 手动触发 / 定时任务 / Webhook 定时窗口 + 保留策略联合触发
典型规则 保留最近 30 天内的镜像,或保留最近 10 个版本 每天凌晨 2:00-4:00 执行清理
常见问题 规则过于宽松导致存储膨胀 窗口设置不合理导致业务高峰期清理

以下 SVG 图展示保留策略与清理窗口的协同工作流程:

保留策略与清理窗口协同流程 保留策略与清理窗口协同流程 配置保留策略 项目级别规则 配置清理窗口 全局时间约束 定时触发 Cron 调度 执行清理 删除过期制品 只有同时满足保留策略(可清理)和清理窗口(可执行)时,清理操作才会真正发生
最佳实践:建议先配置保留策略,再设置清理窗口。保留策略决定“清理什么”,清理窗口决定“何时清理”。二者缺一不可,否则要么存储膨胀,要么清理操作影响业务。