创建 GitLab 升级计划
所有等级
自我管理
本文档可作为指南,帮助您制定强有力的计划来升级自我管理的 GitLab 实例。
一般注意事项:
- 如果可能,我们建议您在更新生产实例之前在测试环境中测试升级。理想情况下,您的测试环境应尽可能模仿您的生产环境。
- 如果与支持部门 合作创建您的计划,请分享您的架构的详细信息,包括:
- GitLab 是如何安装的?
- 节点的操作系统是什么?(检查不再支持的操作系统版本以确认以后的更新可用)。
- 它是单节点还是多节点设置?如果是多节点,请与我们分享有关每个节点的任何架构细节。
- 你在使用GitLab Geo吗?如果是这样,请分享有关每个辅助节点的任何架构详细信息。
- 您的设置中还有哪些独特之处或有趣之处可能对我们理解很重要?
- 您当前版本的 GitLab 是否遇到任何已知问题?
升级前和升级后检查
在升级之前和之后,立即执行升级前和升级后检查,以确保 GitLab 的主要组件正常工作:
-
sudo gitlab-rake gitlab:check
-
确认可以解密加密的数据库值:
sudo gitlab-rake gitlab:doctor:secrets
- 在 GitLab UI 中,检查:
- 用户可以登录。
- 项目列表可见。
- 可以访问项目问题和合并请求。
- 用户可以从 GitLab 克隆存储库。
- 用户可以将提交推送到 GitLab。
- 对于 GitLab CI/CD,请检查:
- 跑步者接工作。
- 可以从注册表中推送和拉取 Docker 映像。
-
如果使用 Geo,请在主节点和每个辅助节点上运行相关检查:
sudo gitlab-rake gitlab:geo:check
- 如果使用 Elasticsearch,请验证搜索是否成功。
如果在任何情况下出现问题,请参阅如何排除故障。
回滚计划
在升级过程中可能会出现问题,因此为该场景提供回滚计划至关重要。正确的回滚计划为将实例恢复到其上次工作状态创建了一条清晰的路径。它由备份实例的方法和恢复实例的方法组成。
备份 GitLab
创建 GitLab 及其所有数据(数据库、存储库、上传、构建、工件、LFS 对象、注册表、页面)的备份。如果升级出现问题,这对于可以将 GitLab 回滚到工作状态至关重要:
- 创建一个GitLab 备份。确保按照基于您的安装方法的说明进行操作。不要忘记备份机密和配置文件。
- 或者,创建实例的快照。如果这是多节点安装,则必须对每个节点进行快照。 这个过程超出了 GitLab 支持的范围。
恢复 GitLab
要恢复您的 GitLab 备份:
- 在恢复之前,请务必阅读 先决条件,最重要的是,备份的版本和新的 GitLab 实例必须相同。
- 恢复 GitLab。确保按照基于您的安装方法的说明进行操作。确认机密和配置文件也已恢复。
- 如果从快照还原,请了解执行此操作的步骤。 这个过程超出了 GitLab 支持的范围。
升级计划
对于升级计划,首先创建最适用于您的实例的计划大纲,然后针对您正在使用的任何相关功能对其进行升级。
- 通过阅读和理解相关文档来生成升级计划:
- 根据安装方式升级:
- 零停机升级(如果可能和需要)
- 从 GitLab 社区版转换为企业版
- 您应该升级到哪个版本:
- 由于后台迁移,计划在升级到新的主要版本后暂停任何进一步的升级。 所有迁移必须 在下一次升级之前完成运行。
- 如果在您的起始版本中可用,请考虑 在升级期间开启维护模式。
- 关于 PostgreSQL:
- 在顶部栏上,选择Menu > Admin,然后查找您正在使用的 PostgreSQL 版本。如果需要PostgreSQL的升级,占有关 包装 或无包装的步骤。
附加功能
除了上述所有通用信息外,您可能还启用了一些需要特殊规划的功能。
随意忽略有关不适用于您的设置的功能部分,例如 Geo、外部 Gitaly 或 Elasticsearch。
外部 Gitaly
如果您使用的是外部 Gitaly 服务器,则必须在升级应用程序服务器之前将其升级到较新的版本。
地理
如果您使用的是地理:
- 查看Geo 升级文档。
- 阅读特定于Geo 版本的更新说明。
- 更新数据库时查看特定于地理的步骤。
- 为每个Geo 节点(主节点和每个辅助节点)创建升级和回滚计划。
赛跑者
更新 GitLab 后,升级您的跑步者以匹配 您的新 GitLab 版本。
弹性搜索
更新 GitLab 后,如果新版本破坏兼容性,您可能需要升级 Elasticsearch。更新 Elasticsearch超出了 GitLab 支持的范围。
故障排除
如果任何事情没有按计划进行:
- 如果时间紧迫,请复制所有错误并收集所有日志以供日后分析,然后回滚到上一个工作版本。您可以使用以下工具来帮助您收集数据:
- 为了支持:
- 联系 GitLab 支持,如果有的话,请联系您的技术客户经理。
- 如果情况符合条件 并且您的计划包括紧急支持,请创建紧急票。