升级指导
在升级您的极狐GitLab 实例之前,您需要检查要升级的特定版本对应的 变更记录。
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 版本对照请参考版本对照文档。
操作步骤
5.0
版本的 chart,遵循 5.0 手动升级步骤。
以下是将极狐GitLab 升级到新版本的操作步骤:
- 检查要升级的特定版本对应的 变更记录。
- 查看部署指导的详细操作步骤。
-
使用以下命令提取之前的
--set
参数。helm get values gitlab > gitlab.yaml
- 确定您需要设置的所有选项值。
-
使用所有在第 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
postgresql.install
的值为 false),您不需要执行该步骤。升级到 PostgreSQL 12 对于极狐GitLab 14.x 版本是必需的。PostgreSQL 12 带来强大的性能提升。
要升级绑定的 PostgreSQL 到 version 12,需要遵循以下步骤:
- 准备好现有的数据库。
- 删除现有的 PostgreSQL 数据。
- 更新
postgresql.image.tag
的值为12.4.0
,并重新安装 chart 去创建一个新的 PostgreSQL 12 数据库。 - 恢复数据库。
升级捆绑的 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,执行升级的最佳方法是备份旧数据库,然后将数据恢复到新的数据库实例中。
如果您在使用外部 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>