CentOS Jenkins负载均衡配置指南
在CentOS环境下,Jenkins的负载均衡配置主要通过外部负载均衡器(如Nginx、HAProxy)或Jenkins原生集群架构(Master-Slave/分布式构建)实现,以下是具体步骤:
wget、yum等命令安装软件;通过ssh实现节点间通信(若配置Master-Slave架构)。外部负载均衡器位于Jenkins实例前端,负责将用户请求分发到多个Jenkins节点,提升并发处理能力。
在每台CentOS服务器上安装Jenkins(以默认端口8080为例):
# 添加Jenkins仓库并导入密钥
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 安装Jenkins并启动
yum install -y jenkins
systemctl start jenkins
systemctl enable jenkins
若需在同一服务器上运行多个实例,修改/etc/sysconfig/jenkins中的JENKINS_PORT参数(如8081),并重启服务:
vim /etc/sysconfig/jenkins # 修改JENKINS_PORT=8081
systemctl restart jenkins
在负载均衡器节点上安装Nginx:
yum install -y nginx
systemctl start nginx
systemctl enable nginx
编辑Nginx配置文件(/etc/nginx/conf.d/jenkins_lb.conf),添加负载均衡规则:
upstream jenkins_cluster {
server 192.168.1.101:8080; # Jenkins实例1 IP:端口
server 192.168.1.102:8080; # Jenkins实例2 IP:端口
# 可添加更多实例
}
server {
listen 80;
server_name jenkins.yourdomain.com; # 替换为你的域名或IP
location / {
proxy_pass http://jenkins_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
重启Nginx使配置生效:
systemctl restart nginx
通过浏览器访问http://jenkins.yourdomain.com,多次刷新页面,观察请求是否被分发到不同Jenkins实例(可通过实例日志确认)。
通过Master节点管理多个Slave节点,将构建任务分发到Slave执行,实现负载均衡。
登录Jenkins Web界面(http://master_ip:8080),进入Manage Jenkins > Manage Nodes and Clouds:
slave1),点击OK。/home/jenkins);在Slave节点上安装Jenkins Agent(若未安装):
wget http://master_ip:8080/jnlpJars/agent.jar
通过SSH启动Agent(替换为实际参数):
java -jar /path/to/agent.jar -jnlpUrl http://master_ip:8080/computer/slave1/slave-agent.jnlp -secret your_secret_token -workDir "/home/jenkins"
验证Slave状态:返回Master节点Web界面,查看Slave是否显示为Idle(空闲)。
创建或编辑Jenkins任务,进入Configure:
linux,需提前在Slave节点配置);node('linux') { ... }),确保任务自动分发到带指定标签的Slave。通过插件扩展Jenkins的负载均衡能力,适用于复杂场景(如动态扩缩容)。
进入Manage Jenkins > Manage Plugins:
进入Manage Jenkins > Configure System:
若使用Kubernetes集群,可安装Kubernetes Continuous Deploy插件,通过Pod模板动态创建Slave节点,实现弹性负载均衡:
JENKINS_HOME目录(包含配置、构建历史等)。通过以上方法,可根据实际需求选择合适的负载均衡方案,提升CentOS环境下Jenkins的性能和可靠性。