在Jenkins上同時執行多個任務時,單機性能可能達到瓶頸,使用Jenkins集羣能夠有效的解決此問題,讓多臺機器同時處理這些任務能夠將壓力分散,對單機版Jenkins的單點故障的隱患也有分散做用,今天就來實戰快速搭建Jenkins集羣,Jenkins版本是2.190.2;java
經過Docker能夠省去大部分準備工做,您只需在Linux電腦上安裝docker,在輔以少許命令和操做便可完成集羣搭建;程序員
本次實戰的環境一共要用三臺電腦,它們的設置都是同樣的,以下:web
三臺電腦的信息以下:spring
主機名 | IP地址 | 做用 |
---|---|---|
master | 192.168.133.131 | Jenkins集羣的master節點,提供web服務 |
agent1 | 192.168.133.132 | Jenkins集羣的一號工做接節點,標籤是maven |
agent2 | 192.168.133.133 | Jenkins集羣的二號工做接節點,標籤是gradle |
建議agent2節點的內存大於4G,由於下一篇的實戰操做會用agent2編譯構建spring-framework,對內存的需求略大;docker
docker run \
-u root \
-idt \
--name master \
-p 8080:8080 \
-p 50000:50000 \
-v /usr/local/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean:1.19.0複製代碼
docker run \
-u root \
-idt \
--name agent \
-v /usr/local/jenkins:/usr/local/jenkins \
bolingcavalry/openjdk-with-sshpass:8u232 \
java -jar /usr/local/jenkins/agent.jar \
-jnlpUrl http://192.168.133.131:8080/computer/agent1/slave-agent.jnlp \
-secret 44c3e8d1531754b8655b53294bbde6dd99b3aaa91a250092d0d3425534ae1058 \
-workDir "/usr/local/jenkins"複製代碼
上述命令中的後半部分,即java -jar ......就是前面圖片紅框中的agent1啓動命令,惟一要改變的是將agent.jar改爲絕對路徑/usr/local/jenkins/agent.jarshell
FROM openjdk:8u232
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --assume-yes sshpass複製代碼
agent2加入集羣的方式和agent1大部分是同樣的,只有如下兩點要注意:瀏覽器