gitlab的不中断业务升级

背景

今早一个需求就扔到我头上,差点爆炸

gitlab升级要求不停业务,就代表升级过程中,开发还是可以提交代码,拉取代码。。。。。。

虽然想吐槽一下,不过吃人家饭,需求要硬也得搞,方法总比问题多嘛

方案

怎么实现业务不中断,突然想到了gitlab的副本,可以按副本的思想,进行不中断业务升级

这里,我使用的是docker安装方式,所以方案会偏向docker方向的gitlab升级,不过思想是一样的

简单说:

1. 将代码存储目录共享,git-data
 2. 注意其他目录不要共享,以免导致资源冲突以及升级后资源不适用
 3. 开启备用容器记得将端口进行改动
 4. nginx切换就行了,这样业务的操作就会转到备用gitlab中

实现

直接修改共享卷路径,不过要先复制原共享卷中的数

      volumes:
        - /sdata/etc/gitlabs:/etc/gitlab # 无需改动
        - /sdata/data/gitlabs:/var/opt/gitlab # 需要老/sdata/data/gitlab/git-data,通过软链接的方式,放在新的/sdata/data/gitlabs目录下,代码存储目录共享
        - /sdata/var/log/gitlabs:/var/log/gitlab # 无需改动
        - /sdata/data/gitlab/git-data:/sdata/data/gitlab/git-data # 因为是通过软链接的方式,开启容器后,也需要/sdata/data/gitlab/git-data目录存在

修改端口

启动容器

切换nginx

对gitlab进行升级

升级完毕后,nginx切回

备用gitlab回收


   转载规则


《gitlab的不中断业务升级》 江松泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
prometheus-基于http_sd_configs的服务发现 prometheus-基于http_sd_configs的服务发现
说明暂时不考虑写prometheus的搭建章(单机搭建太简单了。。。),后续可能会考虑写prometheus的集群、prometheus的外部存储等文章 这文章需要一定的GO基础,如果只是直接尝试使用,无所谓 这文章只是测试而已,真实使用还
2021-12-09
下一篇 
rsyslog日志传输不完整 rsyslog日志传输不完整
背景国庆期间,我老大反馈说日志服务器收集的日志不完整,我吓得马上去看,日志嘛很重要,发现出现不完整的日志都是数据量过大,还是nginx日志 验证为了验证是nginx的问题还是rsyslog的问题,我通过nginx重新定义一份日志写本地,接下
2021-10-08
  目录