在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群能够有效的解决此问题,让多台机器同时处理这些任务能够将压力分散,对单机版Jenkins的单点故障的隐患也有分散做用,今天就来实战快速搭建Jenkins集群,Jenkins版本是2.190.2;java
经过Docker能够省去大部分准备工做,您只需在Linux电脑上安装docker,在辅以少许命令和操做便可完成集群搭建;程序员
本次实战的环境一共要用三台电脑,它们的设置都是同样的,以下:web
三台电脑的信息以下:
| 主机名 | IP地址 | 做用 |
|--|--|--|
| master | 192.168.133.131 | Jenkins集群的master节点,提供web服务 |
| agent1 | 192.168.133.132 | Jenkins集群的一号工做接节点,标签是maven |
| agent2 | 192.168.133.133 | Jenkins集群的二号工做接节点,标签是gradle |spring
建议agent2节点的内存大于4G,由于下一篇的实战操做会用agent2编译构建spring-framework,对内存的需求略大;docker
在每台电脑上建立文件夹/usr/local/jenkinsshell
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
接下来是建立管理员和使用实例url的操做,这里就很少说了,您按实际状况自行斟酌;
至此,Jenkins的master已经搭建好,接下来将agent1和agent2做为工做节点加入集群;浏览器
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.jarssh
FROM openjdk:8u232 ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install --assume-yes sshpass
去Jenkins的网页上查看节点列表,以下图,可见agent1已经成功加入:
maven
此时agent2也加入成功:
至此,Jenkins集群搭建完成,这两个节点带有不一样的标签,下一篇文章《Jenkins集群下的pipeline实战》中,咱们在这个集群环境建立pipeline任务,并经过标签被分配到不一样的节点上,实现多节点并行执行;性能