从极狐GitLab 17.3 开始,私有化部署实例也可以使用新一代容器镜像仓库啦!新一代容器镜像仓库具有更高效的零宕机垃圾收集功能和其他优势。

file

从去年开始,极狐GitLab 就启动了重构容器镜像仓库的计划,用以构建具有更强功能的镜像仓库,比如零宕机垃圾收集。自从将此功能成功迁移到极狐GitLab SaaS(JihuLab.com)上之后,我们就启动了将其移植到私有化部署实例上的计划,我们希望能让私有化部署的客户也能使用此功能。

极狐GitLab 为 GitLab 在中国的发行版,更加丰富的中文功能 & 更加友好的中文体验,更适合中国开发者。可以一键部署一个私有化化实例,体验新一代容器镜像仓库。

从结果来看,是非常喜人的——使用者们统统表示获益匪浅:

  • 他们从零宕机垃圾收集功能中节约了大量的存储成本和宕机时间,整个过程无需人为干预、无需宕机
  • 提高了标签清理策略和容器镜像仓库 API、UI 的性能和稳定性
  • 提前体验了新功能,诸如更好的排序/过滤以及存储使用可见性

基于这些正向反馈和 Beta 期间的成功迁移,我们决定宣布极狐GitLab 新一代容器镜像仓库正式可用!但是对于极狐GitLab 私有化部署实例来讲,从 17.3 可用,但是该功能默认是关闭的。

以下是为了达到这一点的一些目标和非目标。目标是我们为了正式宣布这个功能达到正式可用(GA)所需具备的条件。非目标则阐明了在开始支持自带数据库的GA时将不会出现或需要的功能;然而,这些功能可能会在稍后添加。

目标

  • 导入过程没有已知的缺陷。
  • 导入文档反映了已知的最佳实践,并解决了来自beta测试项目的反馈。
  • 镜像仓库 API、元数据数据库以及零宕机垃圾收集是稳定可靠的。
  • 对于那些使用 Chart 安装的实例来说,在升级期间能够自动应用数据库模式的迁移。
  • 将镜像仓库数据库作为一个可选的改进项。

非目标

  • 自动配置镜像数据库。
  • 对于 Omnibus 安装的实例来说,在升级期间能够自动应用数据库模式的迁移。
  • 自动导入对象存储数据。
  • 提供 Geo 支持以确保镜像仓库的高可用。

对于那些既有的私有化部署实例来说,你可以对以下事项抱有期望:

  • 在极狐GitLab 17.3 中,新的镜像仓库已经包含在内,但是默认是关闭的,因为需要一定的时间去完成迁移。
  • 数据库的启用是一个可选过程,详情可以查看文档。
  • 老的容器镜像仓库还是会收到安全更新,但是新的功能和改进只针对新一代容器镜像仓库。
  • 我们的目标是在极狐GitLab 19.0 中停止对老镜像仓库的支持,也就是在并行运行一年之后。
  • 我们的目标是让整个迁移更加丝滑、无缝,而且让我们的客户能够用足够的时间来掌控整个迁移。文档中详细描述了如何对迁移到下一代容器镜像仓库进行计划和执行。

这项架构投资为未来几年更加强大的容器镜像仓库体验奠定了基础。以下是包含在我们路线图中的一些重要改进:

  • 受保护的仓库和不可变标签
  • 改进 Helm chart 的管理
  • 改进对签名和认证的支持
  • 更多的用户体验/用户界面增强功能只有在数据库架构的支持下才有可能实现

本文由博客一文多发平台 OpenWrite 发布!