PART Ⅰ : 容器云OPENSHIFT
- 安装
- 数据持久化
- 集群管理
- 数据持久化
- 管理
- 网络
- 安全审计
- 工具应用部署
PART Ⅱ:容器云 KUBERNETES
- 基础
- 原理
- 系统应用/网络CNI/TRaefik
- 安装
- 集群管理
- 用户认证ServiceAccount与授权策略RBAC
- K8S应用管理工具Helm
- 问题
- 辅助工具
- Doing:K8S 多集群管理与网络互联
- VM On K8S
PART Ⅲ:持续集成与持续部署
- CICD优化总结
- Jenkins
- Gitlab
- Drone
- Nexus
- 配置
- 使用OrientDB Console在DB层面修改配置
- [设置SMTP邮件服务](https://www.wenjiangs.com/doc/krrcu7ebin9hh
- 仓库管理
- 数据备份恢复
- API
- Jenkins相关插件
- 配置
- SonarQube静态代码扫描分析
- LDAP
- Apollo
- 项目管理工具
- Jira
- Redmine
- Harbor
- Vault
- Alfred
- Web IDE: VSCode
- DolphinScheduler
PART Ⅴ:日志/监控/告警
- Logging
- Kafka/Zookeeper
- Filebeat
- Metrics
- Tracing
- Sentry日志聚合告警平台
PART Ⅵ:基础
- Docker
- Shell脚本
- Mave
- git
- 正则表达式
- SSL/TLS
- Ceph
- 性能压力测试
- PXE+Kickstart
- netboot.xyz
- Tool
- Windows
- MacOS小技巧
- Linux
- Linux排错优化
- iptables详解
- MySQL
- Redis
- 负载均衡与代理
- 代理服务器
- Nginx
- GitBook
- Telegram机器人
- OpenVPN Server
- iDRAC
- vSphere
- Raspberry Pi树莓派
- 钉钉机器人
- Aliyun CLI
- 音、视频处理工具:fffmpeg
- 图片处理工具:Imagemagick
- PDF处理工具:Ghostscript
- Nvidia
- Virtualbox 虚拟机管理
- 阿里云产品使用总结
- RustDesk:可自建远程控制软件
- Poste:自建邮件服务器
- 使用 Jlink构建最小化依赖的 JRE 环境
- Aria2
- Asuswrt-Merlin
- Trap:Shell脚本信号跟踪
- 零散知识汇总
- BarkServer通知
- Synology
PART Ⅶ:数据存储、处理
PART VIII:CODE
- Python学习笔记
- 基础语法
- statik 将静态资源文件打包到二进制文件中
- HTML/CSS 学习笔记
- JavaScript学习笔记
PART X:HACKINTOSH
PART XI:安全
版本升级
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.2 | 15.1.0 | 14.6.2 -> 14.9.5 -> 14.10.5 -> 15.0.2 -> 15.1.0 |
14.6.2 | 15.0.0 | 14.6.2 -> 14.9.5 -> 14.10.5 -> 15.0.2 |
13.9.2 | 14.1.8 | 13.9.2 -> 13.12.15 -> 14.0.12 -> 14.1.8 |
12.9.2 | 13.4.3 | 12.9.2 -> 12.10.14 -> 13.0.14 -> 13.4.3 |
11.5.0 | 13.2.10 | 11.5.0 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.2.10 |
11.3.4 | 12.10.14 | 11.3.4 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 |
10.4.5 | 12.9.5 | 10.4.5 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.9.5 |
9.2.6 | 12.2.5 | 9.2.6 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.2.5 |
8.13.4 | 11.3.4 | 8.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的部署方式
二进制包安装
源码编译安装
Docker方式安装
Helm方式安装
以升级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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论