GitLab 容器镜像仓库元数据数据库配置指南

GitLab 容器镜像仓库元数据数据库配置指南

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

概述

在 GitLab 项目中,容器镜像仓库(Container Registry)是一个重要的组件,用于存储和管理 Docker 镜像。传统上,GitLab 使用对象存储来持久化与容器镜像相关的元数据。然而,这种方式在数据访问效率上存在限制,特别是当需要跨多个镜像查询数据时。

从 GitLab 16.4 版本开始引入的元数据数据库功能,通过使用 PostgreSQL 数据库来存储这些元数据,显著提升了性能并增加了新功能。本文将详细介绍如何为 GitLab 容器镜像仓库配置和使用元数据数据库。

元数据数据库的优势

元数据数据库架构支持以下改进和功能:

  1. 在线垃圾回收:自动删除旧数据,无需停机
  2. 存储使用可视化:可查看仓库、项目和组的存储使用情况
  3. 镜像签名:支持容器镜像签名功能
  4. 仓库移动和重命名:可以更灵活地管理仓库
  5. 受保护标签:为容器镜像标签提供保护机制
  6. 性能提升
    • 清理策略执行更高效,能成功清理大型仓库
    • 列出仓库标签的性能更好
  7. 额外功能
    • 显示标签发布时间戳
    • 支持按名称以外的属性排序标签

准备工作

在启用元数据数据库前,需要确保:

  1. 运行 GitLab 17.3 或更高版本
  2. 准备 PostgreSQL 12 或更高版本的数据库
  3. 数据库必须可从仓库节点访问
  4. 备份现有的容器仓库数据

配置步骤

全新安装配置

对于全新安装或首次启用容器仓库的情况:

  1. 编辑 /etc/gitlab/gitlab.rb 文件,添加数据库连接信息(初始设置为禁用状态)
registry['database'] = {
  'enabled' => false,
  'host' => '数据库主机地址',
  'port' => 5432,
  'user' => '数据库用户名',
  'password' => '数据库密码',
  'dbname' => '数据库名称',
  'sslmode' => 'require',
  'sslcert' => '证书路径',
  'sslkey' => '私钥路径',
  'sslrootcert' => 'CA证书路径'
}
  1. 保存文件并重新配置 GitLab
  2. 应用数据库迁移
  3. 再次编辑配置文件,启用数据库
  4. 保存并重新配置 GitLab

现有仓库迁移

对于已有容器仓库的情况,有两种迁移方法:

一步式迁移(适合小型仓库)
  1. 在配置中添加数据库部分(保持禁用状态)
  2. 将仓库设置为只读模式
  3. 应用数据库迁移
  4. 运行导入命令
  5. 启用数据库并关闭只读模式
三步式迁移(推荐大型仓库)
  1. 预导入仓库(第一步)

    • 添加数据库配置(保持禁用)
    • 应用数据库迁移
    • 运行第一步导入命令
  2. 导入所有仓库数据(第二步)

    • 将仓库设置为只读模式
    • 运行第二步导入命令
    • 启用数据库并关闭只读模式
  3. 导入剩余数据(第三步)

    • 运行最终迁移步骤

注意事项

  1. 迁移过程中可能需要较长的只读时间窗口
  2. 迁移完成后,必须继续使用数据库,不能回退
  3. 迁移后不能再运行离线垃圾回收
  4. 确保没有自动化离线垃圾回收任务
  5. 大型仓库迁移可能需要数小时甚至数天

最佳实践

  1. 对于大型仓库,建议使用三步式迁移方法
  2. 迁移前考虑减少仓库存储量以加快过程
  3. 第一步和第二步之间的间隔应尽可能短
  4. 确保有足够的数据库资源处理导入过程
  5. 迁移完成后,利用新功能如在线垃圾回收优化仓库管理

通过合理配置元数据数据库,可以显著提升 GitLab 容器镜像仓库的性能和功能,为团队提供更强大的容器管理能力。

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侯霆垣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值