温馨提示×

centos jenkins如何做集群

小樊
33
2026-10-20 20:13:02
栏目: 智能运维

在 CentOS 上搭建 Jenkins 集群,通常指 Jenkins Master + 多个 Agent(节点) 的架构(Jenkins 本身不叫“集群”,而是 Master/Agent 模式)。下面给你一套实用、可落地的方案。


一、整体架构说明

Jenkins Master (CentOS)
        |
        |-- Agent1 (CentOS / Windows / Docker)
        |-- Agent2
        |-- Agent3
  • Master:负责调度、Web UI、任务管理
  • Agent(节点):真正执行构建任务
  • 节点可通过 SSH / JNLP / Docker 接入

二、Master 节点安装(CentOS)

1. 安装 JDK

yum install -y java-11-openjdk-devel
java -version

2. 安装 Jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install -y jenkins

3. 启动 Jenkins

systemctl enable jenkins
systemctl start jenkins

访问:

http://<master-ip>:8080

三、添加 Agent 节点(最常见方式)

方式一:SSH 节点(推荐,稳定)

1. Agent 机器准备

yum install -y java-11-openjdk-devel
useradd jenkins
passwd jenkins

2. Master 上添加节点

  • Jenkins → Manage Jenkins
  • Manage Nodes and Clouds
  • New Node
    • Name: agent1
    • Type: Permanent Agent
  • 配置:
    • Remote root directory: /home/jenkins
    • Launch method: Launch agents via SSH
    • Host: agent IP
    • Credentials: jenkins 用户 SSH 账号

✅ 验证节点状态为 Online


方式二:JNLP 节点(适合容器 / 内网)

Agent 执行:

java -jar agent.jar \
-url http://master:8080/ \
-secret <secret> \
-name agent2 \
-workDir "/home/jenkins"

四、Docker 方式(推荐现代方案)

1. 安装 Docker

yum install -y docker
systemctl start docker

2. Jenkins 动态 Docker Agent

  • 安装插件:Docker / Docker Pipeline
  • 配置:
    • Manage Jenkins → Clouds → Docker
    • 设置 Docker Host
  • Pipeline 示例:
pipeline {
  agent {
    docker { image 'maven:3.8' }
  }
  stages {
    stage('Build') {
      steps {
        sh 'mvn clean package'
      }
    }
  }
}

✅ 自动创建/销毁 Agent


五、高可用(进阶)

Jenkins 官方不支持多 Master,可用方案:

方案 1:主从 + 共享存储

  • /var/lib/jenkins 放 NFS
  • 手动切换 Master

方案 2:Jenkins + Kubernetes

  • Jenkins Operator
  • Master + Pod Agent(最推荐)

六、常见坑

问题 解决
节点 Offline 防火墙 / SSH 不通
构建慢 Agent 太少
磁盘爆 清理 workspace
权限问题 jenkins 用户权限

七、推荐组合(生产)

✅ CentOS + Jenkins Master + SSH Agent
✅ 或 CentOS + Jenkins + Docker Agent
✅ 大规模:Jenkins + K8s


如果你愿意,我可以:

  • 给你 完整一键脚本
  • 帮你设计 Pipeline 示例
  • 根据你规模推荐 节点数量

你现在是 几台机器 / 什么项目?

0 踩