安装前配置
目录
准备 GitLab 服务部署选项1. GitLab 服务要求2. 使用平台提供的插件3. 使用自有 GitLab 服务GitLab 配置1. 禁用访问令牌的过期时间2. 生成新令牌3. 为管理员令牌创建 kubernetes secret常见问题解答(FAQ)1. 如何优化 GitLab 18.5 及以上版本以支持大容量 LFS 对象?Ingress 注解参数配置步骤准备 GitLab 服务
在 Alauda AI 中,GitLab 是模型管理的核心组件。部署 Alauda AI 之前,您必须准备一个 GitLab 服务。
部署选项
1. GitLab 服务要求
无论采用何种部署方式,所有 GitLab 实例必须满足:
- 版本:必须是 v15 或更高版本。
- 协议:必须使用 HTTPS。配置说明请参考 配置 HTTPS。
- Git LFS:必须启用。配置说明请参考 使用 LFS 管理大文件。
- 托管方式:必须是自托管(不支持公有云托管的 GitLab 服务)。
- 访问令牌:禁用访问令牌的过期时间。
2. 使用平台提供的插件
使用 ‘Alauda Build of GitLab’ 插件部署新的 GitLab 服务。详细操作请参考:部署 Alauda Build of GitLab。
3. 使用自有 GitLab 服务
或者,您也可以使用自管理的 GitLab 实例,但必须满足 GitLab 服务要求。
GitLab 配置
在部署 Alauda AI 之前,获取服务后请完成以下 GitLab 配置步骤。
1. 禁用访问令牌的过期时间
如果 GitLab 版本为 v17.0 或更高版本,需要禁用访问令牌的过期时间。
如果访问令牌的过期时间未禁用,管理员令牌至少需要每年手动刷新一次,否则 Alauda AI 可能会停止工作。
禁用新访问令牌过期时间的步骤:
- 在左侧边栏底部选择 Admin。
- 选择 Settings > General。
- 展开 Account and limit。
- 取消勾选 Personal / Project / Group access token expiration 复选框。
- 点击 Save changes。
2. 生成新令牌
生成管理员的模拟令牌步骤:
- 在左侧边栏底部选择 Admin。
- 选择 Overview > Users。
- 选择管理员用户(例如 Administrator)。
- 在顶部导航栏选择 Impersonation Tokens。
- 点击 Add new token。
- 在弹出表单中:
- 输入 Alauda AI 的 Token name(例如
aml-root)。 - 移除 Expiration Date(点击“x”图标移除过期时间)。
- 勾选 所有 权限范围(特别是 api 权限)。
- 输入 Alauda AI 的 Token name(例如
- 点击 Create impersonation token。
- 保存弹窗中显示的新生成令牌,后续需要使用。
请务必保存新生成的令牌——之后无法再次查看。
3. 为管理员令牌创建 kubernetes secret
接着,在 cpaas-system 命名空间下创建名为 aml-gitlab-admin-token 的 secret:
- 创建名为 aml-gitlab-admin-token 的 GitLab 管理员令牌 secret。
- 令牌保存在 password 键中,请将
${TOKEN}替换为之前保存的真实令牌。 - secret 创建在 cpaas-system 命名空间下。
常见问题解答(FAQ)
1. 如何优化 GitLab 18.5 及以上版本以支持大容量 LFS 对象?
问题描述:
向 GitLab 18.5 及以上版本推送大容量 LFS 对象时,可能会遇到 HTTP 413 错误。AI 模型管理中,通常需要通过 LFS 上传超出 Nginx ingress 控制器默认 proxy-body-size 限制(通常为 512M)的超大模型文件(这些 Nginx ingress 注解通常与版本无关,也适用于其他遇到 LFS 上传大小限制的 GitLab 版本)。
以下是 Git LFS 客户端的真实诊断输出,%!!(string=...) 片段为 Go 语言格式化残留,可忽略,重点关注 HTTP 413 响应错误。
解决方案:
为支持大文件上传并提升整体性能,需要在 GitLab 服务的 Nginx Ingress 上配置特定注解。
Ingress 注解参数
以下是推荐的 Ingress 参数及其功能说明:
配置步骤
您可以通过更新 GitLabOfficial 自定义资源(CR)来应用这些优化。
1. 通过 kubectl patch 命令应用
使用以下命令直接更新 GitLabOfficial CR 中的 ingress 注解:
- 将
your-instance-name替换为您的 GitLabOfficial 实例名称(例如gitlab-aml)。 - 将
your-instance-namespace替换为您的 GitLabOfficial 实例所在命名空间(例如gitlab-system-aml)。
2. YAML 结构参考
以下为 GitLabOfficial CR spec 中 ingress.annotations 的层级结构示例:
- 这些优化确保 GitLab 18.5 能顺利处理通过 Git LFS 上传的大型 AI 模型文件,并提升整体数据传输稳定性。
- 强烈建议在 GitLab 初次部署时应用这些配置,避免后期运维问题。