背景:
大型研发团队各业务线团队自己都会维护各自的Jenkins,且相互是不打通的,存在资源重复使用的问题;Jenkins-Server部署都是单点,一旦Server故障,需要人工介入启动服务恢复,Node存在需要重新接入与配置的风险;日常的Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满足大家各式的集成需求。通过配置jenkins分布式环境,将不同的任务下发到多台机器执行,提高jenkins处理能力,但是无法解决服务分布式部署。下面方案能有效的解决资源共享,和Jenkins-Server灾备的问题的集群搭建方案;
方案介绍:
- 整体方案采用LVS(负载均衡+高可用,采用技术:ipvsadm+keepalived;工作模式为:DR加权轮询,即:DR+wrr);
- 为客户提供服务,其中LSV的主调度机(LVS主)提供数据源(即:NFS)供集群中所有Jenkins Server使用;
- LVS从做热备调度机,同时做主数据源的异地备份(采用技术:Rsync+Inotify);
- 所有Jenkins Server需要挂载LVS主提供的数据源工作(采用技术:Linux Mount 挂载NFS),同时所有Jenkins Server需要配置虚拟VIP完成与客户机数据交互。
1、服务资源共享,避免重复建设;
2、Jenkins-Server多服务灾备,故障自动修复;
方案架构图:
文章图片
【Jenkins分布式集群设计方案】注:有更好的实践方式,欢迎交流沟通;