从 Helm chart 迁移到 Linux 包
从 Helm 安装的实例迁移到软件包(Omnibus)安装的实例,您需要:
- 在左侧导航栏,在底部,选择管理中心。
- 选择概览 > 组件以检查当前您的极狐GitLab 实例版本。
- 准备一个干净的机器并用软件包安装与极狐GitLab Helm chart 相同版本的极狐GitLab 实例。
- 在迁移之前,在极狐GitLab Helm chart 实例上验证 Git 仓库的完整性。
- 创建极狐GitLab Helm chart 实例备份,且要确保同时备份了密钥。
- 在您的 Linux 软件包安装的实例服务器上备份
/etc/gitlab/gitlab-secrets.json
文件。 - 在您运行
kubectl
命令的服务器上安装 yq 工具(版本高于 4.21.1)。 - 在您的工作站上创建
/etc/gitlab/gitlab-secrets.json
文件的备份。 -
运行以下命令以从您的极狐GitLab Helm chart 实例上获取密钥。用合适的值替代
GITLAB_NAMESPACE
和RELEASE
:kubectl get secret -n GITLAB_NAMESPACE RELEASE-rails-secret -ojsonpath='{.data.secrets\.yml}' | yq '@base64d | from_yaml | .production' -o json > rails-secrets.json yq eval-all 'select(filename == "gitlab-secrets.json").gitlab_rails = select(filename == "rails-secrets.json") | select(filename == "gitlab-secrets.json")' -ojson gitlab-secrets.json rails-secrets.json > gitlab-secrets-updated.json
- 结果存放在
gitlab-secrets-updated.json
,您可以用此文件的内容替换您 Linux 软件包实例中/etc/gitlab/gitlab-secrets.json
文件的内容。 -
替换完
/etc/gitlab/gitlab-secrets.json
文件后,重新配置您的 Linux 软件包实例:sudo gitlab-ctl reconfigure
- 在 Linux 软件包实例上,配置对象存储,并通过测试 LFS、制品、上传等功能确保实例正常工作。
- 如果您在用容器镜像仓库,要为其单独配置对象存储。它并不支持统一的对象存储。
- 将连接到 Helm chart 实例的对象存储和连接到 Linux 软件包实例的对象存储进行数据同步。需要注意:
- 对兼容 S3 的存储来说,使用
s3cmd
工具来拷贝数据。 - 如果您计划在您的 Linux 软件包实例上使用 S3 兼容的对象存储,比如 MinIO,您应该配置选项端点以指向您的 MinIO,并且在
/etc/gitlab/gitlab.rb
中将path_style
设置为true
。 - 您还可以在 Linux 软件包实例上复用您的对象存储。在此情况下,您就不需要在两个对象存储上同步数据了。然而,如果您使用的是内置的 MinIO 实例,当您卸载极狐GitLab Helm chart 时,存储可能会被取消配置。
- 对兼容 S3 的存储来说,使用
- 将极狐GitLab Helm 备份拷贝到 Linux 软件包实例上的
/var/opt/gitlab/backups
目录下,然后执行恢复。 - 完成恢复后,运行docker Rake 任务来确保密钥是正确的。
- 一切验证完成后,卸载您的极狐GitLab Helm chart 实例。