1. 程式人生 > >Jenkins分散式叢集設計方案

Jenkins分散式叢集設計方案

背景:

       大型研發團隊各業務線團隊自己都會維護各自的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多服務災備,故障自動修復;

方案架構圖:

注:有更好的實踐方式,歡迎交流溝通;