CICD Day4、Jenkins主从架构

news/2025/1/8 15:36:25/文章来源:https://www.cnblogs.com/suyj/p/18656689
    Jenkins主从架构(Master-Slave)是一种分布式架构,主节点负责管理项目配置、任务调度和监控,从节点用于执行具体的构建任务。Jenkins主从架构如下图所示

image

	当项目触发构建时,主节点将任务分配到某个从节点,从节点根据项目配置执行一系列操作,如拉取代、代码编译、部署到目标服务器等。这种方式可以将构建过程中的负载有效地分散到各个从节点上,从而减轻主节点的负担,提高系统的稳定性。尤其是在多个项目同时构建的场景下,主从架构能够显著提高整体的执行效率

1、页面配置slave节点

  • 例如,向Jenkins中添加一个从节点,单击Manage Jenkins,再单击Nodes and Clouds,进入节点管理页面,如下图所示
    image
    默认存在一个名为Built-In Node的节点,这个节点是Jenkins本机,它不是一个真正的分布式节点。换句话说,在不添加其他节点的情况下,所有项目的构建都在本机执行。

  • 单击右上角的New Node按钮添加一个从节点,进入设置节点名称页面,这里输入Jenkins-Slave1,单击Create按钮创建并进入节点配置页面,配置如下:

    • Name:节点名称
    • Description:节点描述
    • Number of executors:节点执行器数量,用于设置同时执行构建任务的数量
    • Remote root directory:远程根目录,用于存储工作时产生的文件
    • Labels:节点标签,用于表示节点特性或用途的关键词
    • Usage:选择如何使用该节点,这里选择Use this node as much as possible,表示希望尽可能使用这个节点来执行构建任务
    • Launch method:选择如何启动代理,这里选择Launch agent by connecting it to the controller,表示手动在节点上启动代理程序
      具体的节点配置如下图所示
      image

2、命令行添加slave节点

保存配置后,该节点进入离线状态,需要在节点服务器上启动代理程序,登录从节点服务器上,下载代理程序文件

  • 代理程序文件获取方式
    image
    image
  • 下载代理程序文件、运行代理程序所需的jdk环境
curl -s http://172.16.99.82:8080/jnlpJars/agent.jar -o /usr/local/jenkins-agent.jar
yum install java-11-openjdk git -y
  • 后台启动代理程序
nohup java -jar /usr/local/jenkins-agent.jar -url http://172.16.99.82:8080/ -secret da832f2d629072a875c0b17ab70c4823f65b410fe00437870e71ec3ff37df930 -name "Jenkins-Slave1" -webSocket -workDir "/tmp/jenkins" >> /var/log/jenkins-agent.log 2>&1 &

一旦代理程序启动并成功连接到Jenkins,该节点会转为在线状态。
此时,项目触发构建,Jenkins 会优先将任务分配到这个从节点上。在控制台输出中,可以看到 Building remotely on Jenkins-Slave1 (web),这说明构建过程在Jenkins-slave节点上进行,而不是在Jenkins本机上执行
image

Jenkins 还提供了代理程序的容器镜像 jenkins/inbound-agent。使用Docker创建代理程序容器的命令如下:

docker run -d --name jenkins-slave  --restart always --init uhub.service.ucloud.cn/librarys/jenkins/inbound-agent:latest-jdk21 -url http://172.16.99.82:8080/  da832f2d629072a875c0b17ab70c4823f65b410fe00437870e71ec3ff37df930  Jenkins-Slave1docker run --init jenkins/inbound-agent -url http://jenkins-server:port <secret> <agent name>
  • 参数介绍
    • --name:容器的名称,这里可以自定义为 jenkins-slave
    • -- restart:容器的重启策略,always
    • --init:该选项启用 Docker 容器的进程管理(初始化进程)。启用初始化进程可以帮助容器正确处理一些信号,保证容器内应用的健康和资源清理。
    • -url:jenkins-master的地址
    • secret:创建完jenkins-slave可以看到
    • agent name:jenkins-slave的名称,需要也页面看到的保持一致

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

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

相关文章

如何进一步做好信息收集

如何进一步做好信息收集 前言 前面一节介绍了一些信息收集的网站和工具,今天主要介绍一下如何进行半自动化的信息收集,全自动化的信息收集容易出现一些脏数据,而完全手工进行信息收集速率又太低,所以为了提高速率,我们需要充分利用一些脚本和工具 WHOIS半自动化收集 通过W…

链路诊断最佳实践:1 分钟定位错慢根因

面向生产应用“错”、“慢”两大风险,通过链路追踪及其关联数据、跨域实体关系和大模型算法,实现错慢请求智能根因定位,提升系统稳定性和运维效率。线上应用风险主要分为“错”、“慢”两大类。其中“错”的原因通常是程序运行不符合预期,比如 JVM 加载了错误版本的类实例,…

SwanLab最全使用教程:看这篇就够了

SwanLab是一个用于可视化和监控深度学习模型的工具。本文介绍了SwanLab的安装、启动和使用方法,并提供了参考链接。前言 机器学习通常涉及在训练期间可视化和度量模型的性能。 有许多工具可用于此任务。 在本文中,我们将重点介绍 SwanLab 开源工具,它可以服务于各种深度学习…

维修ABB IRB6700机器人的平衡缸3HAC043477出现异响

当ABB IRB6700机器人的平衡缸3HAC043477出现异响时,可能需要进行内部零件的检查和更换。以下是一些建议的步骤:1、检查IRB6700机械臂平衡缸的密封性:确保平衡缸的密封性良好,没有气体泄漏。如果发现有气体泄漏,可能需要更换密封件。2、检查活塞和缸体的磨损情况:如果活塞…

探索编程知识的宝库:www.readview.site 深度揭秘

在当今这个数字化浪潮汹涌澎湃的时代,编程技能已经如同基石一般,支撑着各行各业的创新与变革。无论是开发炫酷的手机应用、构建智能的物联网系统,还是投身于热门的大数据分析领域,扎实的编程功底都是迈向成功的关键一步。而在众多的学习资源中,www.readview.site 脱颖而出…

探索编程知识的宝库:[www.readview.site](http://www.readview.site) 深度揭秘

在当今这个数字化浪潮汹涌澎湃的时代,编程技能已经如同基石一般,支撑着各行各业的创新与变革。无论是开发炫酷的手机应用、构建智能的物联网系统,还是投身于热门的大数据分析领域,扎实的编程功底都是迈向成功的关键一步。而在众多的学习资源中,www.readview.site 脱颖而出…

Mysql连接报错排查解决记录

Mysql连接报错排查解决记录 背景:系统:uos server-1060e​ 运行环境kvm虚拟机​ mysql版本:5.7.44, for Linux (x86_64)问题现象: 宿主机重启后,kvm虚拟机内的mysql服务无法远程连接了。通过不同的客户端工具连接,报错现象分别如下: dbeaver-ce 工具连接报错: Can no…

CDS标准视图:维修工单工艺数据 I_MAINTORDEROPERATIONDATA

视图名称:维修工单工艺数据 I_MAINTORDEROPERATIONDATA 视图类型:基础 视图代码:点击查看代码 @EndUserText.label: Maintenance Order Operation Data @VDM.viewType: #COMPOSITE @AccessControl.authorizationCheck: #CHECK @AbapCatalog.sqlViewName: IPMORDOPERDATA @Cl…

关于const的使用

1、修饰整型变量const int a 就是声明了一种常量表示该变量的内容不可改变 2、对于修饰指针的const就有说法了 const int *a 和int* const a这是两种不同的用法 第一种: const int *a表示定义了一个指向const变量的指针,但是指针本身不是const类型,也就是说指针本身可以修改…

UOS系统mysql服务安装

UOS系统mysql服务安装 背景 1、安装环境:kvm虚拟机2、运行环境:uos server-1060e3、架构:x864、安装mysql版本:mysql-5.71、安装准备 # Mysql官网 https://downloads.mysql.com/archives/community/ # 下载安装包 wget -i -c http://dev.mysql.com/get/mysql57-community-…

使用Docker搭建npm私有仓库

由于文章格式和图片解析问题,为了更好的阅读体验,读者可前往 阅读原文在公司团队内一般都会拥有私有的工具包或者其他依赖,这些东西又是比较敏感的信息,因此如npm私库的搭建在公司内部必不可少。 私库搭建方式有很多,本篇通过docker+nexus3的进行搭建。 本人使用ARM架构Ce…