在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大部分是同样的,只有如下两点要注意:浏览器