Jenkins分散式叢集設計方案
阿新 • • 發佈:2019-01-12
背景:
大型研發團隊各業務線團隊自己都會維護各自的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多服務災備,故障自動修復;
方案架構圖:
注:有更好的實踐方式,歡迎交流溝通;