温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

jenkins如何集群部署

发布时间:2026-09-11 09:58:19 来源:亿速云 阅读:97 作者:小樊 栏目:编程语言

下面按**“从 0 到 1”**的思路,系统讲一下 Jenkins 集群部署(Master + Agent 架构),包含常见方案、部署步骤和最佳实践。


一、Jenkins 集群的核心概念

Jenkins 本身不是分布式计算框架,所谓“集群”通常是指:

  • Jenkins Master(控制节点)
    • 管理任务、UI、调度
    • 不推荐跑重任务
  • Jenkins Agent(工作节点 / Slave)
    • 真正执行构建任务
    • 可以是物理机、虚拟机、容器

✅ 官方推荐:1 个 Master + 多个 Agent


二、Jenkins 集群常见部署方式

方式 1:Static Agent(静态节点)✅ 最常用

  • Master 手动添加 Agent
  • Agent 长期存在
  • 适合:固定服务器、稳定环境

方式 2:Docker Agent(动态容器)

  • 每个 Job 启动一个容器
  • 构建完销毁
  • 适合:CI/CD 高频构建

方式 3:Kubernetes Agent(云原生,强烈推荐)

  • Jenkins 在 K8s 中运行
  • 按需创建 Pod 作为 Agent
  • 适合:大规模、弹性场景

三、方案一:Master + 静态 Agent(基础集群)

1️⃣ 部署 Jenkins Master

docker run -d \
  --name jenkins-master \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /data/jenkins:/var/jenkins_home \
  jenkins/jenkins:lts

50000 端口用于 Agent 通信


2️⃣ 在 Agent 机器上准备环境

Agent 机器只需:

  • JDK
  • Git
  • 构建工具(Maven / Node 等)

3️⃣ Master 添加 Agent

路径:

Manage Jenkins → Manage Nodes → New Node

配置项:

  • Node Name:agent-01
  • Type:Permanent Agent
  • Remote root directory:/data/jenkins-agent
  • Launch method:
    • ✅ Launch agents via SSH(最常用)

填写:

  • Host
  • Credentials(SSH 私钥)
  • JVM Options(可选)

4️⃣ 验证

新建 Job:

  • Restrict where this project can be run
  • Label:agent-01

✅ 构建成功即集群生效


四、方案二:Docker 动态 Agent(推荐进阶)

1️⃣ 安装插件

Docker Plugin

2️⃣ 配置 Docker Cloud

Manage Jenkins → Clouds → Add Docker
  • Docker Host URI:unix:///var/run/docker.sock
  • 或 tcp://docker-host:2375

3️⃣ 定义 Agent 模板

  • Image:jenkins/agent:jdk17
  • Labels:docker-agent
  • 挂载卷、环境变量

4️⃣ Job 使用

Restrict to label: docker-agent

✅ 每次构建自动起容器,结束销毁


五、方案三:Kubernetes 集群(企业级)

架构

Jenkins Master (Deployment)
        ↓
Kubernetes Plugin
        ↓
Pod Agents (动态)

1️⃣ 安装插件

Kubernetes Plugin

2️⃣ 配置 Kubernetes Cloud

Manage Jenkins → Clouds → Kubernetes
  • Kubernetes URL
  • Namespace:jenkins
  • Jenkins URL:http://jenkins.master:8080

3️⃣ Pod Template

jenkins-agent:
  containers:
    - name: jnlp
      image: jenkins/inbound-agent

✅ Job 自动调度 Pod


六、高可用(HA)说明(重要)

⚠️ Jenkins Master 本身不支持原生 HA

常见方案:

  • 单 Master + 多 Agent(官方推荐)
  • Master 容器化 + 持久化存储
  • 备份 /var/jenkins_home
  • 或使用 Jenkins Operation Center(商业)

七、最佳实践总结

✅ 生产环境建议:

  • Master 不跑构建
  • Agent 按语言/环境打 Label
  • 使用容器 Agent
  • 定期备份 Jenkins Home
  • 权限使用 Role-Based Strategy

如果你愿意,我可以:

  • ✅ 给你一套 docker-compose 集群示例
  • ✅ 给你 K8s + Jenkins 完整 YAML
  • ✅ 按你的技术栈(Java / 前端 / Go)给方案

你现在是哪种使用场景?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手