升级极狐GitLab
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
升级极狐 GitLab 是一个相对简单的过程,但复杂性可能会根据以下因素增加:
- 您使用的安装方法。
- 您的极狐GitLab 版本有多旧。
- 如果您要升级到主版本。
如果可能,您应在测试环境中先测试升级,然后再更新生产实例。您的测试环境应尽可能模拟您的生产环境。
确保阅读整页内容,因为它包含与每种升级方法相关的信息。
升级极狐GitLab
要升级极狐GitLab:
- 创建一个升级计划来记录您的升级步骤。
- 熟悉维护策略文档。
- 阅读您正在跳过的版本的发布版本。特别是弃用、删除和关于升级的重要说明。
- 确定您应该采取的升级路径。如果您的升级路径包括必需的升级站点,您可能需要执行多次升级才能从当前版本移动到目标版本。如果相关,请检查目标极狐GitLab 版本的操作系统兼容性。
- 检查后台迁移。所有迁移必须在每次升级之前完成。您必须在主要和次要版本之间分散升级,以便后台迁移有时间完成。
- 首先在测试环境中测试您的升级,并制定回滚计划,以降低计划外中断和长时间停机的风险。
- 如果在您的起始版本中可用,请考虑在升级过程中打开维护模式。
- 在升级之前,请咨询极狐GitLab 各个版本的更改以确保兼容性:
- 执行升级前和升级后的检查。
- 暂停运行中的 CI/CD 流水线和作业。
- 如果相关,请遵循附加功能的升级步骤:
- 根据您的安装方法遵循升级步骤。
- 如果您的极狐GitLab 实例关联了任何 runner,请将它们升级以匹配当前的极狐GitLab 版本。此步骤可确保与极狐GitLab 版本的兼容性。
- 如果在升级过程中遇到问题,请获取支持。
- 如果您启用了维护模式,请禁用维护模式。
- 取消暂停运行中的 CI/CD 流水线和作业。
- 执行升级后检查。
根据安装方法升级
根据安装方法和您的极狐GitLab 版本,有多种官方方式可以升级极狐GitLab:
作为极狐GitLab 升级的一部分,Linux 软件包升级指南包含了升级 Linux 软件包实例的具体步骤。
升级前和升级后的检查
在升级前和升级后立即进行检查,以确保极狐GitLab 的主要组件正常工作:
-
shell
sudo gitlab-rake gitlab:check
-
确认加密的数据库值可以解密:
shellsudo gitlab-rake gitlab:doctor:secrets
-
在极狐GitLab 用户界面中检查:
- 用户可以登录。
- 项目列表可见。
- 项目议题和合并请求可访问。
- 用户可以从极狐GitLab 克隆仓库。
- 用户可以推送提交到极狐GitLab。
-
对于极狐GitLab CI/CD,检查:
- runner 能接收作业。
- Docker 镜像可以从注册表推送和拉取。
-
如果使用 Geo,请在主站点和每个次要站点上运行相关检查:
shellsudo gitlab-rake gitlab:geo:check
-
如果使用 Elasticsearch,验证搜索成功。
如果出现问题,请获取支持。
升级期间的 CI/CD 流水线和作业
如果您在极狐GitLab Runner 处理作业时升级极狐GitLab 实例,跟踪更新将失败。当极狐GitLab 恢复在线时,跟踪更新应自愈。然而,根据错误,极狐GitLab Runner 要么重试,要么最终终止作业处理。
至于产物,极狐GitLab Runner 尝试上传三次,然后作业最终失败。
为解决上述两种情况,建议在升级之前执行以下操作:
-
计划您的维护。
-
暂停您的 runner,或通过在 /etc/gitlab/gitlab.rb 中添加以下内容来阻止新作业启动:
rubynginx['custom_gitlab_server_config'] = "location = /api/v4/jobs/request {\n deny all;\n return 503;\n}\n"
并重新配置极狐GitLab:
shellsudo gitlab-ctl reconfigure
-
等待所有作业完成。
-
升级极狐GitLab。
-
升级极狐GitLab Runner到与您的极狐GitLab 版本相同的版本。两个版本应相同。
-
取消暂停您的 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。
对于支持:
- 如果您使用的是基础版,可以在极狐GitLab 官方论坛获取帮助,您也可以查看官方提供的专业升级服务。
- 如果您是付费客户,您可以直接联系您的客户成功经理,或在官方工单系统获取专业支持。