从 Linux 包迁移到 Helm chart
本指南将帮助您从基于软件包的极狐GitLab 安装迁移到 Helm chart。
前提条件
在迁移之前,必须满足一些前提条件:
- 基于包的极狐GitLab 实例必须已启动并正在运行。运行
gitlab-ctl status
并确认没有服务报告down
状态。 - 在迁移之前验证完整性是一个很好的做法。
- 需要基于 Helm chart 的部署,应运行与基于包的安装相同的极狐GitLab 版本。
- 您需要设置基于 Helm chart 的部署将使用的对象存储。对于生产用途,我们建议您使用外部对象存储并准备好访问它的登录凭据。如果您使用内建的 MinIO 服务,阅读文档了解如何从中获取登录凭据。
迁移步骤
-
将任何现有文件(上传文件、产物、LFS 对象)从基于包的安装迁移到对象存储:
-
修改
/etc/gitlab/gitlab.rb
文件并配置对象存储:- 上传文件
- 产物
- LFS
- 软件包
此处必须是基于 Helm chart 的部署所连接到的同一个对象存储服务。
-
运行重新配置以应用更改:
sudo gitlab-ctl reconfigure
-
将现有产物迁移到对象存储:
sudo gitlab-rake gitlab:artifacts:migrate
-
将现有 LFS 对象迁移到对象存储:
sudo gitlab-rake gitlab:lfs:migrate
-
将现有软件包迁移到对象存储:
gitlab-rake gitlab:packages:migrate
-
将现有上传文件迁移到对象存储:
sudo gitlab-rake gitlab:uploads:migrate:all
-
访问基于软件包的 GitLab 实例并确保上传文件可用。例如检查用户、群组和项目头像是否良好呈现,添加到议题的图像和其它文件是否正确加载等。
-
-
创建备份 tarball 并排除已经迁移的上传文件:
sudo gitlab-rake gitlab:backup:create SKIP=artifacts,lfs,uploads
备份文件将存储在
/var/opt/gitlab/backups
下,除非您明确更改它。 -
从基于包的安装恢复 到 Helm chart,从 secret 开始。您需要将
/etc/gitlab/gitlab-secrets.json
的值迁移到 Helm 将使用的 YAML 文件中。 -
重新启动所有 pod 以确保应用更改:
kubectl delete pods -lrelease=<helm release name>
- 访问基于 Helm 的部署并确认基于包的安装中存在的项目、群组、用户、议题等已恢复。此外,验证上传的文件(头像、上传到议题的文件等)是否加载正常。