升级极狐GitLab

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: 私有化部署

升级极狐 GitLab 是一个相对简单的过程,但复杂性可能会根据以下因素增加:

  1. 您使用的安装方法。
  2. 您的极狐GitLab 版本有多旧。
  3. 如果您要升级到主版本。

如果可能,您应在测试环境中先测试升级,然后再更新生产实例。您的测试环境应尽可能模拟您的生产环境。

确保阅读整页内容,因为它包含与每种升级方法相关的信息。

升级极狐GitLab#

要升级极狐GitLab:

  1. 创建一个升级计划来记录您的升级步骤。
  2. 熟悉维护策略文档
  3. 阅读您正在跳过的版本的发布版本。特别是弃用、删除和关于升级的重要说明。
  4. 确定您应该采取的升级路径。如果您的升级路径包括必需的升级站点,您可能需要执行多次升级才能从当前版本移动到目标版本。如果相关,请检查目标极狐GitLab 版本的操作系统兼容性
  5. 检查后台迁移。所有迁移必须在每次升级之前完成。您必须在主要和次要版本之间分散升级,以便后台迁移有时间完成。
  6. 首先在测试环境中测试您的升级,并制定回滚计划,以降低计划外中断和长时间停机的风险。
  7. 如果在您的起始版本中可用,请考虑在升级过程中打开维护模式
  8. 在升级之前,请咨询极狐GitLab 各个版本的更改以确保兼容性:
  9. 执行升级前和升级后的检查
  10. 暂停运行中的 CI/CD 流水线和作业
  11. 如果相关,请遵循附加功能的升级步骤
  12. 根据您的安装方法遵循升级步骤
  13. 如果您的极狐GitLab 实例关联了任何 runner,请将它们升级以匹配当前的极狐GitLab 版本。此步骤可确保与极狐GitLab 版本的兼容性
  14. 如果在升级过程中遇到问题,请获取支持
  15. 如果您启用了维护模式,请禁用维护模式
  16. 取消暂停运行中的 CI/CD 流水线和作业
  17. 执行升级后检查

根据安装方法升级#

根据安装方法和您的极狐GitLab 版本,有多种官方方式可以升级极狐GitLab:

作为极狐GitLab 升级的一部分,Linux 软件包升级指南包含了升级 Linux 软件包实例的具体步骤。

升级前和升级后的检查#

在升级前和升级后立即进行检查,以确保极狐GitLab 的主要组件正常工作:

  1. 检查一般配置

    shell
    sudo gitlab-rake gitlab:check
  2. 确认加密的数据库值可以解密

    shell
    sudo gitlab-rake gitlab:doctor:secrets
  3. 在极狐GitLab 用户界面中检查:

    • 用户可以登录。
    • 项目列表可见。
    • 项目议题和合并请求可访问。
    • 用户可以从极狐GitLab 克隆仓库。
    • 用户可以推送提交到极狐GitLab。
  4. 对于极狐GitLab CI/CD,检查:

    • runner 能接收作业。
    • Docker 镜像可以从注册表推送和拉取。
  5. 如果使用 Geo,请在主站点和每个次要站点上运行相关检查:

    shell
    sudo gitlab-rake gitlab:geo:check
  6. 如果使用 Elasticsearch,验证搜索成功。

如果出现问题,请获取支持

升级期间的 CI/CD 流水线和作业#

如果您在极狐GitLab Runner 处理作业时升级极狐GitLab 实例,跟踪更新将失败。当极狐GitLab 恢复在线时,跟踪更新应自愈。然而,根据错误,极狐GitLab Runner 要么重试,要么最终终止作业处理。

至于产物,极狐GitLab Runner 尝试上传三次,然后作业最终失败。

为解决上述两种情况,建议在升级之前执行以下操作:

  1. 计划您的维护。

  2. 暂停您的 runner,或通过在 /etc/gitlab/gitlab.rb 中添加以下内容来阻止新作业启动:

    ruby
    nginx['custom_gitlab_server_config'] = "location = /api/v4/jobs/request {\n deny all;\n return 503;\n}\n"

    并重新配置极狐GitLab:

    shell
    sudo gitlab-ctl reconfigure
  3. 等待所有作业完成。

  4. 升级极狐GitLab。

  5. 升级极狐GitLab Runner到与您的极狐GitLab 版本相同的版本。两个版本应相同

  6. 取消暂停您的 runner 并通过还原先前的 /etc/gitlab/gitlab.rb 更改来解除对新作业的阻止。

版本之间的升级#

极狐GitLab 提供两种版本:基础版采用 MIT 许可,以及企业版,它基于基础版构建,主要面向拥有超过 100 名用户的组织,包含额外功能。

下面您可以找到一些帮助您更改极狐GitLab 版本的指南。

基础版到企业版#

以下指南仅适用于企业版订阅用户。

如果您希望将您的极狐GitLab 安装从基础版升级到企业版,请根据安装方法遵循以下指南:

  • 从 CE 到 EE 的源代码升级指南 - 步骤与版本升级非常相似:停止服务器,获取代码,更新配置文件以支持新功能,安装库并进行迁移,更新启动脚本,启动应用程序并检查其状态。
  • Linux 软件包 CE 到 EE - 遵循此指南将您的 Linux 软件包极狐GitLab 基础版升级到企业版。
  • Docker CE 到 EE - 遵循此指南将您的极狐GitLab 基础版容器升级到企业版容器。
  • Helm chart (Kubernetes) CE 到 EE - 遵循此指南将您的极狐GitLab 基础版 Helm 部署升级到企业版。

企业版到基础版#

要将您的企业版安装降级回基础版,您可以遵循此指南使过程尽可能顺利。

附加功能的升级步骤#

一些极狐GitLab 功能有附加步骤。

外部 Gitaly#

在升级应用服务器之前,将 Gitaly 服务器升级到新版本。这可以防止应用服务器上的 gRPC 客户端发送旧 Gitaly 版本不支持的 RPC。

Geo#

如果您使用 Geo:

极狐GitLab 代理用于 Kubernetes#

如果您有与极狐GitLab 连接的 Kubernetes 集群,请升级您的极狐GitLab 代理以匹配您的新极狐GitLab 版本。

Elasticsearch#

在更新极狐GitLab 之前,通过检查待定迁移确认高级搜索迁移已完成。

在更新极狐GitLab 之后,您可能需要升级Elasticsearch,如果新版本破坏了兼容性。更新 Elasticsearch 是不在极狐GitLab 支持范围内

获取支持#

如果出现问题:

  • 复制任何错误并收集任何日志以供日后分析,然后回滚到最后一个正常工作的版本。您可以使用以下工具来帮助您收集数据:
    • 如果您使用 Linux 软件包或 Docker 安装极狐GitLab,请使用 gitlabsos
    • 如果您使用 Helm Charts 安装极狐GitLab,请使用 kubesos

对于支持: