2024最新 Jenkins + Docker实战教程(八)- Jenkins实现集群并发构建

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

2024最新 Jenkins + Docker实战教程(八)- Jenkins实现集群并发构建

  • 1、前言
  • 2、什么是Jenkins集群?
  • 3、配置Jenkins集群
    • 3.1 集群准备
    • 3.2 开始配置
    • 3.3 验证配置
  • 4、测试并发构建
  • 5、Jenkins集群的优势
  • 6、结语

1、前言

Hello小伙伴们,今天博主又抽空来更新Jenkins系列教程啦,在我们日常开发工作中,随着项目规模和复杂度的增加,单台Jenkins服务器往往难以满足高频次、大量构建任务的需求。通过实现Jenkins集群并发构建,可以显著提升构建效率和系统可靠性。本文将详细介绍如何配置Jenkins集群,实现并发构建。

2、什么是Jenkins集群?

Jenkins集群(Master-Slave架构)由一个主节点(Master)和多个从节点(Slave)组成。主节点负责管理任务调度、配置和监控,而从节点则实际执行构建任务。通过将构建任务分布到多个从节点上,可以实现并发构建,提高构建效率和系统的弹性。

3、配置Jenkins集群

3.1 集群准备

前面的章节,我们使用了一台Jenkins服务器 + 一台应用服务器来实现自动化构建部署,今天我们需要增加一台Jenkins从节点服务器,无论你是克隆之前的Jenkins服务器还是新创建服务器作为从节点,必须要求有JDK的环境

从节点服务器无需安装Jenkins服务,但是必须保证安装了JDK环境

以博主的Parallels Desktop为例,复制Jenkins服务器作为从节点
在这里插入图片描述

将主节点和从节点服务器依次启动,两台服务器分别如下:

主节点:192.168.1.20 - 具备Jenkins环境并启动
从节点:192.168.1.22 - 具备JDK环境

3.2 开始配置

打开Jenkins管理界面:在浏览器中访问http://<your_master_server>:8080
找到 配置 - 节点和云管理
在这里插入图片描述
添加新的节点,命名为jenkins-1
在这里插入图片描述
创建完成进入配置
在这里插入图片描述
配置启动方式,博主为了简化操作,直接选择SSH启动代理

启动方式目前有三种

  • 通过在控制器上执行命令启动代理
  • Launch agents via SSH(通过SSH启动代理)
  • 通过Java Web启动代理

在这里插入图片描述

3.3 验证配置

最后确认是否同步成功
在这里插入图片描述
登陆从节点服务器观察工作目录,会发现工作目录下多了两个文件
在这里插入图片描述

4、测试并发构建

配置完成后观察左下角 构建执行状 态栏
在这里插入图片描述

在本教程之前的章节中,我们已经配置了一个 jenkins-demo 的任务, 具体可以访问:

2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署

进入我们的 jenkins-demo 任务,会发现当我们配置了集群后,会多了两个选项
在这里插入图片描述

  • 在必要时并发构建:系统会自动分配运行节点
  • 限制项目运行节点:通过直接设定的标签来指定某个任务固定运行在某个节点

我们就设定 jenkins-demo 固定运行在从节点执行
在这里插入图片描述
最后我们来进行测试,本系列教程我们一共设置了三个任务(日常开发中可能存在更多部署任务)
在这里插入图片描述
观察构建执行状态,如下图:
在这里插入图片描述

构建测试说明
由于 hello-worldjenkins-demo-ssh 我们并未配置节点,而 jenkins-demo 我们限制了从节点

  • 所以会看到上图中 hello-worldjenkins-demo-ssh 都默认在主节点执行, jenkins-demo 在我们的从节点执行

5、Jenkins集群的优势

从上述的教程案例中,我们不难发现使用Jenkins集群具备以下几种优势:

  • 提升构建速度: 通过并行执行多个构建任务,缩短整体构建时间。
  • 提高系统可靠性: 分散构建负载,避免单点故障。
  • 弹性扩展: 可以根据需求动态添加或移除从节点,灵活应对构建压力。
  • 环境隔离: 可以在不同从节点上配置不同的构建环境,满足多样化的构建需求。

6、结语

通过配置Jenkins集群并发构建,可以显著提升构建效率和系统可靠性。本文详细介绍了Jenkins集群的安装与配置方法,包括节点管理和并发构建的实现步骤。小伙伴们通过合理配置和维护Jenkins集群,可以进一步优化CI/CD流程,提高项目的交付质量和速度。希望篇教程能为您在实际项目中应用Jenkins集群提供有价值的参考。如您在操作过程中出现任何问题欢迎留言,博主将在第一时间给予解答!


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

群体优化算法----人工蜂群优化算法应用于路径规划(机器人避开平面障碍寻找最短路线)

介绍 人工蜂群优化算法&#xff08;Artificial Bee Colony Algorithm, ABC&#xff09;是由Dervis Karaboga在2005年提出的一种模拟蜜蜂觅食行为的优化算法。该算法基于蜜蜂群体的分工合作和信息交流机制&#xff0c;通过模拟蜜蜂寻找食物源的过程来解决优化问题。ABC算法因其…

INT202 例题

算法复杂度 O(n)&#xff1a;表示算法的渐进上界。如果一个算法的运行时间是O(n)&#xff0c;那么它的运行时间最多与输入规模n成正比。换句话说&#xff0c;当输入规模n增加时&#xff0c;算法的运行时间不会超过某个常数倍的n。比如&#xff0c;如果一个算法的时间复杂度是O(…

打开常用C语言常用内存函数的大门 ——memcmp函数及其模拟实现(完结篇)

文章目录 1. 前言2. memcmp函数2.1 memcmp函数的原型2.2 memcmp的返回值2.2 memcmp的形参2.3 memcmp函数的使用 3. memcmp函数的模拟实现4. 总结 1. 前言 本文是C语言常用内存函数的最后一个函数 —— memcmp函数。 希望各位观众佬爷们能够学会并灵活的使用这四个常用的内存函…

平板显示LED背光芯片OC6700,输入3.6V~60V,升压型 LED 恒流驱动器

概述 OC6700是一款内置60V功率NMOS高效率、高精度的升压型大功率LED恒流驱动芯片。OC6700采用固定关断时间的控制方式&#xff0c;关断时间可通过外部电容进行调节&#xff0c;工作频率可根据用户要求而改变。OC6700通过调节外置的电流采样电阻&#xff0c;能控制高亮度LED灯的…

C语言之指针进阶(5),sizeof和strlen的数组计算以及指针运算笔试难题详解

目录 前言 一、sizeof和strlen 的区分比较 二、sizeof,strlen与数组的计算 三、指针运算&#xff0c;笔试难题解析 总结 前言 本文作为指针进阶的最后一篇文章&#xff0c;给大家带来了丰富的例题&#xff0c;这其中包括区分比较sizeof和strlen计算各种花样的数组指针表达式…

Redis的SDS数据结构解决C语言字符串缺陷

redis设计了SDS这一数据结构来表示字符串而不是使用c语言的字符串&#xff1a;字符数组 那么redis为什么要大费周章自己设计字符串呢&#xff1f; 答案是C语言字符串有缺陷 1.获取字符串长度&#xff0c;需要遍历字符数组&#xff0c;时间复杂度是O&#xff08;N&#xff09…

Springboot vue3 elementplus 景点评论数据分析与可视化系统源码

源码链接 系统演示:链接&#xff1a;https://pan.baidu.com/s/1J056R4rYji_mc4gwteZEzg?pwdnua4

教程 | 在 Navicat 17 中管理连接

Navicat 17 提供了比以往更多的连接数据库实例的方式。除了传统的连接字符串方式以外&#xff0c;Navicat 17 还支持 URI 连接&#xff0c;无论身在何处&#xff0c;都可以轻松地通过 URI 访问对象。另外&#xff0c;还有一个新的管理连接功能&#xff0c;即允许你通过一个以用…

【LeetCode】39.组合总和

组合总和 题目描述&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个…

高中数学:平面向量-常考题型汇总

一、数量积运算 例题1 解析 首先&#xff0c;为了化简运算过程&#xff0c;我们把OA、OB、OC向量记作a、b、c向量。 其次&#xff0c;充分利用已知条件&#xff0c;进行消元&#xff0c;两边平方&#xff0c;可以消除一个向量。 a → \mathop{a}\limits ^{\rightarrow} a→ *…

【简单探索微软Edge】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

R语言安装caret包报错

R语言安装caret包报错&#xff1a;Error: package or namespace load failed for ‘caret’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck vI[[i]]): 不存在叫‘recipes’这个名字的程辑包 https://rbasics.org/packages/caret-package-in-r/ R版本的问题&…

商业新闻|你还在用传统搜索引擎吗?

‍‍今天是2024年第22周 这是Yura「输出倒逼输入」计划的第11篇文章 全年进度&#xff1a;11/52 01 AI搜索为什么没超过传统搜索&#xff1f; 生成式AI在搜索引擎领域掀起了一轮又一轮的波澜&#xff0c;但是一年多过去了&#xff0c;不管是必应还是perplexity都并没有动摇Goog…

【TB作品】MSP430G2553霓虹灯呼吸灯跑马灯

霓虹灯&#xff1a; 跑马灯&#xff1a; 呼吸灯&#xff1a; 所有代码&#xff1a; 下载&#xff1a; https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tabBB08J2

苹果CMS:怎么添加2019和2020年份筛选

我们进入搜索的时候看到一个关于年份的搜索&#xff0c;那如果上面没有出现19,20我们该如何处理呢&#xff1f; 我们进入管理后台 -【系统】-【网站参数配置】-【预留参数】 添加下视频年代逗号隔开即可 如果要设置地区&#xff0c;语言也实在这里直接配置即可&#xff01;&am…

毫米波雷达阵列天线设计综合1(MATLAB仿真)

1 天线设计目标 毫米波雷达探测目标的距离、速度和角度&#xff0c;其中距离和角度和天线设计相关性较强。天线增益越高&#xff0c;则根据雷达方程可知探测距离越远&#xff1b;天线波束越窄&#xff0c;则角度分辨率越高&#xff1b;天线副瓣/旁瓣越低&#xff0c;则干扰越少…

Kibana的使用

在学习elasticsearch时&#xff0c;可以使用Kibana自带的开发工具&#xff0c;来提高效率&#xff0c; 浏览器打开Kibana,在左侧菜单栏中找到Dev Tools 该工具提供代码提示和代码格式化功能&#xff0c;非常有用&#xff0c;

【已解决】记录Vue2.x中npm install下载依赖报错:python2 Error: not found: python2问题(具体操作步骤)

项目场景&#xff1a; 项目场景&#xff1a;在项目开发中&#xff0c;升级了本地node版本后&#xff0c;重新npm install下载依赖报错找不到python环境 not found: python2 npm ERR! gyp verb check python checking for Python executable “python2” in the PATH 在尝试了各…

Codeforces Round 950 (Div. 3)(A~F2)

G题只会暴力..不会数据结构 A - 问题 Generator 暴力模拟即可 // Problem: A. Problem Generator // Contest: Codeforces - Codeforces Round 950 (Div. 3) // URL: https://codeforces.com/contest/1980/problem/A // Memory Limit: 256 MB // Time Limit: 1000 ms // //…

哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码

一:哈夫曼树的构造 ①权值,带权路径长度。 ②一组确定权值的叶子节点可以构造多个不同的二叉树,但是带权路径长度min的是哈夫曼树 ③算法基本思想及其实操图片演示 注:存储结构和伪代码 1 初始化: 构造2n-1棵只有一个根节点的二叉树,parent=rchild=lchild=-1; 其中…