首页 > 其他分享 >Jenkins部署架构概述

Jenkins部署架构概述

时间:2024-08-13 10:51:10浏览次数:14  
标签:架构 Agent 节点 Master 构建 Jenkins 概述

1、Jenkins是什么

  Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。

  Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。Jenkins可以很好的支持各种语言的项目构建,也完全兼容Maven、Ant、Gradle等多种第三方构建工具,同时跟SVN、GIT等常用的版本控制工具无缝集成,也支持直接对接GitHub等源代码托管网站。

2、Jenkins部署架构概述

  • 一种是直接使用单Master安装Jenkins,直接进行任务管理和业务构建发布,但可能存在一定的生产安全风险。
  • 一种是Master加Agent模式。Master节点主要是处理调度构建作业,把构建分发到Agent实际执行,监视Agent的状态。业务构建发布的工作交给Agent进行,即执行Master分配的任务,并返回任务的进度和结果。

  Jenkins的Master和Agent均可安装在虚拟机或容器中,且组合形式可多样。

3、Jenkins部署架构详解

3.1 单节点架构(单Master)

单Master安装Jenkins,直接进行任务管理和业务构建发布。虚拟机单Master安装Jenkins可以参考《Centos7下安装配置最新版本Jenkins(2.452.3)》这篇博文。

对于某些特定场景,单节点不足以满足需求:

  • 如果所有执行程序都忙于处理构建任务,则作业(Job)必须等待。
  • 当项目的数量或负载增加时,很可能会耗尽资源。

为了恢复并运行Jenkins基础设施,需要通过增加内存、CPU等来增强服务器,而这不具备可扩展性,必须根据需求维护和升级服务器。

在维护升级过程中,构建环境将被关闭,作业不得不停止,整个Jenkins基础设施将不可用。

这种单节点架构会造成系统经常处于idel状态,分配给Jenkins环境的资源在这种状态下也没法被充分利用。

单节点架构还会引入安全问题,因为Jenkins用户对所有资源和工作空间都拥有完全的权限。

由于所有这些原因,Jenkins支持分布式架构,其中构建项目的工作负载被委托给多个Jenkins代理。

3.2 分布式架构(Master加Agent)

Master节点主要是处理调度构建作业,把构建分发到Agent实际执行,监视Agent的状态。业务构建发布的工作交给Agent进行,即执行Master分配的任务,并返回任务的进度和结果。

Jenkins的Master和Agent均可安装在虚拟机或容器中,您可根据自身需求选择其中一种方案执行:

  • 固定Agent(一般是虚拟机):Agent一直运行,任务构建完成后不会销毁,创建完成后将一直占用集群资源,配置过程较简单。
  • 动态Agent(一般是k8s):构建任务时动态创建Agent容器,并在任务构建完成后销毁容器,可实现资源动态分配,资源利用率高,但是配置过程较为复杂。

下面以动态Agent(k8s集群)Jenkins分布式结构图为例展示下Jenkins分布式架构。

主节点负责:

  1. 调度构建作业。
  2. 将构建作业分发给代理实际执行。
  3. 监视从节点(Slave),并根据需要停止其工作。
  4. 如果所有Jenkins代理都被占用,也可以直接执行作业。

Jenkins代理负责:

  1. 从主节点接收请求或工作,代理的工作就是按命令行事。
  2. 可以将工作配置为始终在特定代理上执行。
  3. 主节点将利用其资源来处理HTTP请求和管理构建环境,构建的实际执行将委托给代理。

通过这种配置,可以横向扩展Jenkins架构,其中Jenkins将安装在单个节点上。

主要参考:https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0066.html

标签:架构,Agent,节点,Master,构建,Jenkins,概述
From: https://www.cnblogs.com/zhangmingcheng/p/18355463

相关文章

  • 淘客APP的功能架构与技术挑战:实现高效返利
    淘客APP的功能架构与技术挑战:实现高效返利大家好,我是阿可,微赚淘客系统及省赚客APP创始人,是个冬天不穿秋裤,天冷也要风度的程序猿!淘客APP作为一种新型的电商推广工具,其核心功能在于为用户提供商品返利服务,帮助用户在购物的同时获得额外的收益。本文将探讨淘客APP的功能架构......
  • 【架构师视角系列】风控场景下的配置中心设计思考
    声明原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/18055933《码头工人的一千零一夜》是一位专注于技术干货分享的博主,追随博主的文章,你将深入了解业界最新的技术趋势,以及在Java开发和安全领域的实用经验分享。无论你是开发人员还是对逆向工程感兴趣的爱好者,都能在《......
  • 了解经典的 MPLS L3VPN 网络架构
    1.多协议标签交换技术MPLS的概念        MPLS(Multi-ProtocolLabelSwitching,多协议标签交换技术),传统网络中就拥有了3种经典转发实现,它们分别是:L2交换转发L2.5标签转发L3路由转发        MPLS协议则作用于L2.5层,其将L3路由技术和L2交换技术相......
  • 三层架构与解耦——IoC&DI机制【后端 7】
    三层架构与解耦——IoC&DI机制在软件开发领域,三层架构(Controller、Service、Dao)是一种广泛采用的架构模式,它通过将应用程序分为三个主要层次来组织代码,旨在提高代码的可维护性、复用性和可扩展性。而解耦(Decoupling)则是实现这些目标的关键技术之一。本文将深入探讨三层架......
  • 在K8S中,简单陈述⼀下K8S架构?
    K8S(Kubernetes)是一个开源的容器编排和管理平台,它提供了容器部署、扩展、管理以及服务发现等功能。K8S的架构可以大致分为控制平面(ControlPlane)和工作节点(WorkerNodes)两部分。以下是对K8S架构的详细陈述:一、控制平面(ControlPlane)控制平面是K8S集群的“大脑”,负责集群的调度、......
  • (3-2)文生图模型架构:Transformer架构
    3.2 Transformer架构Transformer是文生图模型架构的重要组成部分之一,具体来说,Transformer被广泛应用于文本编码部分,即实现文本编码器的功能。3.2.1 Transformer的基本结构Transformer架构是由Vaswani等人在2017年提出的一种基于注意力机制的深度学习模型,广泛应用于自然......
  • Jenkins+gitlab+harbor+docker-compose自动化部署配置
    本文主要讲解Jenkins在Linux环境下实现自动化部署项目(提供一种思路)持续集成与持续部署(CI/CD)流程的实现,需要依赖一系列先进的工具和技术。这些工具不仅提高了开发效率,还确保了代码质量和发布的可靠性。以下是构建CI/CD流程所需的关键工具列表及其作用概述:Jenkins-作为自动化......
  • Jenkinsfile添加清理工作空间
    前端node由于依赖的版本问题会需要使用清理工作空间1.在parameters中添加booleanParam(name:'CleanWorkspace',defaultValue:false,description:'清理工作空间,默认不清理!')2.在stages.stage.steps.script初始化信息中添......
  • ⽹络基础概述
    ⽹络基础概述Linux7⽹卡命名规则传统的rhel系统以eth0eth1名来命名⽹卡,在rhel7系统开始使⽤新的命名规则:基于固件、设备结构、设备类型1.由两个字⺟开头标示固件以太⽹⽹卡以en开头⽆线⽹卡以wl开头2.设备结构o表示板载⽹卡(on-board)s热插拔结构(hotp......
  • linux反向代理原理:帮助用户更好地优化网络架构
    Linux反向代理原理详解反向代理是一种在网络架构中常用的技术,尤其在Linux环境下被广泛应用。它可以帮助实现负载均衡、安全防护和请求缓存等功能。本文将深入探讨Linux反向代理的原理、工作机制以及其应用场景。1.什么是反向代理反向代理是指代理服务器接收客户端的请求,......