返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

版本升级

发布于 2024-06-08 21:16:47 字数 12728 浏览 0 评论 0 收藏 0

gitlab的版本规则是:主版本(Major).次版本(Minor).补丁版本(Patch)

  • 主版本会在每年的五月22左右发布

  • 次版本会在每月22号左右发布

  • 补丁版本会不定时发布

版本升级说明

  • 在同一个主要版本下,补丁版本和次要版本之间跳转是安全的。例如
    • 12.7.5 -> 12.10.5
    • 11.3.4 -> 11.11.1
    • 12.0.4 -> 12.0.12
    • 11.11.1 -> 11.11.8
  • 而主版本升级,需要考虑版本是否可向后兼容与数据迁移,原则上先升级到当前主版本的最大次版本,然后在升级到下个主要版本最小次版本,依次往最新的版本进行升级

说明文档:

1、确定版本升级路径

可查看最新的版本升级路径文档:https://docs.gitlab.com/ee/update/index.html

8.11.Z --> 8.12.0 --> 8.17.7 --> 9.5.10 --> 10.8.7 --> 11.11.8 --> 12.0.12 --> 12.1.17 --> 12.10.14 --> 13.0.14 --> 13.1.11 -- > latest 13.Y.Z

当前版本目标版本支持的版本升级路径
14.6.215.1.014.6.2 -> 14.9.5 -> 14.10.5 -> 15.0.2 -> 15.1.0
14.6.215.0.014.6.2 -> 14.9.5 -> 14.10.5 -> 15.0.2
13.9.214.1.813.9.2 -> 13.12.15 -> 14.0.12 -> 14.1.8
12.9.213.4.312.9.2 -> 12.10.14 -> 13.0.14 -> 13.4.3
11.5.013.2.1011.5.0 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.2.10
11.3.412.10.1411.3.4 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14
10.4.512.9.510.4.5 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.9.5
9.2.612.2.59.2.6 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.2.5
8.13.411.3.48.13.4 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.3.4

已实践的版本升级路线:

11.6.1 ----> 11.11.0-ce.0(关键点) ----> 12.0.1-ce.0(关键点) ----> 12.8.0-ce.0 ----> 12.10.0(关键点) ----> 13.0.0-ce.0(关键点) ----> latest(13.8.3)

2、确定升级步骤

升级的步骤取决于Gitlab的部署方式

以升级14.5.3 -> 14.9.5 -> 14.10.5 -> 15.0.5 -> 15.1.4为例

/data/gitlab/docker-compose.yml

web:
  image: 'gitlab/gitlab-ce:14.5.3-ce.0'
  restart: always
  container_name: gitlab
  hostname: 'gitlab.curiouser.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://gitlab.curiouser.com'
      gitlab_rails['gitlab_shell_ssh_port'] = 30022
  ports:
    - '80:80'
    - '30022:22'
  volumes:
    - '/data/gitlab/config:/etc/gitlab'
    - '/data/gitlab/logs:/var/log/gitlab'
    - '/data/gitlab/data:/var/opt/gitlab'

1、备份数据和镜像

  • 备份docker-compose整个目录

    mkdir /data/gitlab-backup-20220805
    cp -r /data/gitlab/ /data/gitlab-backup-20220805
    
  • 备份docker镜像

    docker save -o /data/gitlab-backup-20220805/gitlab-ce-14-5-3-ce.tar gitlab/gitlab-ce:14.5.3-ce.0
    

2、修改docker-compose文件中的镜像版本

# 14.5.3 -> 14.9.5
sed -i "s/image\: \'gitlab\/gitlab-ce:14.5.3-ce.0\'/image\: \'gitlab\/gitlab-ce\:14.9.5-ce.0\'/g" docker-compose.yml

# 14.9.5 -> 14.10.5
sed -i "s/image\: \'gitlab\/gitlab-ce:14.9.5-ce.0\'/image\: \'gitlab\/gitlab-ce\:14.10.5-ce.0\'/g" docker-compose.yml

# 14.10.5 -> 15.0.5
sed -i "s/image\: \'gitlab\/gitlab-ce:14.10.5-ce.0\'/image\: \'gitlab\/gitlab-ce\:15.0.5-ce.0\'/g" docker-compose.yml

# 15.0.5 -> 15.1.4
sed -i "s/image\: \'gitlab\/gitlab-ce:15.0.5-ce.0\'/image\: \'gitlab\/gitlab-ce\:15.1.4-ce.0\'/g" docker-compose.yml

3、重启容器

cd /data/gitlab
docker-compose up -d && docker-compose logs -f

4、检查后台迁移任务是否完成

必须确认后台迁移任务均为0时,才可以开始后续的下一个版本的升级

  • 方式一:在Web页面的管理中心–> 监控 –> 后台任务中查看队列中的迁移任务

  • 方式二:

    • GitLab EE > 14.0

      gitlab-psql -c 'select job_class_name,table_name, column_name, job_arguments from
      batched_background_migrations where status <> 3;'
      
    • GitLab EE=12.9 < 14.0

      gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
      

参考:https://docs.gitlab.com/ee/update/index.html

5、重复2~4步升级至指定版本

  • 每一次替换升级,都需要容器重启至可访问,后台迁移任务检查为0时方可操作下一个版本的升级

6、验证

  • 使用账号密码看是否能正常登陆?
  • 本地使用git客户端看是否能正常拉取推送代码?
  • 测试各个环境的gitlab runner,提交代码看pipeline能否正常运行和部署?
  • 测试钉钉通知是否正常?
  • 验证SonarQube是否可以通过Gitlab认证进行登录?
  • 验证新增功能

7、启用新功能

# 进入容器
docker exec -it gitlab bash
# 进入GitLab Rails 控制台
gitlab-rails console -e production
# 执行命令以启动新功能
Feature.enable(:performance_analytics)

利用备份数据文件镜像文件重新恢复最初状态

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文