CN111262908A - 基于jenkins的任务构建方法及系统 - Google Patents

基于jenkins的任务构建方法及系统 Download PDF

Info

Publication number
CN111262908A
CN111262908A CN202010020545.4A CN202010020545A CN111262908A CN 111262908 A CN111262908 A CN 111262908A CN 202010020545 A CN202010020545 A CN 202010020545A CN 111262908 A CN111262908 A CN 111262908A
Authority
CN
China
Prior art keywords
node
kubernets
task
jenkins
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010020545.4A
Other languages
English (en)
Inventor
李炀
杜晨阳
朱培航
熊伟楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010020545.4A priority Critical patent/CN111262908A/zh
Publication of CN111262908A publication Critical patent/CN111262908A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本发明提供一种基于jenkins的任务构建方法及系统。该方法包括:kubernets控制节点根据来自jenkins主节点的构建任务生成构建任务通知,发送构建任务通知至其中一个kubernets node节点;kubernets node节点根据构建任务通知创建pod节点;kubernets控制节点拉取构建任务对应的镜像至pod节点;pod节点运行镜像,生成容器,并挂载容器;kubernets控制节点发送构建任务至kubernets node节点;kubernets node节点发送构建任务至pod节点;pod节点发送构建任务至容器;容器执行构建任务。本发明可以提高资源的利用率,降低维护成本。

Description

基于jenkins的任务构建方法及系统
技术领域
本发明涉及计算机技术领域,具体地,涉及一种基于jenkins的任务构建方法及系统。
背景技术
过去十年,云计算技术风起云涌,云的形态也在不断演进。随着云原生技术理念在行业内进一步的实践发展,云原生架构完成了IT架构在云计算时代的进化升级。以CI/CD、DevOps、微服务架构为代表的云原生技术以其高效稳定、快速响应的特点驱动引领企业的业务发展,帮助企业构建更加适合用于云上的应用服务。在云端进行项目构建时,现阶段用的最多的构建调度工具是开源软件Jenkins,Jenkins用于自动化各种任务,包括构建、测试和软件部署。Jenkins的稳定性不光决定了整个云平台的构建的平稳运行,还决定了整个平台的构建效率问题,因此Jenkins的高可用性便成为云计算构建技术的重中之重。Jenkins自身支持Master/Slave方案,该方案是在主节点(Master)下挂载从节点(Slave),主节点只进行任务的调度工作,构建任务则是在从节点上进行;相较于单纯的使用主节点去构建,解决了主节点服务内存和CPU资源占用过高导致主节点崩溃和构建效率过低的问题。但是,各应用版本部署作业通常只在特定时间点进行,例如一周一次或一月一次。而且在该特定时间内各应用版本部署作业的运行并发数可能非常高,当部署挂载的从节点数量较少时明显不能满足大并发数的性能要求,作业需要长时间在队列中等待;如果部署挂载大量从节点,在空闲时间会造成大量资源浪费,而且后期维护成本也很高。
发明内容
本发明实施例的主要目的在于提供一种基于jenkins的任务构建方法及系统,以提高资源的利用率,降低维护成本。
为了实现上述目的,本发明实施例提供一种基于jenkins的任务构建方法,包括:
kubernets控制节点根据来自jenkins主节点的构建任务生成构建任务通知,发送构建任务通知至其中一个kubernets node节点;
kubernets node节点根据构建任务通知创建pod节点;
kubernets控制节点拉取构建任务对应的镜像至pod节点;
pod节点运行镜像,生成容器,并挂载容器;
kubernets控制节点发送构建任务至kubernets node节点;
kubernets node节点发送构建任务至pod节点;
pod节点发送构建任务至容器;
容器执行构建任务。
本发明实施例还提供一种基于jenkins的任务构建系统,包括:
kubernets控制节点,用于根据来自jenkins主节点的构建任务生成构建任务通知,发送构建任务通知至其中一个kubernets node节点;拉取构建任务对应的镜像至pod节点;发送构建任务至kubernets node节点;
kubernets node节点,用于根据构建任务通知创建pod节点;发送构建任务至pod节点;
pod节点,用于运行镜像,生成容器,并挂载容器;发送构建任务至容器;
容器,用于执行构建任务。
本发明实施例的基于jenkins的任务构建方法及系统中的kubernets node节点创建pod节点,kubernets控制节点拉取构建任务对应的镜像至pod节点,令pod节点运行镜像,生成并挂载容器;kubernets控制节点还通过kubernets node节点和pod节点将构建任务至容器,容器执行构建任务,以提高资源的利用率,降低维护成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于jenkins的任务构建方法的流程图;
图2是本发明实施例中kubernets集群的整体架构图;
图3是本发明实施例中kubernets node节点的整体架构图;
图4是本发明实施例中pod节点的整体架构图;
图5是本发明另一实施例中基于jenkins的任务构建方法的流程图;
图6是本发明实施例中基于jenkins的任务构建系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
鉴于现有技术存在资源浪费,维护成本高等问题,本发明实施例提供一种基于jenkins的任务构建方法,以提高资源的利用率,降低维护成本。以下结合附图对本发明进行详细说明。
图1是本发明一实施例中基于jenkins的任务构建方法的流程图。如图1所示,基于jenkins的任务构建方法包括:
S101:kubernets控制节点根据来自jenkins主节点的构建任务生成构建任务通知,发送构建任务通知至其中一个kubernets node节点。
其中,jenkins主节点通过kubernets插件将构建任务发送至kubernets控制节点。
一实施例中,S101包括:kubernets控制节点查询每个kubernets node节点的资源状态,并根据每个kubernets node节点的资源状态确定空闲的kubernets node节点;kubernets控制节点发送构建任务通知至其中一个空闲的kubernets node节点。
其中,kubernets控制节点可以根据Kubernets集群的运行情况动态增加或删除kubernets node节点的数量。kubernets node节点会定时向kubernets控制节点汇报该节点的资源使用情况,kubernets控制节点会根据情况进行资源的调控。
S102:kubernets node节点根据构建任务通知创建pod节点。
其中,pod被创建成功后,可以使用以下命令查看所有pod的启动和运行状态:
kubectl get pods。
S103:kubernets控制节点拉取构建任务对应的镜像至pod节点。
S104:pod节点运行镜像,生成容器,并挂载容器。
S105:kubernets控制节点发送构建任务至kubernets node节点。
S106:kubernets node节点发送构建任务至pod节点。
S107:pod节点发送构建任务至容器。
S108:容器执行构建任务。
一实施例中,jenkins主节点通过kubernets插件使用kubectl命令启动容器的命令如下:
kubectl run jenkins-slave--image=jenkins-image--replicas=2--port=80;
这条命令是用kubectl命令同时创建了两个运行实例的jenkins-image pod来保证始终有两个pod在运行,从而实现高可用。
图1所示的基于jenkins的任务构建方法的执行主体可以为基于jenkins的任务构建系统。由图1所示的流程可知,本发明实施例的基于jenkins的任务构建方法中的kubernets node节点创建pod节点,kubernets控制节点拉取构建任务对应的镜像至pod节点,令pod节点运行镜像,生成并挂载容器;kubernets控制节点还通过kubernets node节点和pod节点将构建任务至容器,容器执行构建任务,以提高资源的利用率,降低维护成本。
其中,kubernets控制节点和kubernets node节点属于kubernets集群。kubernetsnode节点为工作负载节点,根据系统需求可以部署多个,支持动态增加和删除。
图2是本发明实施例中kubernets集群的整体架构图。如图2所示,在kubernets控制节点中有四个关键进程:Kube-controller-manager、Kube-apiserver、Kube-scheduler和etcd。其中Kube-apiserver与Kube-controller-manager及Kube-scheduler间存在交互。用户通过kubectl命令可以与Kube-apiserver进行交互,这也是kubernets集群的唯一入口。
LVS是Linux Virtual Server的简写,即Linux虚拟服务器。Controller Manager是kubernets里所有资源对象的自动化控制中心,可以理解为资源对象的“总管”。APIServer提供了HTTP Rest接口的关键服务进程,是kubernets里所有资源增、删、改、查等操作的唯一入口,也是进群控制的入口进程;Scheduler负责资源调度(pod节点调度)进程,相当于公交公司的“调度室”;kubernets里的所有资源对象的数据都保存在etcd中。
图3是本发明实施例中kubernets node节点的整体架构图。如图3所示,kubernetsnode节点可以在运行期间动态增加到kubernets集群中,前提是这个节点上已经正确安装、配置和启动了上述关键进程。在默认情况下,kubelet会向kubernets控制节点注册自己,这也是kubernets推荐的node节点管理方式。一旦kubernets node被纳入集群管理范围,kubelet进程就会定时向kubernets控制节点汇报自己的情况,例如操作系统、Docker版本、机器的CPU和内存情况,以及当前有哪些pod节点在运行等,这样kubernets控制节点可以获知每个node节点的资源使用情况,并实现高效均衡的资源调度策略。
Image Registry是镜像仓库,对镜像进行统一的管理和存储的地方。OptionalAdd-ons:DNS,UI,etc指的是为运行的容器配置DNS、UI、etc等插件。Supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行。Kube-proxy是通过在主机上维护网络规则并执行转发来实现Kubernets服务抽象。Fluented是一个守护进程,可提供cluster-level logging。
图4是本发明实施例中pod节点的整体架构图。如图4所示,pod节点是kubernets的基本构件,是在kubernets中能够创建或部署的最小对象。一个pod节点代表集群中一个正在运行的进程,相当于一个共享context的配置组,在同一个context下,应用可还会有独立的cgroup隔离机制,一个pod节点是一个容器环境下的“逻辑主机”,它可能包含一个或多个紧密相连的应用,这些应用可能是在同一个物理主机或虚拟机上。
pod节点将一个应用程序容器(在某些情况下是多个容器,要在pod节点的YAML文件中做定义)、存储资源、唯一的网络IP以及控制容器应该如何运行的配置封装在一起。一个pod代表一个部署单元:即kubernets中单个应用程序实例,可能包含单个容器或少量紧密耦合且共享资源的容器。jenkins从节点的容器便是运行在pod中,当有任务时可以运行一个容器到pod中,构建任务结束时可以通过容器回收机制将运行的容器进行停止,从而实现资源的回收。content manager是指一个数据管理器。consumer是指运行的客户端。webserver是指web服务。volume是指容器挂载的卷。file puller是指文件获取的操作。
图5是本发明另一实施例中基于jenkins的任务构建方法的流程图。如图5所示,在执行S101之前,基于jenkins的任务构建方法还包括:
S201:服务器搭建jenkins主节点、kubernets控制节点和多个kubernets node节点。
其中,可以搭建两个jenkins主节点,两个jenkins主节点通过Keepalived进行检活灾备的操作。
S202:服务器搭建jenkins从节点,并对jenkins从节点进行容器化操作,生成镜像。
其中,镜像中包括构建任务的相关插件的组件,如:Maven、JDK和SonarScanner等。构建镜像的基础镜像可以是linux内核的基础镜像,如Centos和ubuntu等操作系统。
S203:服务器将镜像存储至镜像库。
其中,镜像库可以为Harbor镜像库。
此时S103包括:kubernets控制节点从镜像库中拉取构建任务对应的镜像至pod节点。
一实施例中,基于jenkins的任务构建方法还包括:pod节点获取容器的容器ID,将容器ID发送至kubernets node节点;kubernets node节点将容器ID发送至kubernets控制节点。
此时S105包括:kubernets控制节点根据容器ID发送构建任务至kubernets node节点。当有多个构建任务时,kubernets启动多个容器,可以通过不同的容器ID来进行区分。
一实施例中,当构建任务结束时,容器通过pod节点和kubernets node节点,将包括容器ID的任务结束通知发送至kubernets控制节点。kubernets控制节点在收到任务结束通知后,根据容器ID回收对应的容器。
一实施例中,可以使用以下命令将容器进行停止,同时也将占用的资源进行回收:
kubectl stop rc jenkins-slave。
一实施例中,当容器宕机时,容器通过pod节点和kubernets node节点,将包括容器ID的宕机通知发送至kubernets控制节点。kubernets控制节点在收到宕机通知后,根据容器ID重启对应的容器。
本发明实施例的具体流程如下:
1、服务器搭建jenkins主节点、kubernets控制节点和多个kubernets node节点。
2、服务器搭建jenkins从节点,并对jenkins从节点进行容器化操作,生成镜像。
3、服务器将镜像存储至Harbor镜像库。
4、jenkins主节点通过kubernets插件将构建任务发送至kubernets控制节点。
5、kubernets控制节点根据构建任务生成构建任务通知。
6、kubernets控制节点查询每个kubernets node节点的资源状态,并根据每个kubernets node节点的资源状态确定空闲的kubernets node节点。
7、kubernets控制节点发送构建任务通知至其中一个空闲的kubernets node节点。
8、kubernets node节点根据构建任务通知创建pod节点。
9、kubernets控制节点从Harbor镜像库中拉取构建任务对应的镜像至pod节点。
10、pod节点运行镜像,生成容器,并挂载容器。
11、pod节点获取容器的容器ID,将容器ID发送至kubernets node节点;kubernetsnode节点将容器ID发送至kubernets控制节点。
12、kubernets控制节点根据容器ID发送构建任务至kubernets node节点,kubernets node节点发送构建任务至pod节点,pod节点发送构建任务至容器。
13、容器执行构建任务。
综上,本发明实施例的基于jenkins的任务构建方法中的kubernets node节点创建pod节点,kubernets控制节点拉取构建任务对应的镜像至pod节点,令pod节点运行镜像,生成并挂载容器;kubernets控制节点还通过kubernets node节点和pod节点将构建任务至容器,容器执行构建任务,以提高资源的利用率,降低维护成本。
综上所述,本发明实施例提供的基于jenkins的任务构建方法具有以下有益效果:
(1)通过结合kubernetes可以实现对jenkins从节点的动态创建、停止以及资源的回收利用,降低了对jenkins从节点的维护成本,并且提高了对构建资源的利用率;
(2)现有技术主要采用的是虚拟机或物理机模式的主从方案,jenkins主节点和jenkins从节点全部部署在虚拟机或物理机上,当jenkins的高可用性资源不足时,需要不断增加jenkins从节点来提升运行效率,这就会导致jenkins从节点的数量越来越多,维护的成本也会越来越高。而本发明实施例中的jenkins主节点只有在构建任务出现时才会调用kubernetes去创建一个容器执行构建任务;当构建任务结束时,可以将容器进行回收,这样对于jenkins从节点的维护全部交由kubernetes进行管理,大大降低了维护成本;
(3)现有技术采用将jenkins主节点和jenkins从节点全部部署在虚拟机或物理机的模式,当构建任务数量大于jenkins从节点的数量时,将会出现任务堵塞,从而导致构建效率降低,只能通过增加虚拟机或物理机数量来解决效率降低的问题。而本发明实施例只需要增加kubernetes的pod节点数量,在每一个pod节点里面运行容器即可。并且每一个pod节点里面理论上最多可以运行130个容器,相较于现有技术在每一台物理机或虚拟机上运行一个构建任务的方式,资源利用率得到了显著的提升;
(4)现有技术在jenkins从节点出现宕机时无法执行构建任务,此时需要运维人员手动启动jenkins从节点以再次进行构建。而本发明实施例采用kubernetes管理jenkins从节点的方式,当容器出现宕机的情况时,kubernetes会自动对容器进行重启,再次执行构建任务,释放人工,大大降低运维成本。
基于同一发明构思,本发明实施例还提供了一种基于jenkins的任务构建系统,由于该系统解决问题的原理与基于jenkins的任务构建方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
图6是本发明实施例中基于jenkins的任务构建系统的结构框图。如图6所示,基于jenkins的任务构建系统包括:
kubernets控制节点,用于根据来自jenkins主节点的构建任务生成构建任务通知,发送构建任务通知至其中一个kubernets node节点;拉取构建任务对应的镜像至pod节点;发送构建任务至kubernets node节点;
kubernets node节点,用于根据构建任务通知创建pod节点;发送构建任务至pod节点;
pod节点,用于运行镜像,生成容器,并挂载容器;发送构建任务至容器;
容器,用于执行构建任务。
在其中一种实施例中,还包括:
服务器,用于搭建jenkins主节点、kubernets控制节点和多个kubernets node节点;搭建jenkins从节点,并对jenkins从节点进行容器化操作,生成镜像;将镜像存储至镜像库;
kubernets控制节点具体用于:从镜像库中拉取构建任务对应的镜像至pod节点。
在其中一种实施例中,kubernets控制节点具体用于:查询每个kubernets node节点的资源状态,并根据每个kubernets node节点的资源状态确定空闲的kubernets node节点;发送构建任务通知至其中一个空闲的kubernets node节点。
在其中一种实施例中,pod节点还用于:获取容器的容器ID,将容器ID发送至kubernets node节点;
kubernets node节点还用于:将容器ID发送至kubernets控制节点;
kubernets控制节点具体用于:根据容器ID发送构建任务至kubernets node节点。
在其中一种实施例中,jenkins主节点用于:通过kubernets插件将构建任务发送至kubernets控制节点。
综上,本发明实施例的基于jenkins的任务构建系统中的kubernets node节点创建pod节点,kubernets控制节点拉取构建任务对应的镜像至pod节点,令pod节点运行镜像,生成并挂载容器;kubernets控制节点还通过kubernets node节点和pod节点将构建任务至容器,容器执行构建任务,以提高资源的利用率,降低维护成本。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

Claims (10)

1.一种基于jenkins的任务构建方法,其特征在于,包括:
kubernets控制节点根据来自jenkins主节点的构建任务生成构建任务通知,发送所述构建任务通知至其中一个kubernets node节点;
所述kubernets node节点根据所述构建任务通知创建pod节点;
所述kubernets控制节点拉取所述构建任务对应的镜像至所述pod节点;
所述pod节点运行所述镜像,生成容器,并挂载所述容器;
所述kubernets控制节点发送所述构建任务至所述kubernets node节点;
所述kubernets node节点发送所述构建任务至所述pod节点;
所述pod节点发送所述构建任务至所述容器;
所述容器执行所述构建任务。
2.根据权利要求1所述的基于jenkins的任务构建方法,其特征在于,还包括:
服务器搭建jenkins主节点、kubernets控制节点和多个kubernets node节点;
所述服务器搭建jenkins从节点,并对所述jenkins从节点进行容器化操作,生成镜像;
所述服务器将所述镜像存储至镜像库;
所述kubernets控制节点拉取所述构建任务对应的镜像至所述pod节点包括:
所述kubernets控制节点从所述镜像库中拉取所述构建任务对应的镜像至所述pod节点。
3.根据权利要求1所述的基于jenkins的任务构建方法,其特征在于,所述kubernets控制节点发送所述构建任务通知至其中一个kubernets node节点包括:
所述kubernets控制节点查询每个kubernets node节点的资源状态,并根据每个kubernets node节点的资源状态确定空闲的kubernets node节点;
所述kubernets控制节点发送所述构建任务通知至其中一个空闲的kubernets node节点。
4.根据权利要求1所述的基于jenkins的任务构建方法,其特征在于,还包括:
所述pod节点获取所述容器的容器ID,将所述容器ID发送至所述kubernets node节点;
所述kubernets node节点将所述容器ID发送至所述kubernets控制节点;
所述kubernets控制节点发送所述构建任务至所述kubernets node节点包括:
所述kubernets控制节点根据所述容器ID发送所述构建任务至所述kubernets node节点。
5.根据权利要求1所述的基于jenkins的任务构建方法,其特征在于,还包括:
所述jenkins主节点通过kubernets插件将所述构建任务发送至所述kubernets控制节点。
6.一种基于jenkins的任务构建系统,其特征在于,包括:
kubernets控制节点,用于根据来自jenkins主节点的构建任务生成构建任务通知,发送所述构建任务通知至其中一个kubernets node节点;拉取所述构建任务对应的镜像至pod节点;发送所述构建任务至kubernets node节点;
kubernets node节点,用于根据所述构建任务通知创建pod节点;发送所述构建任务至所述pod节点;
pod节点,用于运行所述镜像,生成容器,并挂载所述容器;发送所述构建任务至所述容器;
容器,用于执行所述构建任务。
7.根据权利要求6所述的基于jenkins的任务构建系统,其特征在于,还包括:
服务器,用于搭建jenkins主节点、kubernets控制节点和多个kubernets node节点;搭建jenkins从节点,并对所述jenkins从节点进行容器化操作,生成镜像;将所述镜像存储至镜像库;
所述kubernets控制节点具体用于:从所述镜像库中拉取所述构建任务对应的镜像至所述pod节点。
8.根据权利要求6所述的基于jenkins的任务构建系统,其特征在于,所述kubernets控制节点具体用于:查询每个kubernets node节点的资源状态,并根据每个kubernets node节点的资源状态确定空闲的kubernets node节点;发送所述构建任务通知至其中一个空闲的kubernets node节点。
9.根据权利要求6所述的基于jenkins的任务构建系统,其特征在于:
所述pod节点还用于:获取所述容器的容器ID,将所述容器ID发送至所述kubernetsnode节点;
所述kubernets node节点还用于:将所述容器ID发送至所述kubernets控制节点;
所述kubernets控制节点具体用于:根据所述容器ID发送所述构建任务至所述kubernets node节点。
10.根据权利要求6所述的基于jenkins的任务构建系统,其特征在于:
所述jenkins主节点用于:通过kubernets插件将所述构建任务发送至所述kubernets控制节点。
CN202010020545.4A 2020-01-09 2020-01-09 基于jenkins的任务构建方法及系统 Pending CN111262908A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010020545.4A CN111262908A (zh) 2020-01-09 2020-01-09 基于jenkins的任务构建方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010020545.4A CN111262908A (zh) 2020-01-09 2020-01-09 基于jenkins的任务构建方法及系统

Publications (1)

Publication Number Publication Date
CN111262908A true CN111262908A (zh) 2020-06-09

Family

ID=70946785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010020545.4A Pending CN111262908A (zh) 2020-01-09 2020-01-09 基于jenkins的任务构建方法及系统

Country Status (1)

Country Link
CN (1) CN111262908A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736810A (zh) * 2020-08-18 2020-10-02 四川新网银行股份有限公司 基于jenkins实时任务动态创建docker容器节点执行任务的方法
CN111897541A (zh) * 2020-08-03 2020-11-06 上海嗨酷强供应链信息技术有限公司 一种云环境下自动化部署资源的软件交互平台及方法
CN112559022A (zh) * 2020-12-16 2021-03-26 同盾控股有限公司 Jenkins高可用的系统及方法
CN113485794A (zh) * 2021-07-26 2021-10-08 上海中通吉网络技术有限公司 基于k8s的大数据离线调度方法和系统
CN113965546A (zh) * 2021-09-10 2022-01-21 济南浪潮数据技术有限公司 一种容器云平台为应用设置租户专用dns服务器的方法
WO2022028056A1 (zh) * 2020-08-06 2022-02-10 苏州浪潮智能科技有限公司 一种多架构云平台镜像仓库的镜像列表查询的架构
CN114995897A (zh) * 2022-05-07 2022-09-02 远光软件股份有限公司 获取持续集成工具运行结果的方法、装置、存储介质及计算机设备
CN117493023A (zh) * 2023-12-28 2024-02-02 江西云眼视界科技股份有限公司 一种持续集成的任务处理方法、系统、计算机及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909386A (zh) * 2017-02-27 2017-06-30 郑州云海信息技术有限公司 一种云平台代码持续集成方法及系统
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、系统
US9965377B1 (en) * 2016-03-29 2018-05-08 EMC IP Holding Company LLC Deploy pipeline for development packages
CN109831500A (zh) * 2019-01-30 2019-05-31 无锡华云数据技术服务有限公司 Kubernetes集群中配置文件与Pod的同步方法
CN110275761A (zh) * 2018-03-16 2019-09-24 华为技术有限公司 调度方法、装置和主节点
US10528367B1 (en) * 2016-09-02 2020-01-07 Intuit Inc. Execution of workflows in distributed systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965377B1 (en) * 2016-03-29 2018-05-08 EMC IP Holding Company LLC Deploy pipeline for development packages
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、系统
US10528367B1 (en) * 2016-09-02 2020-01-07 Intuit Inc. Execution of workflows in distributed systems
CN106909386A (zh) * 2017-02-27 2017-06-30 郑州云海信息技术有限公司 一种云平台代码持续集成方法及系统
CN110275761A (zh) * 2018-03-16 2019-09-24 华为技术有限公司 调度方法、装置和主节点
CN109831500A (zh) * 2019-01-30 2019-05-31 无锡华云数据技术服务有限公司 Kubernetes集群中配置文件与Pod的同步方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ISAM MASHHOUR AL JAWARNEH: "Container Orchestration Engines: A Thorough Functional and Performance Comparison", 《IEEE》 *
丁海斌等: "基于Docker的DevOps系统设计与实现", 《指挥信息系统与技术》 *
哎_小羊_168: "初试 Jenkins 使用 Kubernetes Plugin 完成持续构建与发布", 《HTTPS://BLOG.CSDN.NET/AIXIAOYANG168/ARTICLE/DETAILS/79767649》 *
金子威: "基于K8S的Docker分布式容器自动化运维系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897541A (zh) * 2020-08-03 2020-11-06 上海嗨酷强供应链信息技术有限公司 一种云环境下自动化部署资源的软件交互平台及方法
WO2022028056A1 (zh) * 2020-08-06 2022-02-10 苏州浪潮智能科技有限公司 一种多架构云平台镜像仓库的镜像列表查询的架构
CN111736810A (zh) * 2020-08-18 2020-10-02 四川新网银行股份有限公司 基于jenkins实时任务动态创建docker容器节点执行任务的方法
CN112559022A (zh) * 2020-12-16 2021-03-26 同盾控股有限公司 Jenkins高可用的系统及方法
CN113485794A (zh) * 2021-07-26 2021-10-08 上海中通吉网络技术有限公司 基于k8s的大数据离线调度方法和系统
CN113965546A (zh) * 2021-09-10 2022-01-21 济南浪潮数据技术有限公司 一种容器云平台为应用设置租户专用dns服务器的方法
CN114995897A (zh) * 2022-05-07 2022-09-02 远光软件股份有限公司 获取持续集成工具运行结果的方法、装置、存储介质及计算机设备
CN117493023A (zh) * 2023-12-28 2024-02-02 江西云眼视界科技股份有限公司 一种持续集成的任务处理方法、系统、计算机及存储介质

Similar Documents

Publication Publication Date Title
CN111262908A (zh) 基于jenkins的任务构建方法及系统
WO2017071460A1 (zh) 一种容器监控方法和装置
WO2024077885A1 (zh) 容器集群的管理方法、装置、设备及非易失性可读存储介质
US8910138B2 (en) Hot pluggable extensions for access management system
US9348709B2 (en) Managing nodes in a distributed computing environment
US9547564B1 (en) Automated deployment of applications
CN107005426B (zh) 一种虚拟网络功能的生命周期管理方法及装置
JP2003099410A (ja) 複数装置管理の方法およびシステム
KR102524540B1 (ko) 멀티 클라우드 서비스 플랫폼 장치 및 방법
CN104579792A (zh) 多适配方式实现多种类型虚拟资源集中管理架构及方法
WO2023185136A1 (zh) 一种边缘节点的处理方法、装置及介质
US11645098B2 (en) Systems and methods to pre-provision sockets for serverless functions
CN110221910B (zh) 用于执行mpi作业的方法和装置
CN111679888A (zh) 一种代理容器的部署方法及装置
CN110569104A (zh) 深度学习系统中任务训练的管理方法和计算机存储介质
US20230342183A1 (en) Management method and apparatus for container cluster
US12035156B2 (en) Communication method and apparatus for plurality of administrative domains
CN112015515B (zh) 一种虚拟网络功能的实例化方法及装置
KR101597246B1 (ko) 가상머신 간에 이동 가능한 가상 디스크 연결방법
US10459709B1 (en) Automated deployment of applications
US11868769B1 (en) Automatically determining and modifying environments for running microservices in a performant and cost-effective manner
WO2024011627A1 (zh) 大数据集群部署方法以及基于大数据集群的数据处理方法
CN102652307A (zh) 用于计算机架构的即插即用支持的方法以及系统
CN116166413A (zh) 针对异构基础设施上的工作负载的生命周期管理
CN114489929B (zh) 一种容器组的启动方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200609