制品清理策略是什么
镜像与制品清理策略解决仓库存储膨胀:按「保留最近 N 个版本 + 标签模式 + 保留期」清理历史产物,前提是先审计引用关系——哪些标签被生产环境、回滚路径、部署清单引用——再让规则从宽到紧逐步收紧。主流平台都提供规则化清理:GitLab 容器镜像库清理策略、Harbor 保留策略、云厂商镜像仓库的生命周期策略等。清理是不可逆操作:先预览删除清单(平台支持时用预演功能),确认后再开启自动执行;保留期至少要覆盖回滚窗口。
基本信息
| 常见规则 | 保留最新若干版本、保护 release 前缀、清理超期临时标签 |
|---|---|
| 平台 | GitLab 清理策略、Harbor 保留策略、ECR 生命周期策略 |
| 前置 | 先统计存储占用与引用关系再定规则 |
| 安全阀 | 先预演(dry-run)再自动执行 |
| 底线 | 保留期覆盖回滚窗口 |
典型使用场景
- 临时标签堆积:CI 每次构建产生的 sha 类标签定期清理。
- 成本治理:存储与备份成本随版本数线性增长,需要周期性瘦身。
- 合规保留:与保留 N 年的要求冲突时,用受保护前缀单独归档处理。
- 回滚保障:保留窗口与回滚预案阶段对齐,保证可退。
- 多平台统一:每个仓库分别配置规则,别只顾主镜像库。
- 预演验证:平台支持预演时先看删除清单再执行。
清理规则思路
清理规则思路
匹配 tag 模式: ^sha-.*$
保留每镜像最新 10 个匹配标签
保留期 14 天(与回滚窗口对齐)
# 先预演删除清单,再开启自动执行规则要素
| 要素 | 示例 | 作用 |
|---|---|---|
| 保留数量 | 最新 10 个 | 兜住近期版本 |
| 保留期 | 14-90 天 | 覆盖回滚窗口 |
| 保护模式 | release 前缀不清理 | 保护正式版本 |
| 排除项 | 手动固定标签 | 特殊白名单 |
删除只是第一步:平台通常要再跑垃圾回收任务才真正释放底层存储。
多架构镜像按索引清理:删掉清单后子 manifest 会成为悬空对象,交给 GC 回收即可。
先宽后紧:第一版规则放宽,观察一个完整周期确认没有回滚受影响,再逐步收紧。