CN116737173A - 一种在k8s容器集群上的服务集成方法、装置及电子设备 - Google Patents
一种在k8s容器集群上的服务集成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116737173A CN116737173A CN202311008915.2A CN202311008915A CN116737173A CN 116737173 A CN116737173 A CN 116737173A CN 202311008915 A CN202311008915 A CN 202311008915A CN 116737173 A CN116737173 A CN 116737173A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- service
- variable information
- environment variable
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000010354 integration Effects 0.000 title claims abstract description 68
- 238000012360 testing method Methods 0.000 claims abstract description 51
- 238000011161 development Methods 0.000 claims abstract description 28
- 238000004806 packaging method and process Methods 0.000 claims abstract description 26
- 238000010276 construction Methods 0.000 claims description 58
- 238000012544 monitoring process Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种在k8s容器集群上的服务集成方法、装置及电子设备,涉及容器集群技术领域,包括:tekton服务端接收服务开发端上传的Pipline Resource文件,该Pipline Resource文件中包含待集成服务的新增代码,以及新增代码的环境变量信息;基于环境变量信息,对新增代码进行编译,得到编译后代码;基于环境变量信息,对编译后代码进行测试;在测试通过后,基于环境变量信息,将编译后代码与待集成服务的原有代码打包成镜像,得到集成后的服务。采用本方案,提高了在k8s容器集群上实现服务集成的效率。
Description
技术领域
本申请涉及容器集群技术领域,尤其涉及一种在k8s容器集群上的服务集成方法、装置及电子设备。
背景技术
Kubernetes(简称k8s)是一种开源的容器集群管理系统。在Docker技术(容器虚拟化技术)的基础上,k8s为容器化的服务(也可以称作应用)提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,能够提高大规模容器集群管理的便捷性。
在k8s容器集群的实际应用中,经常会在k8s容器集群上部署一些服务(即应用),在部署服务的过程中,以及针对已经部署的服务,均可以执行服务集成操作,即将具有一定功能的一些软件模块或组件,集成到现有服务中,使得集成后的服务具有更多的功能,并且,在实际应用中,也可以进行服务的持续集成。
现有技术中在k8s容器集群上进行服务集成,是在k8s容器集群上部署基于Jenkins的Master节点和多个Slave节点,其中,Master节点负责管理和控制整个服务集成的构建过程的执行,Slave节点执行服务集成的实际构建任务,过程如下:
首先,Master节点会接收到用户提交的构建请求,并根据一定的规则进行调度,选择合适的Slave节点来执行具体的构建任务;然后,Master节点将构建指令发送给选定的Slave节点;Slave节点接收到指令后,解析指令并开始执行相应的构建任务。在构建过程中,Slave节点可以向Master节点发送构建状态、日志信息等消息,Master节点根据这些消息可以监控整个构建过程的状态,并在必要时进行调整或干预。最后,当所有Slave节点都完成构建任务后,Master节点可以生成构建结果报告,并将报告返回给用户或其他相关系统。
在现有技术的上述服务集成方法中,Master节点与Slave节点均是基于Jenkins工具执行服务集成的相关操作,而Jenkins工具不具有负载均衡功能,所以,Master节点无法针对需要执行的多个构建任务,在多个Slave节点之间基于负载均衡实现有效的任务调度,即可能出现部分Slave节点负载较高,其他Slave节点负载不足的情况,进而导致实现服务集成的效率较低。
发明内容
本申请实施例提供一种在k8s容器集群上的服务集成方法、装置及电子设备,用以解决现有技术中存在的在k8s容器集群上实现服务集成的效率较低的问题。
本申请实施例提供一种在k8s容器集群上的服务集成方法,应用于k8s容器集群上部署的tekton服务端,所述方法,包括:
接收服务开发端上传的Pipline Resource文件,所述Pipline Resource文件中包含待集成服务的新增代码,以及所述新增代码的环境变量信息;
基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码;
基于所述环境变量信息,对所述编译后代码进行测试;
在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,在所述基于所述环境变量信息,对所述新增代码进行编译之前,还包括:
基于所述环境变量信息,生成task文件,pipline文件和Trigger Template文件,其中,所述task文件中定义有用于实现服务集成的多个构建任务,所述多个构建任务中包含代码编译任务、代码测试任务和代码打包任务,所述pipline文件中定义有用于执行所述多个构建任务的执行策略,所述Trigger Template文件中定义有用于调度所述多个构建任务的调度策略;
所述基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码编译任务,对所述新增代码进行编译,得到编译后代码;
所述基于所述环境变量信息,对所述编译后代码进行测试,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码测试任务,对所述编译后代码进行测试;
所述在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码打包任务,在测试通过后,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,在所述基于所述环境变量信息,对所述新增代码进行编译之前,还包括:
基于所述环境变量信息,生成任务监听配置文件,所述任务监听配置文件中定义有对所述多个构建任务的执行情况进行监听的监听策略;
所述方法,还包括:
在执行所述多个构建任务的过程中,按照所述任务监听配置文件中的所述监听策略,对所述多个构建任务的执行情况进行监听。
进一步的,还包括:
将所述镜像推送到harbor仓库,并对所述镜像执行打标签操作。
本申请实施例还提供一种在k8s容器集群上的服务集成方法,应用于服务开发端,所述方法,包括:
获取待集成服务的新增代码,以及所述新增代码的环境变量信息;
生成包含所述新增代码,以及所述环境变量信息的Pipline Resource文件;
向部署在k8s容器集群上的tekton服务端,上传所述Pipline Resource文件,使得所述tekton服务端基于所述Pipline Resource文件中的所述环境变量信息,对所述新增代码执行服务集成操作,得到集成后的服务。
进一步的,所述获取待集成服务的新增代码,以及所述新增代码的环境变量信息,包括:
通过运行脚本文件,从gitlab拉取待集成服务的新增代码,以及所述新增代码的环境变量信息。
进一步的,在所述生成包含所述新增代码,以及所述环境变量信息的PiplineResource文件之前,还包括:
如果所述环境变量信息的数据格式不符合yaml文件的格式,将所述环境变量信息的数据格式转换为符合yaml文件的数据格式;
所述生成包含所述新增代码,以及所述环境变量信息的Pipline Resource文件,包括:
生成包含所述新增代码,以及格式转换后的环境变量信息的Pipline Resource文件,所述Pipline Resource文件为yaml文件。
本申请实施例还提供一种在k8s容器集群上的服务集成装置,应用于k8s容器集群上部署的tekton服务端,所述装置,包括:
文件接收模块,用于接收服务开发端上传的Pipline Resource文件,所述PiplineResource文件中包含待集成服务的新增代码,以及所述新增代码的环境变量信息;
代码编译模块,用于基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码;
代码测试模块,用于基于所述环境变量信息,对所述编译后代码进行测试;
代码打包模块,用于在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,所述文件接收模块,还用于基于所述环境变量信息,生成task文件,pipline文件和Trigger Template文件,其中,所述task文件中定义有用于实现服务集成的多个构建任务,所述多个构建任务中包含代码编译任务、代码测试任务和代码打包任务,所述pipline文件中定义有用于执行所述多个构建任务的执行策略,所述Trigger Template文件中定义有用于调度所述多个构建任务的调度策略;
所述代码编译模块,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码编译任务,对所述新增代码进行编译,得到编译后代码;
所述代码测试模块,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码测试任务,对所述编译后代码进行测试;
所述代码打包模块,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码打包任务,在测试通过后,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,所述文件接收模块,还用于基于所述环境变量信息,生成任务监听配置文件,所述任务监听配置文件中定义有对所述多个构建任务的执行情况进行监听的监听策略;
所述装置,还包括:
任务监听模块,用于在执行所述多个构建任务的过程中,按照所述任务监听配置文件中的所述监听策略,对所述多个构建任务的执行情况进行监听。
进一步的,所述代码打包模块,还用于将所述镜像推送到harbor仓库,并对所述镜像执行打标签操作。
本申请实施例还提供一种在k8s容器集群上的服务集成装置,应用于服务开发端,所述装置,包括:
代码获取模块,用于获取待集成服务的新增代码,以及所述新增代码的环境变量信息;
文件生成模块,用于生成包含所述新增代码,以及所述环境变量信息的PiplineResource文件;
文件发送模块,用于向部署在k8s容器集群上的tekton服务端,上传所述PiplineResource文件,使得所述tekton服务端基于所述Pipline Resource文件中的所述环境变量信息,对所述新增代码执行服务集成操作,得到集成后的服务。
进一步的,所述代码获取模块,具体用于通过运行脚本文件,从gitlab拉取待集成服务的新增代码,以及所述新增代码的环境变量信息。
进一步的,所述代码获取模块,还用于如果所述环境变量信息的数据格式不符合yaml文件的格式,将所述环境变量信息的数据格式转换为符合yaml文件的数据格式;
所述文件生成模块,具体用于生成包含所述新增代码,以及格式转换后的环境变量信息的Pipline Resource文件,所述Pipline Resource文件为yaml文件。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,实现上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,实现上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,执行上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
本申请有益效果包括:
本申请实施例提供的方法中,服务开发端获取待集成的新增代码,以及新增代码的环境变量信息,并生成包含新增代码,以及环境变量信息的Pipline Resource文件,上传给部署在k8s容器集群上的tekton服务端,tekton服务端基于环境变量信息,对新增代码进行编译,得到编译后代码,并对编译后代码进行测试,以及在测试通过后,将编译后代码与待集成服务的原有代码打包成镜像,得到集成后的服务。由于服务端是基于tekton工具实现的,因此,针对服务集成过程中需要执行的多个构建任务,可以实现高并发的执行,以及有效的负载均衡和任务调度,从而提高在k8s容器集群上实现服务集成的效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的应用于tekton服务端的在k8s容器集群上的服务集成方法的流程图;
图2为本申请实施例提供的应用于服务开发端的在k8s容器集群上的服务集成方法的流程图;
图3为本申请实施例提供的在k8s容器集群上的服务集成方法的流程图;
图4为本申请实施例提供的应用于tekton服务端的在k8s容器集群上的服务集成装置的结构示意图;
图5为本申请另一实施例提供的应用于tekton服务端的在k8s容器集群上的服务集成装置的结构示意图;
图6为本申请实施例提供的应用于服务开发端的在k8s容器集群上的服务集成装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出提高在k8s容器集群上实现服务集成的效率的实现方案,本申请实施例提供了一种在k8s容器集群上的服务集成方法、装置及电子设备,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种在k8s容器集群上的服务集成方法,应用于k8s容器集群上部署的tekton服务端,如图1所示,该方法,包括:
步骤11、接收服务开发端上传的Pipline Resource文件,该Pipline Resource文件中包含待集成服务的新增代码,以及新增代码的环境变量信息;
步骤12、基于环境变量信息,对新增代码进行编译,得到编译后代码;
步骤13、基于环境变量信息,对编译后代码进行测试;
步骤14、在测试通过后,基于环境变量信息,将编译后代码与待集成服务的原有代码打包成镜像,得到集成后的服务。
相应的,本申请实施例还提供一种在k8s容器集群上的服务集成方法,应用于服务开发端,如图2所示,该方法,包括:
步骤21、获取待集成服务的新增代码,以及新增代码的环境变量信息;
步骤22、生成包含新增代码,以及环境变量信息的Pipline Resource文件;
步骤23、向部署在k8s容器集群上的tekton服务端,上传该Pipline Resource文件,使得tekton服务端基于Pipline Resource文件中的环境变量信息,对新增代码执行服务集成操作,得到集成后的服务。
采用本申请实施例提供的上述在k8s容器集群上的服务集成方法,服务开发端获取待集成的新增代码,以及新增代码的环境变量信息,并生成包含新增代码,以及环境变量信息的Pipline Resource文件,上传给部署在k8s容器集群上的tekton服务端,tekton服务端基于环境变量信息,对新增代码进行编译,得到编译后代码,并对编译后代码进行测试,以及在测试通过后,将编译后代码与待集成服务的原有代码打包成镜像,得到集成后的服务。由于服务端是基于tekton工具实现的,因此,针对服务集成过程中需要执行的多个构建任务,可以实现高并发的执行,以及有效的负载均衡和任务调度,从而提高在k8s容器集群上实现服务集成的效率。
下面结合附图,用具体实施例对本申请提供的方法及装置进行详细描述。
本申请实施例提供一种在k8s容器集群上的服务集成方法,如图3所示,包括:
步骤31、服务开发端获取待集成服务的新增代码,以及新增代码的环境变量信息。
本步骤中,可以通过运行脚本文件(python脚本),从gitlab拉取待集成服务的新增代码,以及新增代码的环境变量信息。
本申请实施例中,环境变量信息可以包括新增代码所表示的功能模块或组件的服务端口信息、所需要资源的资源信息、支持的网络协议等,以及与后续在实现服务集成的过程中与执行构建任务相关的pipline信息。
步骤32、如果获取的环境变量信息的数据格式不符合yaml文件的格式,服务开发端将环境变量信息的数据格式转换为符合yaml文件的数据格式。
步骤33、服务开发端生成包含新增代码,以及环境变量信息的Pipline Resource文件。
如果在上述步骤32中进行了数据格式的转换,本步骤中,生成包含新增代码,以及格式转换后的环境变量信息的Pipline Resource文件,Pipline Resource文件为yaml文件。
本步骤中,也可以通过运行脚本实现生成Pipline Resource文件,并针对其中包含的各种信息生成相应的字段。
步骤34、服务开发端向部署在k8s容器集群上的tekton服务端,上传该PiplineResource文件。
本申请实施例中,在k8s容器集群上部署了tekton服务端,可以通过yaml部署。具体可以现在k8s容器集群上创建一个tekton-piplines的namespace(命名空间),用于给将要部署的tekton提供运行资源,在该namespace下存在于tekton相关的资源对象,然后再该namespace中部署tekton服务端。
部署完成后,可以通过在该namespace中查看部署了tekton服务端的POD(容器节点),并确保该POD处于Running(运行)状态,以检查tekton服务端的部署是否成功。
通过上述步骤31-34,服务开发端向tekton服务端上传了待集成服务的新增代码,其中,新增代码可以是需要集成的一个或多个模块或组件的代码,即可以包含多组新增代码,每组新增代码对应一个模块或组件。
相应的,当包含多组新增代码时,包含每组新增代码对应的环境变量信息。
步骤35、tekton服务端接收服务开发端上传的Pipline Resource文件,并从该Pipline Resource文件中获取包含待集成服务的新增代码,以及新增代码的环境变量信息。
步骤36、tekton服务端基于环境变量信息,生成task文件,pipline文件和TriggerTemplate文件。
其中,task文件中定义有用于实现服务集成的多个构建任务,该多个构建任务中可以包含代码编译任务、代码测试任务和代码打包任务;
本申请实施例中,task文件中定义的多个构建任务,可以基于实现服务集成的需要进行定义,例如,当存在多组新增代码时,可以分别针对每组新增代码及对应的环境变量信息,定义相应的多个构建任务,该多个构建任务在后续的执行过程中,可以实现高并发的执行,从而提高服务集成的效率。
pipline文件中定义有用于执行该多个构建任务的执行策略;
本申请实施例中,pipline文件中定义的该多个构建任务的执行策略,具体可以为每个构建任务所表示的事件的触发策略,即在满足什么条件下触发启动执行该构建任务。
Trigger Template文件中定义有用于调度该多个构建任务的调度策略;
本申请实施例中,Trigger Template文件中定义的该多个构建任务的调度策略,用于在该多个构建任务的执行过程当中,实现对该多个构建任务的负载均衡调度,以及高并发执行的调度,从而进一步的提高服务集成的效率。
本步骤中,进一步的,还可以基于环境变量信息,生成任务监听配置文件,该任务监听配置文件中定义有对该多个构建任务的执行情况进行监听的监听策略。
本申请实施例中,在上述步骤36中生成task文件,pipline文件和TriggerTemplate文件之后,即可以按照pipline文件中的调度策略,以及Trigger Template文件中的执行策略,对task文件中的该多个构建任务进行调度并执行,通过执行该多个构建任务,实现针对新增代码的编译、测试和打包成镜像的操作,并且,当存在多组新增代码时,可以采用高并发执行,具体描述如下:
步骤37、tekton服务端按照pipline文件中的调度策略,以及Trigger Template文件中的执行策略,通过执行task文件中的代码编译任务,对新增代码进行编译,得到编译后代码。
步骤38、tekton服务端按照pipline文件中的调度策略,以及Trigger Template文件中的执行策略,通过执行task文件中的代码测试任务,对编译后代码进行测试。
本步骤中,对编译后代码的测试也可以通过运行脚本实现,例如,在gitlab上提一个pr到dev分支,并合并以触发测试流水线,以及查看生成的流水线记录,获取测试结果。
步骤39、tekton服务端按照pipline文件中的调度策略,以及Trigger Template文件中的执行策略,通过执行task文件中的代码打包任务,在测试通过后,将编译后代码与待集成服务的原有代码打包成镜像,得到集成后的服务,即完成了服务集成。
本申请实施例中,在执行上述多个构建任务的过程中,tekton服务端还可以按照任务监听配置文件中的监听策略,对该多个构建任务的执行情况进行监听,当监听到发生异常情况时,可以发出异常提示。
本申请实施例中,在得到集成后的服务后,进一步的,tekton服务端还可以将镜像推送到harbor仓库,并对镜像执行打标签操作。
采用本申请实施例提供的上述在k8s容器集群上的服务集成方法,基于tekton工具,可以实现针对需要集成的多个模块或组件的多个新增代码的高并发的集成构建,并实现有效的负载均衡调度,从而能够提高服务集成的效率。
基于同一发明构思,根据本申请上述实施例提供的应用于tekton服务端的在k8s容器集群上的服务集成方法,相应地,本申请另一实施例还提供了一种在k8s容器集群上的服务集成装置,应用于k8s容器集群上部署的tekton服务端,其结构示意图如图4所示,具体包括:
文件接收模块41,用于接收服务开发端上传的Pipline Resource文件,所述Pipline Resource文件中包含待集成服务的新增代码,以及所述新增代码的环境变量信息;
代码编译模块42,用于基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码;
代码测试模块43,用于基于所述环境变量信息,对所述编译后代码进行测试;
代码打包模块44,用于在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,所述文件接收模块41,还用于基于所述环境变量信息,生成task文件,pipline文件和Trigger Template文件,其中,所述task文件中定义有用于实现服务集成的多个构建任务,所述多个构建任务中包含代码编译任务、代码测试任务和代码打包任务,所述pipline文件中定义有用于执行所述多个构建任务的执行策略,所述Trigger Template文件中定义有用于调度所述多个构建任务的调度策略;
所述代码编译模块42,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码编译任务,对所述新增代码进行编译,得到编译后代码;
所述代码测试模块43,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码测试任务,对所述编译后代码进行测试;
所述代码打包模块44,具体用于按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码打包任务,在测试通过后,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
进一步的,所述文件接收模块41,还用于基于所述环境变量信息,生成任务监听配置文件,所述任务监听配置文件中定义有对所述多个构建任务的执行情况进行监听的监听策略;
所述装置,如图5所示,还包括:
任务监听模块45,用于在执行所述多个构建任务的过程中,按照所述任务监听配置文件中的所述监听策略,对所述多个构建任务的执行情况进行监听。
进一步的,所述代码打包模块44,还用于将所述镜像推送到harbor仓库,并对所述镜像执行打标签操作。
基于同一发明构思,根据本申请上述实施例提供的应用于服务开发端的在k8s容器集群上的服务集成方法,相应地,本申请另一实施例还提供了一种在k8s容器集群上的服务集成装置,应用于服务开发端,其结构示意图如图6所示,具体包括:
代码获取模块61,用于获取待集成服务的新增代码,以及所述新增代码的环境变量信息;
文件生成模块62,用于生成包含所述新增代码,以及所述环境变量信息的PiplineResource文件;
文件发送模块63,用于向部署在k8s容器集群上的tekton服务端,上传所述Pipline Resource文件,使得所述tekton服务端基于所述Pipline Resource文件中的所述环境变量信息,对所述新增代码执行服务集成操作,得到集成后的服务。
进一步的,所述代码获取模块61,具体用于通过运行脚本文件,从gitlab拉取待集成服务的新增代码,以及所述新增代码的环境变量信息。
进一步的,所述代码获取模块61,还用于如果所述环境变量信息的数据格式不符合yaml文件的格式,将所述环境变量信息的数据格式转换为符合yaml文件的数据格式;
所述文件生成模块62,具体用于生成包含所述新增代码,以及格式转换后的环境变量信息的Pipline Resource文件,所述Pipline Resource文件为yaml文件。
上述各模块的功能可对应于图1至图3所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的在k8s容器集群上的服务集成装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要在k8s容器集群上的服务集成装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种电子设备,如图7所示,包括处理器71和机器可读存储介质72,所述机器可读存储介质72存储有能够被所述处理器71执行的机器可执行指令,所述处理器71被所述机器可执行指令促使:实现上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,实现上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,实现上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于tekton服务端的在k8s容器集群上的服务集成方法,或者,执行上述任一应用于服务开发端的在k8s容器集群上的服务集成方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种在k8s容器集群上的服务集成方法,其特征在于,应用于k8s容器集群上部署的tekton服务端,所述方法,包括:
接收服务开发端上传的Pipline Resource文件,所述Pipline Resource文件中包含待集成服务的新增代码,以及所述新增代码的环境变量信息;
基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码;
基于所述环境变量信息,对所述编译后代码进行测试;
在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
2.如权利要求1所述的方法,其特征在于,在所述基于所述环境变量信息,对所述新增代码进行编译之前,还包括:
基于所述环境变量信息,生成task文件,pipline文件和Trigger Template文件,其中,所述task文件中定义有用于实现服务集成的多个构建任务,所述多个构建任务中包含代码编译任务、代码测试任务和代码打包任务,所述pipline文件中定义有用于执行所述多个构建任务的执行策略,所述Trigger Template文件中定义有用于调度所述多个构建任务的调度策略;
所述基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码编译任务,对所述新增代码进行编译,得到编译后代码;
所述基于所述环境变量信息,对所述编译后代码进行测试,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码测试任务,对所述编译后代码进行测试;
所述在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务,包括:
按照所述pipline文件中的所述调度策略,以及所述Trigger Template文件中的所述执行策略,通过执行所述task文件中的所述代码打包任务,在测试通过后,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
3.如权利要求2所述的方法,其特征在于,在所述基于所述环境变量信息,对所述新增代码进行编译之前,还包括:
基于所述环境变量信息,生成任务监听配置文件,所述任务监听配置文件中定义有对所述多个构建任务的执行情况进行监听的监听策略;
所述方法,还包括:
在执行所述多个构建任务的过程中,按照所述任务监听配置文件中的所述监听策略,对所述多个构建任务的执行情况进行监听。
4.如权利要求1所述的方法,其特征在于,还包括:
将所述镜像推送到harbor仓库,并对所述镜像执行打标签操作。
5.一种在k8s容器集群上的服务集成方法,其特征在于,应用于服务开发端,所述方法,包括:
获取待集成服务的新增代码,以及所述新增代码的环境变量信息;
生成包含所述新增代码,以及所述环境变量信息的Pipline Resource文件;
向部署在k8s容器集群上的tekton服务端,上传所述Pipline Resource文件,使得所述tekton服务端基于所述Pipline Resource文件中的所述环境变量信息,对所述新增代码执行服务集成操作,得到集成后的服务。
6.如权利要求5所述的方法,其特征在于,所述获取待集成服务的新增代码,以及所述新增代码的环境变量信息,包括:
通过运行脚本文件,从gitlab拉取待集成服务的新增代码,以及所述新增代码的环境变量信息。
7.如权利要求5所述的方法,其特征在于,在所述生成包含所述新增代码,以及所述环境变量信息的Pipline Resource文件之前,还包括:
如果所述环境变量信息的数据格式不符合yaml文件的格式,将所述环境变量信息的数据格式转换为符合yaml文件的数据格式;
所述生成包含所述新增代码,以及所述环境变量信息的Pipline Resource文件,包括:
生成包含所述新增代码,以及格式转换后的环境变量信息的Pipline Resource文件,所述Pipline Resource文件为yaml文件。
8.一种在k8s容器集群上的服务集成装置,其特征在于,应用于k8s容器集群上部署的tekton服务端,所述装置,包括:
文件接收模块,用于接收服务开发端上传的Pipline Resource文件,所述PiplineResource文件中包含待集成服务的新增代码,以及所述新增代码的环境变量信息;
代码编译模块,用于基于所述环境变量信息,对所述新增代码进行编译,得到编译后代码;
代码测试模块,用于基于所述环境变量信息,对所述编译后代码进行测试;
代码打包模块,用于在测试通过后,基于所述环境变量信息,将所述编译后代码与所述待集成服务的原有代码打包成镜像,得到集成后的服务。
9.一种在k8s容器集群上的服务集成装置,其特征在于,应用于服务开发端,所述装置,包括:
代码获取模块,用于获取待集成服务的新增代码,以及所述新增代码的环境变量信息;
文件生成模块,用于生成包含所述新增代码,以及所述环境变量信息的PiplineResource文件;
文件发送模块,用于向部署在k8s容器集群上的tekton服务端,上传所述PiplineResource文件,使得所述tekton服务端基于所述Pipline Resource文件中的所述环境变量信息,对所述新增代码执行服务集成操作,得到集成后的服务。
10.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法,或者,实现权利要求5-7任一所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法,或者,实现权利要求5-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008915.2A CN116737173A (zh) | 2023-08-11 | 2023-08-11 | 一种在k8s容器集群上的服务集成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008915.2A CN116737173A (zh) | 2023-08-11 | 2023-08-11 | 一种在k8s容器集群上的服务集成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737173A true CN116737173A (zh) | 2023-09-12 |
Family
ID=87909939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311008915.2A Pending CN116737173A (zh) | 2023-08-11 | 2023-08-11 | 一种在k8s容器集群上的服务集成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737173A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
CN109324799A (zh) * | 2018-09-25 | 2019-02-12 | 珠海市筑巢科技有限公司 | 一种代码编译方法、计算机装置及计算机可读存储介质 |
CN109491662A (zh) * | 2018-10-31 | 2019-03-19 | 珠海市筑巢科技有限公司 | 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统 |
US10515005B1 (en) * | 2018-12-20 | 2019-12-24 | Atlassian Pty Ltd | Systems and methods for testing source code |
CN112346752A (zh) * | 2020-12-03 | 2021-02-09 | 江苏云坤信息科技有限公司 | 基于jenkins和K3S的软件环境快速部署方法 |
CN112764753A (zh) * | 2020-12-31 | 2021-05-07 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN114296871A (zh) * | 2021-12-22 | 2022-04-08 | 华人运通(上海)云计算科技有限公司 | 基于容器的持续集成方法、装置、系统及工作节点和介质 |
CN115357369A (zh) * | 2022-10-21 | 2022-11-18 | 之江实验室 | 一种k8s容器云平台中CRD应用集成调用方法与装置 |
CN116382713A (zh) * | 2023-01-04 | 2023-07-04 | 人保信息科技有限公司 | 构建应用镜像的方法、系统、设备和存储介质 |
-
2023
- 2023-08-11 CN CN202311008915.2A patent/CN116737173A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN109324799A (zh) * | 2018-09-25 | 2019-02-12 | 珠海市筑巢科技有限公司 | 一种代码编译方法、计算机装置及计算机可读存储介质 |
CN109491662A (zh) * | 2018-10-31 | 2019-03-19 | 珠海市筑巢科技有限公司 | 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统 |
US10515005B1 (en) * | 2018-12-20 | 2019-12-24 | Atlassian Pty Ltd | Systems and methods for testing source code |
CN112346752A (zh) * | 2020-12-03 | 2021-02-09 | 江苏云坤信息科技有限公司 | 基于jenkins和K3S的软件环境快速部署方法 |
CN112764753A (zh) * | 2020-12-31 | 2021-05-07 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN114296871A (zh) * | 2021-12-22 | 2022-04-08 | 华人运通(上海)云计算科技有限公司 | 基于容器的持续集成方法、装置、系统及工作节点和介质 |
CN115357369A (zh) * | 2022-10-21 | 2022-11-18 | 之江实验室 | 一种k8s容器云平台中CRD应用集成调用方法与装置 |
CN116382713A (zh) * | 2023-01-04 | 2023-07-04 | 人保信息科技有限公司 | 构建应用镜像的方法、系统、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
周起如等: "基于Tekton的容器云持续集成和部署平台研究", 《数据库与信息管理》, pages 91 - 93 * |
阿白: "kubernetes的DevOps业务(五):Jenkins,GitLab,Harbor,Tekton,GitOps", pages 1 - 45, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_45843419/article/details/125134211> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888722B (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
US10430172B2 (en) | Re-configuration in cloud computing environments | |
CN106888256B (zh) | 分布式监控系统及其监控和调度方法与装置 | |
CN110888652B (zh) | 基于jenkins插件的多版本构建方法及终端 | |
CN114546592A (zh) | 模型部署评测方法、服务器、电子设备及存储介质 | |
CN111176818A (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
CN116755794A (zh) | 一种于云原生的应用程序自动化部署方法及系统 | |
CN104780076A (zh) | 一种代码检查方法和设备 | |
CN113434283B (zh) | 服务调度方法及装置、服务器、计算机可读存储介质 | |
CN114968283A (zh) | 一种容器镜像的拉取方法、装置、设备及可读存储介质 | |
CN102843342A (zh) | 一种资源动态升级方法及系统 | |
CN116737173A (zh) | 一种在k8s容器集群上的服务集成方法、装置及电子设备 | |
CN111897565A (zh) | 基于物联网的数据处理方法、装置和设备 | |
CN109375946B (zh) | 一种管理节点包管理器的组件包的方法及系统 | |
TW201407503A (zh) | 雲端平台工作排程方法及系統 | |
CN110727570A (zh) | 并发压测方法及相关装置 | |
US11481203B2 (en) | Shared pipeline for multiple services | |
CN112416980B (zh) | 数据业务处理方法、装置及设备 | |
CN114968287A (zh) | 一种自动部署项目的方法及系统 | |
CN115225628A (zh) | 基于轻量容器云环境下的预热式镜像加载方法 | |
CN103473089A (zh) | 一种分布式java程序运行方法、装置和系统 | |
CN111078311A (zh) | 中间件控制运行方法、系统 | |
CN117539605B (zh) | 一种数据处理程序组装方法、装置、设备及存储介质 | |
CN117687798B (zh) | 一种算力网络原生应用管控方法、系统及存储介质 | |
CN115562641B (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 |