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 集群,使用运维手段解决技术问题。
🏷️

标签

➡️

继续阅读