Harbor GC 问题
💡
原文中文,约2600字,阅读约需7分钟。
📝
内容提要
最近忙于处理 Harbor 镜像存储服务,面对大量 Docker 镜像和复杂的删除流程。通过改进 GC 逻辑,使用 Python 脚本实现自动化,删除效率提升至3天,解决了人工操作的繁琐问题。
🎯
关键要点
- 最近忙于处理 Harbor 镜像存储服务,面临大量 Docker 镜像和复杂的删除流程。
- Harbor 存储的 Docker 镜像数量庞大,存储容量已达到 PiB 级别。
- 删除镜像的流程复杂,包括删除 Tag、扫描数据库和删除未引用的 blob。
- 引用计数适合此场景,但 Harbor 没有采用,官方使用 Mark and Sweep 方案。
- Harbor 的 GC 方案运行时间过长,之前的负责人设计了针对性改进。
- 通过 SQL 查询和 API 删除镜像,使用 web UI 触发 GC 逻辑。
- 改进后,整体运行时间缩短至一个月,但仍存在问题。
- 使用 Python 脚本自动化 GC 逻辑,运行时间缩短至 3 天。
- 上一个负责人的文档详细记录了 Harbor GC 的逻辑和改进点。
- 另一个同事搭建新 Harbor 集群,使用运维手段解决技术问题。
➡️