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

news2024/11/27 3:49:39

在这里插入图片描述

😄 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.coloradmin.cn/o/1803077.html

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

相关文章

转型AI产品经理(4):“认知负荷”如何应用在Chatbot产品

认知负荷理论主要探讨在学习过程中&#xff0c;人脑处理信息的有限容量以及如何优化信息的呈现方式以促进学习。认知负荷定律认为&#xff0c;学习者的工作记忆容量是有限的&#xff0c;而不同类型的认知任务会对工作记忆产生不同程度的负荷&#xff0c;从而影响学习效果。以下…

Java面试八股之什么是自动装箱和自动拆箱

什么是自动装箱和自动拆箱 在Java中&#xff0c;自动装箱&#xff08;Autoboxing&#xff09;和自动拆箱&#xff08;Auto-unboxing&#xff09;是两个与基本数据类型和它们对应的包装类之间的转换相关的特性。这两个概念自Java 5&#xff08;也称为Java SE 5或JDK 5&#xff…

SpringBoot3整合Mybatis-Plus3.5.5出现的问题

主要是由于 mybatis-plus 中 mybatis 的整合包版本不够导致的 排除 mybatis-plus 中自带的 mybatis 整合包&#xff0c;单独引入即可 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.Stringat org.springframework.…

Linux安装Qt5.14.2

下载 qt 5.14.2下载网址 下载qt-opensource-linux-x64-5.14.2.run Linux系统下载.run文件&#xff08;runfile文件&#xff09;&#xff0c;windows系统下载.exe文件&#xff0c;mac系统下载.dmg文件。 md5sums.txt中是各个文件对应的MD5校验码。 验证MD5校验码 md5sum是li…

例54:Draw使用

建立一个控制台工程&#xff0c;输入代码&#xff1a; Screen 13 移动到&#xff08;50,50&#xff09;而不绘图 Draw "BM 50,50" B:移动但不绘制,M:移动到指定位置 将绘图颜色设置为2&#xff08;绿色&#xff09; Draw "C2" C将颜色改为n …

后台管理系统排序混乱,分页出现重复条例

检查了接口和请求参数都没有问题。 查询数据库发现是排序字段create_time 都相同导致的。没有区分度。 解决方案 按照唯一id排序 避免create_time 大批量相同 order by create_time &#xff0c;xxx 两个排序字段

171.二叉树:二叉树的所有路径(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr, right(nullptr) {}* Tree…

电脑提示msvcp140.dll丢失的解决方法(附带详细msvcp140.dll文件分析)

msvcp140.dll是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;属于Microsoft Visual C 2015 Redistributable的一部分。它全称为 "Microsoft C Runtime Library" 或 "Microsoft C Runtime Library"&#xff0c;表明该文件是微软C运行时库的一…

Vue3【十二】09Computed计算属性

Vue3【十二】09Computed计算属性 计算属性 获取全名 这种方式是只读的不能修改 这样定义fullName是一个计算属性&#xff0c;可读可写 案例截图 目录结构 代码 Person.vue <template><div class"person"><h1>我是 Person 组件</h1>姓&…

09.2手工制作docker镜像-kod服务

手工制作docker镜像-kod服务 基于centos6.9系统镜像&#xff0c;搭建kod服务&#xff0c;提交镜像 创建并进入容器 添加centos6系统的yum源和epel源 yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo epel源 curl -o /e…

家宽动态公网IP,使用docker+ddns 实现动态域名解析

官方地址&#xff1a;https://github.com/jeessy2/ddns-go 安装docker docker pull jeessy/ddns-godocker run -d --name ddns-go --restartalways --nethost -v /opt/ddns-go:/root jeessy/ddns-go然后访问ip端口 配置时注意如下

基于OpenVINO实现无监督异常检测

异常检测(AD) 在欺诈检测、网络安全和医疗诊断等关键任务应用中至关重要。由于数据的高维性和底层模式的复杂性&#xff0c;图像、视频和卫星图像等视觉数据中的异常检测尤其具有挑战性。然而&#xff0c;视觉异常检测对于检测制造中的缺陷、识别监控录像中的可疑活动以及检测医…

突发!凌晨4点某制造业大厂国产数据库集群故障...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

02Linux文件,目录,过滤,管道常用命令

Linux基础概述 Linux基础目录 Linux没有盘符这个概念, 只有一个顶级根目录 /, 所有文件都在它下面 在Windows系统中路径之间的层级关系使用/来表示在Linux系统中路径之间的层级关系使用/来表示,出现在开头的/表示根目录, /home/a.txt表示根目录下的home文件夹内有a.txt文件 …

Android Studio 中文汉化教程

1. 中文语言包 一般jetbrains系列软件都可以使用“中文语言包”进行汉化&#xff0c;语言包如下图所示&#xff1a; 然而&#xff0c;Android Studio的Marketplace并没有类似的中文语言包&#xff08;如下图&#xff09;&#xff0c;经过查阅相关资料发现需要去jetbrains的插件…

像素着色技术在AI绘画中的革新作用

摘要&#xff1a;随着人工智能技术的不断进步&#xff0c;AI绘画已成为艺术和技术领域中的一个热门话题。本文将探讨像素着色技术在AI绘画中的应用及其对创作过程的影响&#xff0c;揭示这一技术如何推动艺术创作的革新。 引言&#xff1a; 传统的绘画方法要求艺术家具备高超的…

代码随想录算法训练营第36期DAY50

DAY50 如果写累了就去写套磁信吧。 198打家劫舍 class Solution {public: int rob(vector<int>& nums) { vector<int> dp(nums.size()); dp[0]nums[0]; if(nums.size()1) return nums[0]; dp[1]max(nums[0],nums[1]); …

嵌入式Linux中使用PWM应用编程详解

大家好,今天给大家分享一下,如何使用linux系统中PWM实现应用端的控制,以及PWM控制详解。 第一:PWM基本原理 PWM,英文名Pulse width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字…

【Python机器学习】PCA——特征提取(1)

PCA的一个重要应用是特征提取。特征提取背后的思想是&#xff0c;可以找到一种数据表示&#xff0c;比给定的原始表示更适合于分析。特征提取很有用&#xff0c;它的一个很好的应用实例就是图像。图像由像素组成&#xff0c;通常存储于红绿蓝强度。图像中的对象通常由上千个像素…

Python可视化 | 使用matplotlib绘制面积图示例

面积图是数据可视化中的一个有效工具&#xff0c;用于说明时间上的关系和趋势。它们提供了一种全面的、视觉上迷人的方法&#xff0c;通过熟练地将折线图的可读性与填充区域的吸引力相结合来呈现数值数据。 在本文中&#xff0c;我们将学习更多关于在Python中创建面积折线图的…