升级指导

在升级您的极狐GitLab 实例之前,您需要检查要升级的特定版本对应的 变更记录

note零停机升级不适用于 GitLab charts。
caution如果您要从 4.x 版本的 chart 升级到最新的 5.0 版本,您需要先更新最新的 4.12.x 补丁版本以便升级。

我们还建议您先进行 备份。请注意必须使用 helm upgrade --set key=value 语法或 -f values.yaml 提供所有 value 值,不要使用 --reuse-values,因为某些当前值可能会被废弃。

您可以使用 helm get values <release name> 来检索您以前的 --set 参数。如果您将其定向到文件中(helm get values <release name> > gitlab.yaml),您可以通过 -f 安全地传递文件,例如 helm upgrade gitlab gitlab/gitlab -f gitlab.yaml,这样可以安全替代使用 --reuse-values

chart 和极狐GitLab 版本对照请参考版本对照文档

操作步骤

note如果您要升级到 5.0 版本的 chart,遵循 5.0 手动升级步骤

以下是将极狐GitLab 升级到新版本的操作步骤:

  1. 检查要升级的特定版本对应的 变更记录
  2. 查看部署指导的详细操作步骤。
  3. 使用以下命令提取之前的 --set 参数。

    helm get values gitlab > gitlab.yaml
    
  4. 确定您需要设置的所有选项值。
  5. 使用所有在第 4 步中提取的参数,执行升级,参考以下命令。

    helm upgrade gitlab gitlab/gitlab \
      --version <new version> \
      -f gitlab.yaml \
      --set gitlab.migrations.enabled=true \
      --set ...
    

    在主数据库升级期间,我们要求您将 gitlab.migrations.enabled 设置为 false。确保您明确将其设置回 true 以便未来的更新。

将捆绑的 PostgreSQL 升级到 version 12

note如果您未使用捆绑的 PostgreSQL chart(postgresql.install 的值为 false),您不需要执行该步骤。

升级到 PostgreSQL 12 对于极狐GitLab 14.x 版本是必需的。PostgreSQL 12 带来强大的性能提升

要升级绑定的 PostgreSQL 到 version 12,需要遵循以下步骤:

  1. 准备好现有的数据库
  2. 删除现有的 PostgreSQL 数据
  3. 更新 postgresql.image.tag 的值为 12.4.0,并重新安装 chart 去创建一个新的 PostgreSQL 12 数据库。
  4. 恢复数据库

升级捆绑的 PostgreSQL chart

作为 5.0.0 发布版本 chart 的一部分,我们将捆绑的 PostgreSQL 版本从 11.9.0 升级到 12.7.0。这并非完全的替代,您需要执行手动步骤去升级数据库,了解操作步骤,请查看 5.0 升级步骤

5.5 升级步骤

task-runner chart 被重命名为 toolbox 并在 5.5.0 中被移除。因此,您的配置中任何提及 task-runner 的内容都应重命名为 toolbox。 在 5.5 及更高版本中,使用 toolbox chart,在 5.4 及更早版本中,使用 task-runner chart。

缺少对象存储 secret 错误

升级到 5.5 或更高版本可能会导致类似以下的错误:

Error: UPGRADE FAILED: execution error at (gitlab/charts/gitlab/charts/toolbox/templates/deployment.yaml:227:23): A valid backups.objectStorage.config.secret is needed!

如果错误中提到的 secret 已经存在并且是正确的,那么这个错误很可能是因为有一个对象存储配置值仍然引用了 task-runner 而不是新的 toolbox。在您的配置中将 task-runner 重命名为 toolbox 以解决此问题。

5.0 升级步骤

5.0.0 版本需要手动步骤才能执行升级。如果您使用捆绑的 PostgreSQL,执行升级的最佳方法是备份旧数据库,然后将数据恢复到新的数据库实例中。

caution在继续升级之前,记得进行备份。未能按照操作步骤执行,可能导致您的 数据库丢失。确保您有单独的备份。

如果您在使用外部 PostgreSQL 数据库,您应该首先将数据库升级到 12 或更高版本。然后遵循常规升级步骤

如果您使用捆绑的 PostgreSQL 数据库,您应该遵循捆绑数据库升级步骤

5.0 版本升级过程故障排查

  • 如果升级过程中观察到任何失败提示,您可以检查 gitlab-upgrade-check pod 的描述信息,获取更多信息:

    kubectl get pods -lrelease=RELEASE,app=gitlab
    kubectl describe pod <gitlab-upgrade-check-pod-full-name>