王大拿
知道的越多,不知道的也就越多! 只要学不死,就往死里学!!!

创建 GitLab 升级计划 

所有等级
自我管理

本文档可作为指南,帮助您制定强有力的计划来升级自我管理的 GitLab 实例。

一般注意事项:

  • 如果可能,我们建议您在更新生产实例之前在测试环境中测试升级。理想情况下,您的测试环境应尽可能模仿您的生产环境。
  • 如果与支持部门 合作创建您的计划,请分享您的架构的详细信息,包括:
    • GitLab 是如何安装的?
    • 节点的操作系统是什么?(检查不再支持的操作系统版本以确认以后的更新可用)。
    • 它是单节点还是多节点设置?如果是多节点,请与我们分享有关每个节点的任何架构细节。
    • 你在使用GitLab Geo吗?如果是这样,请分享有关每个辅助节点的任何架构详细信息。
    • 您的设置中还有哪些独特之处或有趣之处可能对我们理解很重要?
    • 您当前版本的 GitLab 是否遇到任何已知问题?

升级前和升级后检查

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

  1. 检查一般配置

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

    sudo gitlab-rake gitlab:doctor:secrets
    
  3. 在 GitLab UI 中,检查:
    • 用户可以登录。
    • 项目列表可见。
    • 可以访问项目问题和合并请求。
    • 用户可以从 GitLab 克隆存储库。
    • 用户可以将提交推送到 GitLab。
  4. 对于 GitLab CI/CD,请检查:
    • 跑步者接工作。
    • 可以从注册表中推送和拉取 Docker 映像。
  5. 如果使用 Geo,请在主节点和每个辅助节点上运行相关检查:

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

如果在任何情况下出现问题,请参阅如何排除故障

回滚计划

在升级过程中可能会出现问题,因此为该场景提供回滚计划至关重要。正确的回滚计划为将实例恢复到其上次工作状态创建了一条清晰的路径。它由备份实例的方法和恢复实例的方法组成。

备份 GitLab

创建 GitLab 及其所有数据(数据库、存储库、上传、构建、工件、LFS 对象、注册表、页面)的备份。如果升级出现问题,这对于可以将 GitLab 回滚到工作状态至关重要:

  • 创建一个GitLab 备份。确保按照基于您的安装方法的说明进行操作。不要忘记备份机密和配置文件
  • 或者,创建实例的快照。如果这是多节点安装,则必须对每个节点进行快照。 这个过程超出了 GitLab 支持的范围。

恢复 GitLab

要恢复您的 GitLab 备份:

  • 在恢复之前,请务必阅读 先决条件,最重要的是,备份的版本和新的 GitLab 实例必须相同。
  • 恢复 GitLab。确保按照基于您的安装方法的说明进行操作。确认机密和配置文件也已恢复。
  • 如果从快照还原,请了解执行此操作的步骤。 这个过程超出了 GitLab 支持的范围。

升级计划

对于升级计划,首先创建最适用于您的实例的计划大纲,然后针对您正在使用的任何相关功能对其进行升级。

附加功能

除了上述所有通用信息外,您可能还启用了一些需要特殊规划的功能。

随意忽略有关不适用于您的设置的功能部分,例如 Geo、外部 Gitaly 或 Elasticsearch。

外部 Gitaly

如果您使用的是外部 Gitaly 服务器,则必须在升级应用程序服务器之前将其升级到较新的版本。

地理

如果您使用的是地理:

赛跑者

更新 GitLab 后,升级您的跑步者以匹配 您的新 GitLab 版本

弹性搜索

更新 GitLab 后,如果新版本破坏兼容性,您可能需要升级 Elasticsearch。更新 Elasticsearch超出了 GitLab 支持的范围

故障排除

如果任何事情没有按计划进行:

posted on 2022-01-01 14:09  DevOps_SRE  阅读(159)  评论(0编辑  收藏  举报