CN112564979A - 构建任务的执行方法、装置、计算机设备和存储介质 - Google Patents
构建任务的执行方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112564979A CN112564979A CN202011498215.2A CN202011498215A CN112564979A CN 112564979 A CN112564979 A CN 112564979A CN 202011498215 A CN202011498215 A CN 202011498215A CN 112564979 A CN112564979 A CN 112564979A
- Authority
- CN
- China
- Prior art keywords
- container
- task
- information
- construction
- stage
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种构建任务的执行方法、装置、计算机设备和存储介质。所述方法包括:接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;根据所述秘钥对象配置对应的pod模板;在所述任务对象中,根据所述pod模板运行对应的容器;监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。采用本方法能够提高资源利用率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种构建任务的执行方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,在微服务云容器化的趋势下,云服务治理成为运维管理的难点。持续集成(CI-Continuous integration)、持续部署(CD-continuous deployment)是云服务治理中不可或缺的工具,负责管理项目从代码转变成微服务的过程。
然而,目前的持续集成方式中,通常采用的是持续集成工具和插件的方式,不仅需要注入额外的控制容器,同时也无法动态控制每个构建任务内部的容器资源,因而容易导致资源利用率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高资源利用率的构建任务的执行方法、装置、计算机设备和存储介质。
一种构建任务的执行方法,所述方法包括:
接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
根据所述秘钥信息创建对应的秘钥对象;
根据所述构建信息创建对应的任务对象;
根据所述秘钥对象配置对应的pod模板;
在所述任务对象中,根据所述pod模板运行对应的容器;
监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
在其中一个实施例中,所述根据所述秘钥对象配置对应的pod模板包括:
在所述任务对象中,根据所述秘钥对象,按照所述构建信息中的每个阶段信息,拉取对应的容器镜像;
对所述容器镜像配置对应的启动命令和挂载目录;所述启动命令用于控制多容器之间的运行顺序;所述挂载目录用于共享文件。
在其中一个实施例中,所述根据所述pod模板运行对应的容器之后,所述方法还包括:
监听所述任务对象中各个容器的状态;
读取所述任务对象中容器运行时对应的日志信息时,并将所述日志信息存放在所述挂载目录中。
在其中一个实施例中,所述方法还包括:
所述挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件;
所述在所述任务对象中,根据所述pod模板运行对应的容器,包括:
根据所述构建信息中的每个阶段信息,判断容器是否有依赖阶段;
若有依赖阶段,则判断所述依赖阶段完成的标志文件是否存在,若存在,则运行所述容器执行对应的阶段命令;
若没有依赖阶段,则直接运行所述容器执行对应的阶段命令。
在其中一个实施例中,所述运行所述容器执行对应的阶段命令之后,所述方法还包括:
当所述容器对应的阶段命令执行完成后,在共享磁盘中写入与所述阶段对应的特定文件;所述特定文件用于使得依赖所述阶段的其他阶段容器监听到所述特定文件时进入执行对应阶段的逻辑,否则持续等待直到所述任务对象终结。
在其中一个实施例中,所述方法还包括:
若所述依赖阶段完成的标志文件不存在,则继续等待所述标志文件,直到整个任务超时。
在其中一个实施例中,所述将所述本地文件夹中的日志信息返回至所述用户终端之后,所述方法还包括:
删除已构建的所述秘钥对象、所述任务对象以及对应的容器,并停止读取日志信息。
一种构建任务的执行装置,所述装置包括:
接收模块,用于接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
创建模块,用于根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;
配置模块,用于根据所述秘钥对象配置对应的pod模板;
运行模块,用于在所述任务对象中,根据所述pod模板运行对应的容器;
监听模块,用于监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
根据所述秘钥信息创建对应的秘钥对象;
根据所述构建信息创建对应的任务对象;
根据所述秘钥对象配置对应的pod模板;
在所述任务对象中,根据所述pod模板运行对应的容器;
监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
根据所述秘钥信息创建对应的秘钥对象;
根据所述构建信息创建对应的任务对象;
根据所述秘钥对象配置对应的pod模板;
在所述任务对象中,根据所述pod模板运行对应的容器;
监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
上述构建任务的执行方法、装置、计算机设备和存储介质,通过接收到用户终端发送的构建请求,构建请求中携带秘钥信息和构建信息。根据秘钥信息创建对应的秘钥对象,根据构建信息创建对应的任务对象,根据秘钥对象配置对应的pod模板。在任务对象中,根据pod模板运行对应的容器,监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。由此使得,通过监听共享文件的方式,实现多阶段的构建任务,不同容器根据依赖关系等待所依赖容器完成后产生特定文件,实现多阶段容器并行或串行执行,能够对pod中多容器之间的顺序进行动态控制,无需注入额外的控制容器,从而有效提高了构建任务时的资源利用率。
附图说明
图1为一个实施例中构建任务的执行方法的应用环境图;
图2为一个实施例中构建任务的执行方法的流程示意图;
图3为一个实施例中根据秘钥对象配置对应的pod模板步骤的流程示意图;
图4A为一个实施例中执行构建任务时各组件之间的关系示意图;
图4B为一个实施例中执行构建任务对应的时序图;
图5A为一个实施例中在任务对象中,根据pod模板运行对应的容器步骤的流程示意图;
图5B为一个实施例中在任务对象中,容器执行阶段任务的流程示意图;
图6为另一个实施例中服务器执行构建任务时的流程示意图;
图7为一个实施例中构建任务的执行装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的构建任务的执行方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104接收到用户终端102发送的构建请求,构建请求中携带秘钥信息和构建信息。服务器104根据秘钥信息创建对应的秘钥对象。服务器104根据构建信息创建对应的任务对象。服务器104根据秘钥对象配置对应的pod模板,在任务对象中,服务器104根据pod模板运行对应的容器。服务器104监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,服务器104将本地文件夹中的日志信息返回至用户终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种构建任务的执行方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,接收到用户终端发送的构建请求,构建请求中携带秘钥信息和构建信息。
在微服务云容器化的趋势下,云服务治理成为运维管理的难点。持续集成(CI-Continuous integration)、持续部署(CD-continuous deployment)是云服务治理中不可或缺的工具,负责管理项目从代码转变成微服务的过程。其中,持续集成(ContinuousIntegration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。通过部署容器的方式,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。
传统的持续集成方式中的挂载是由客户自行指定的,假设用户恶意挂载宿主机上的关键进程文件,就会造成越过容器隔离机制,控制其他进程的问题。例如,用户恶意挂载了主机上的/run/docker.sock关键进程文件,就可以启停甚至删除其他容器。而本申请中以k8s为例,使用k8s进行资源调度,实现资源的动态分配。即本申请中使用k8s原生资源执行构建,并将用户无关的配置与用户构建业务逻辑配置进行分离,对于必须挂载磁盘的操作(如docker操作等)由系统进行封装,一方面降低了用户配置的复杂度,另一方面杜绝了用户随意挂载系统文件导致越权事件的可能。例如,通过使用k8s自带的job、pod资源,将必备系统配置和操作(例如磁盘挂载等)封装在二进制程序中,避免用户进行操作。
其中,k8s是指kubernetes简称K8s,是用8代替8个字符“ubernete”而成的缩写,即一种容器编排工具。kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署,规划,更新,维护的一种机制。其中,container是指容器,一种互相资源隔离的单进程的运行环境。Pod是指一组container的集合,共享网络等系统资源,共同提供一种业务服务,是kubernetes中可调度的最小调度单位。Job即任务对象是kubernetes的对象,表示可执行一次的任务。同时在本方法中也代表一次持续集成的执行过程。Secret即密钥对象是kubernetes的对象,表示一个秘钥信息,可以被pod使用。Serviceaccount即账户信息是kubernetes的对象,表示一个账户信息,可以包含kubernetes身份认证信息,也可以包含多个secret信息,可以被pod使用。Role即角色是kubernetes的对象,表示一个角色信息。Rolebinding即绑定关系是kubernetes的对象,表示一个角色和账户信息的绑定关系。Namespace是kubernetes的对象,表示一个相对隔离的命名空间。CRD表示kubernetes用户自定义资源的缩写(Customer Resource Definition)。此外,容器编排服务也可以是其他具有容器编排功能的服务或者工具,例如Docker Compose,Docker Compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用等。docker是一种常用的容器管理工具。
具体的,用户可以通过在PC端或手机应用程序中或浏览器网页中输入用户名和密码的方式,登录特定场景的测试系统中,用户可以通过app(Application,应用程序)或web浏览器发起特定任务的构建请求,系统后台接收到用户终端发送的构建请求,即服务器接收到用户终端发送的构建请求之后,服务器可以获取构建请求中携带的秘钥信息和构建信息。其中,构建请求是指构建对应的任务对象并执行对应的构建任务的请求。构建请求中携带的数据中可以包含构建所需的外部资源,例如,代码仓库配置、镜像仓库配置、其他的第三方服务和秘钥信息等。构建请求中携带的数据中还可以包含构建阶段和构建步骤信息,例如拉取源代码、执行shell脚本、打包镜像等操作以及各个阶段之间的依赖关系。
步骤204,根据秘钥信息创建对应的秘钥对象。
服务器接收到用户终端发送的构建请求之后,服务器可以根据构建请求中携带秘钥信息创建对应的秘钥对象。其中,秘钥信息即秘钥类资源可以来自用户输入或者其他子系统导入的。例如,服务器可以对秘钥进行base64编码后存储到k8s的secret对象中,secret对象即秘钥对象。密钥对象用于从镜像仓库中拉取对应的镜像。例如,服务器可以根据用户构建请求中携带的密钥信息创建对应的密钥对象,该密钥对象用于拉取与该用户发送的构建请求对应的镜像,即服务器可以从镜像仓库中拉取对应的镜像。其中,镜像是指容器启动所需的必备环境、资源、进程的集合,通常包含镜像名称、版本号以及镜像ID。镜像标识即镜像ID,用于标识唯一的镜像名称和版本。镜像可以包括系统预设镜像和用户自定义镜像,系统预设镜像是由服务提供方提供的,而自定义镜像可以是用户自行上传的。镜像仓库是独立于容器编排工具之外的一个服务,用于存储镜像。
步骤206,根据构建信息创建对应的任务对象。
服务器接收到用户终端发送的构建请求之后,服务器可以根据构建请求中携带构建信息创建对应的任务对象。其中,构建信息可以包括构建任务中需要执行的多个不同的阶段(子任务),各个不同阶段之间以并行或者串行的方式组合,即各个子任务之间的执行顺序。例如,本申请中服务器可以利用k8s的job对象进行构建,一个job对象表示执行一次构建任务,即通过使用k8s的job调度多容器实现多阶段的任务构建。具体的,服务器可以根据构建信息中的每个阶段创建一个对应的容器,这些容器组成一个pod,由一个job对象进行统一管理。其中,容器(container)是指一种互相资源隔离的单进程的运行环境。
步骤208,根据秘钥对象配置对应的pod模板。
服务器根据构建请求中携带秘钥信息创建对应的秘钥对象以及根据构建信息创建对应的任务对象之后,服务器可以根据秘钥对象配置对应的pod模板。其中,pod是指一组容器的集合,共享网络等系统资源,共同提供一种业务服务。pod是kubernetes可调度的最小调度单位。即Pod是一个或一个以上的容器(例如Docker容器)组成的,且具有共享存储/网络/UTS/PID的能力,以及运行容器的规范。通俗来讲,Pod就是一组容器的集合,在Pod里面的容器共享网络和存储,即Kubernetes实现共享一组的Namespace去替代每个容器各自的Namespace,来实现内部的通信。Namespace是指kubernetes的对象,表示一个相对隔离的命名空间。虽然网络存储都是共享的,但是CPU和Memory就不是。多容器之间可以有属于自己的Cgroup,也就是说我们可以单独的对Pod中的容器做资源(MEM/CPU)使用的限制。
具体的,服务器可以根据用户终端发送的构建请求中携带的请求参数,对每个阶段对应Job的pod模板中的容器进行声明,并配置命令和挂载目录。即每个阶段创建一个对应的容器,这些容器组成一个pod,由一个job对象管理。配置的命令是指用于在pod模板中,根据配置的命令启动对应的容器执行相应的任务。挂载目录是指将同一个pod中的不同容器通过挂载到对应的目录中,能够共享挂载目录中的文件。例如,emptyDir是k8s的一种挂载磁盘方式,目的是让同一个pod中的不同容器通过挂载这个磁盘共享其中的文件。通过emptyDir配置共享磁盘示例如下:
volumes:
-emptyDir:{}
name:workspace
volumeMounts:
-mountPath:/data/build
name:workspace
其中,Volumes是存储卷的key,volumeMounts是挂载点的key,磁盘挂载主要是用于解决cicd共享存储问题。
步骤210,在任务对象中,根据pod模板运行对应的容器。
服务器根据秘钥对象配置对应的pod模板之后,在已构建的任务对象中,服务器可以根据pod模板运行对应的容器。其中,容器(container)是指一种互相资源隔离的单进程的运行环境。例如,在已构建的任务对象中,服务器可以根据pod模板中配置的各个阶段对应的启动命令,运行对应的容器。在各个容器运行的过程中,上一个阶段的容器执行完成后在共享磁盘中写入特定文件(例如containerx.done),依赖此阶段的其他阶段容器在container命令中监听这个特定文件,如果该特定文件产生,则进入执行本阶段正常逻辑,否则持续等待直到该Job/pod终结。因为其他依赖这个阶段的容器开始执行对应的子任务时,需要以这个特定文件为标志,否则持续等待该特定文件的产生,直到整个构建任务超时。
步骤212,监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。
在已构建的任务对象中,服务器根据配置好的pod模板运行对应的容器时,服务器可以实时监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。其中,任务对象中运行的容器可以包括多个容器并行或者串行运行。
具体的,在已构建的任务对象中,服务器根据配置好的pod模板运行对应的容器时,服务器可以实时监听任务对象中运行的每个容器的状态,并读取每个运行容器对应的日志信息。例如,某个已构建的任务对象中包含3个子任务A1、A2和A3,服务器可以根据pod模板中配置的各个阶段对应的启动命令,运行对应的容器,即按照pod模板中配置的各个阶段对应容器的顺序执行对应的子任务。服务器根据pod模板中配置的各个阶段对应的启动命令,按照配置的容器顺序依次运行对应的容器A1、容器A2以及容器A3。当服务器监听到容器A1结束执行时,则将容器A1对应的全部日志信息储存至本地文件夹中,服务器继续监听下一个阶段运行的容器A2,并将读取到的容器A2的日志信息储存至本地文件夹中,直至服务器监听到容器A3结束执行时,即该任务对象的状态为完成或者失败时,服务器将本地文件夹中的全部日志信息返回至用户终端。即服务器持续读取pod中各个容器的日志(容器之间可以是异步执行任务的情况),存放在本地存储介质中(存储介质可以是网络磁盘、本地磁盘、便携式磁盘或者其他数据库、文件系统等)。此时,本地文件夹中的日志信息包含该任务对象的全部日志信息,该任务对象的全部日志信息可以包括子任务A1对应的全部日志信息、子任务A2对应的全部日志信息以及子任务A3对应的全部日志信息。同时,服务器也可以持续监听不同的pod状态(pod之间可以是异步执行的情况下),当pod状态为完成或者失败时,则删除与该构建任务对应的secret对象、job对象和pod对象,并停止读取日志。
传统的持续集成方式中,可能还需要额外学习自定义的对象和操作。而本申请中可以通过使用k8s原生对象进行构建,降低了学习和操作成本。同时,相较于传统方式中用户自行填写挂载信息,容易产生通过挂载宿主机关键文件造成越权操作的安全漏洞问题,本申请中通过将挂载操作使用系统程序镜像进行了封装,可以有效避免这类安全漏洞的问题。
本实施例中,通过接收到用户终端发送的构建请求,构建请求中携带秘钥信息和构建信息。根据秘钥信息创建对应的秘钥对象,根据构建信息创建对应的任务对象,根据秘钥对象配置对应的pod模板。在任务对象中,根据pod模板运行对应的容器,监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。由此使得,通过监听任务对象中每个容器的运行状态,即监听共享文件的方式,实现多阶段的构建任务,使得不同容器根据依赖关系等待所依赖的容器完成任务后产生特定文件,能够对pod中多容器之间的顺序进行动态控制,无需注入额外的控制容器,从而有效提高了构建任务时的资源利用率。
在一个实施例中,如图3所示,根据秘钥对象配置对应的pod模板的步骤,包括:
步骤302,在任务对象中,根据秘钥对象,按照构建信息中的每个阶段信息,拉取对应的容器镜像。
步骤304,对容器镜像配置对应的启动命令和挂载目录,启动命令用于控制多容器之间的运行顺序,挂载目录用于共享文件。
服务器根据构建请求中携带秘钥信息创建对应的秘钥对象以及根据构建信息创建对应的任务对象之后,服务器可以根据秘钥对象配置对应的pod模板。具体的,在已构建的任务对象中,服务器可以根据秘钥对象,按照构建信息中的每个阶段信息,拉取对应的容器镜像。进一步的,服务器可以对容器镜像配置对应的启动命令和挂载目录,启动命令用于控制多容器之间的运行顺序,挂载目录用于共享文件。
例如,服务器可以利用k8s的job对象进行构建,一个job表示执行一次构建任务,每个构建任务中可以执行多个不同的阶段(子任务),各个不同阶段之间以并行或者串行的方式组合,服务器可以根据构建请求中携带的秘钥信息在k8s集群中创建对应的秘钥对象,即创建secret对象。同时,服务器可以根据接构建请求中携带的构建信息,创建对应的任务对象即创建一个job对象。在job对象中,服务器可以根据secret对象,按照构建信息中的每个阶段信息,从镜像仓库中拉取对应的容器镜像。即在job对象中根据每个阶段子任务创建对应的容器镜像。进一步的,服务器可以对创建得到容器镜像配置对应的启动命令和挂载目录,启动命令用于控制多容器之间的运行顺序。挂载目录用于共享文件。由此使得,构建任务中每个阶段容器可以根据配置的顺序依次等待或执行,当全部容器执行完成后,则表明构建任务完成,从而实现了pod中多容器之间的顺序控制,无需注入额外的控制容器,有效提高了构建任务时的资源利用率。
在一个实施例中,根据pod模板运行对应的容器之后,该方法还包括监听任务对象中各个容器的状态的步骤,具体包括:
监听任务对象中各个容器的状态。
读取任务对象中容器运行时对应的日志信息时,并将日志信息存放在挂载目录中。
在已构建的任务对象中,服务器根据配置好的pod模板运行对应的容器时,服务器可以实时监听任务对象中各个容器的状态。具体的,服务器可以监听任务对象中各个容器的状态,实时读取任务对象中容器运行时对应的日志信息时,并将日志信息存放在挂载目录中。例如,如图4A所示,为执行构建任务时各组件之间的关系示意图。控制器服务是部署在k8s集群中的一个服务,控制器服务可以根据角色对象和账户信息之间的绑定关系,获得集群对应的权限。其中,角色对象即role对象,role对象包含job、pod、secret资源的get、list、watch、create、update、delete以及deletecollection操作。控制器服务是指负责根据配置信息创建或者销毁job、secret等资源,也负责记录构建过程中产生的日志。Namespace是指持续构建的全部资源都会存放在此namespace中,可对其进行资源限制。Serviceaccount是指账户信息,rolebinding是指角色对象和账户信息之间的绑定关系。功能镜像是指一些执行关键操作的工具打包成的镜像,如git操作,docker操作,代码检查操作等,由持续构建平台管理者提供。
如图4B所示,为执行构建任务对应的时序图。具体的,如图4A所示和图4B所示,控制器服务可以根据角色对象和账户信息之间的绑定关系,获得集群对应的权限。进一步的,控制器服务可以根据用户终端发送的构建请求中携带的请求参数,创建对应的秘钥对象secret和任务对象job,并对每个阶段对应job的pod模板中的容器进行声明,同时配置命令和挂载目录。即在任务对象job中,根据已配置好的pod模板运行对应的容器1、容器2和容器3。控制器服务可以根据secret对象和构建信息中的每个阶段信息,从系统预设镜像或者用户自定义镜像中拉取对应的容器镜像1、容器镜像2和容器镜像3。进一步的,控制器服务根据监听该任务对象job中运行的容器的状态,并将读取到的每个容器的日志信息储存至本地文件夹中,直至该任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至对应的用户终端。其中,控制器服务根据监听该任务对象job中运行的容器的状态时,当任务1完成时,即容器1执行完成时,生成对应的任务1.done的标志文件,该任务1.done的标志文件用于指示下一阶段的容器开始执行对应的子任务。即当容器2在共享磁盘的挂载目录中监听到任务1.done的标志文件存在时,则容器2开始执行对应的任务2,直至任务3执行完成并生成对应的任务3.done的标志文件时,表明该构建任务完成,即在一个pod中启动多个容器,每个容器会等待其直接依赖的其他容器执行成功再执行,以此来实现串行和并行组合。
由此使得,每个阶段根据配置的顺序依次等待或执行,当全部容器执行完成后,表明该构建任务完成。传统的方式中,例如jenkins的实现原理中,需要从公网下载控制器,所以需要更长的时间,并且它的每个步骤是以pod执行的,即只能通过额外注入的容器来控制多个pod的执行顺序,而不能对pod内部各个容器的顺序进行有效的调控。而本实施例中,通过共享宿主机本地存储,容器完成后在共享存储中产生完成标志文件,依赖次容器的后续容器等待此标志文件产生再进行执行来控制顺序,从而实现了pod中多容器之间的顺序控制,无需注入额外的控制容器,从而有效提高了构建任务时的资源利用率。
在其中一个实施例中,如图5A所示,挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件,该方法还包括在任务对象中,根据pod模板运行对应的容器的步骤,具体包括:
步骤502,根据构建信息中的每个阶段信息,判断容器是否有依赖阶段。
步骤504,若有依赖阶段,则判断依赖阶段完成的标志文件是否存在,若存在,则运行容器执行对应的阶段命令。
步骤506,若没有依赖阶段,则直接运行容器执行对应的阶段命令。
在已构建的任务对象中,服务器根据配置好的pod模板运行对应的容器时,服务器可以实时监听任务对象中各个容器的状态。具体的,服务器可以监听任务对象中各个容器的状态,实时读取任务对象中容器运行时对应的日志信息时,并将日志信息存放在挂载目录中。其中,挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件。服务器可以根据构建信息中的每个阶段信息,判断容器是否有依赖阶段。若有依赖阶段,则判断依赖阶段完成的标志文件是否存在,若存在,则运行容器执行对应的阶段命令。若没有依赖阶段,则直接运行容器执行对应的阶段命令。
例如,如图4A所示,控制器服务可以根据构建信息中的每个阶段信息,判断容器是否有依赖阶段。即该构建任务中有3个阶段信息,分别对应3个子任务,依次按照任务1、任务2和任务3的顺序执行。如图5B所示,为容器执行阶段任务的流程示意图。控制器服务可以根据构建信息中的每个阶段信息,判断任务1对应的容器1是否有依赖阶段,当控制器服务判断任务1对应的容器1没有依赖阶段时,则直接运行容器1执行对应的任务1对应的阶段命令。当任务1完成时,即容器1执行完成时,生成对应的任务1.done的标志文件,该任务1.done的标志文件用于指示下一阶段的容器开始执行对应的子任务。即控制器服务可以根据构建信息中的每个阶段信息,判断任务2对应的容器2是否有依赖阶段。若有依赖阶段,则控制器服务判断容器2依赖的阶段1即任务1完成的标志文件是否存在,若存在,则控制器服务运行容器2执行对应的阶段命令。即当容器2在共享磁盘的挂载目录中监听到任务1.done的标志文件存在时,则容器2开始执行对应的任务2,直至任务3执行完成并生成对应的任务3.done的标志文件时,表明该构建任务完成。在一个pod中启动多个容器,每个容器会等待其直接依赖的其他容器执行成功再执行,以此来实现串行和并行组合,当全部容器执行完成后,表明该构建任务完成,由此使得,通过共享宿主机本地存储,容器完成后在共享存储中产生完成任务的标志文件,依赖此容器的后续容器等待此标志文件产生后再进行执行,实现pod中多容器之间的顺序控制。
在其中一个实施例中,若依赖阶段完成的标志文件不存在,则继续等待标志文件,直到整个任务超时。
控制器服务可以根据构建信息中的每个阶段信息,判断任务1对应的容器1是否有依赖阶段,当控制器服务判断任务1对应的容器1没有依赖阶段时,则直接运行容器1执行对应的任务1对应的阶段命令。当任务1完成时,即容器1执行完成时,生成对应的任务1.done的标志文件,该任务1.done的标志文件用于指示下一阶段的容器开始执行对应的子任务。即控制器服务可以根据构建信息中的每个阶段信息,判断任务2对应的容器2是否有依赖阶段。若有依赖阶段,则控制器服务判断容器2依赖的阶段1即任务1完成的标志文件是否存在,若不存在,则控制器服务运行容器2继续等待标志文件,直到整个任务超时。即当容器2在共享磁盘的挂载目录中没有监听到任务1.done的标志文件存在时,则容器2开继续等待该任务1.done的标志文件,直至整个任务超时,则返回任务对象的状态为失败,并将本地文件夹中的日志信息返回至对应的用户终端。由此使得,通过监听共享文件的方式,实现pod中多容器之间的顺序控制。
在其中一个实施例中,运行容器执行对应的阶段命令之后,当容器对应的阶段命令执行完成后,在共享磁盘中写入与阶段对应的特定文件,特定文件用于使得依赖阶段的其他阶段容器监听到特定文件时进入执行对应阶段的逻辑,否则持续等待直到任务对象终结。例如,当任务1完成时,即容器1执行完成时,生成对应的任务1.done的标志文件,该任务1.done的标志文件用于指示下一阶段的容器开始执行对应的子任务。即下一个阶段的容器可以判断上一阶段对应的标志文件是否存在,若确定标志文件存在,则说明依赖的阶段已经执行完成对应的子任务,则下一个阶段的容器可以开始执行对应的子任务。由此使得,通过共享宿主机本地存储,容器完成后在共享存储中产生完成任务的标志文件,依赖此容器的后续容器等待此标志文件产生后再进行执行,实现pod中多容器之间的顺序控制。
在一个实施例中,将本地文件夹中的日志信息返回至用户终端之后,该方法还包括:
删除已构建的秘钥对象、任务对象以及对应的容器,并停止读取日志信息。
如图6所示,为服务器执行构建任务时的流程示意图。服务器根据pod模板中配置的各个阶段对应的启动命令,按照配置的容器顺序依次运行对应的容器1、容器2以及容器3。当服务器监听到容器1结束执行时,则将容器1对应的全部日志信息储存至本地文件夹中,服务器继续监听下一个阶段运行的容器2,并将读取到的容器2的日志信息储存至本地文件夹中,直至服务器监听到容器3结束执行时,即该任务对象的状态为完成或者失败时,服务器将本地文件夹中的全部日志信息返回至用户终端。此时,本地文件夹中的日志信息包含该任务对象的全部日志信息,该任务对象的全部日志信息可以包括子任务1对应的全部日志信息、子任务2对应的全部日志信息以及子任务3对应的全部日志信息。当服务器将本地文件夹中的日志信息返回至对应的用户终端之后,服务器可以删除上述已构建的任务、秘钥对象、以及对应的容器1、容器2和容器3,即服务器删除与该构建任务对应的资源,并停止读取日志信息。当接收到下一次用户终端发送的构建请求时,服务器需要重新构建对应的任务对象和对应资源。由此使得,当服务器将本地文件夹中的日志信息返回至对应的用户终端之后,服务器可以删除已构建的任务对应的资源,从而能够释放占用的资源,给其他服务使用,有效提高了构建任务时的资源利用率。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种构建任务的执行装置,包括:接收模块702、创建模块704、配置模块706、运行模块708和监听模块710,其中:
接收模块702,用于接收到用户终端发送的构建请求,构建请求中携带秘钥信息和构建信息。
创建模块704,用于根据秘钥信息创建对应的秘钥对象;根据构建信息创建对应的任务对象。
配置模块706,用于根据秘钥对象配置对应的pod模板。
运行模块708,用于在任务对象中,根据pod模板运行对应的容器。
监听模块710,用于监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。
在一个实施例中,该装置还包括:拉取模块。
拉取模块用于在任务对象中,根据秘钥对象,按照构建信息中的每个阶段信息,拉取对应的容器镜像。配置模块还用于对容器镜像配置对应的启动命令和挂载目录,启动命令用于控制多容器之间的运行顺序,挂载目录用于共享文件。
在一个实施例中,该装置还包括:读取模块。
监听模块还用于监听任务对象中各个容器的状态。读取模块用于读取任务对象中容器运行时对应的日志信息时,并将日志信息存放在挂载目录中。
在一个实施例中,该装置还包括:判断模块。
判断模块用于根据构建信息中的每个阶段信息,判断容器是否有依赖阶段;若有依赖阶段,则判断依赖阶段完成的标志文件是否存在,若存在,则运行容器执行对应的阶段命令;若没有依赖阶段,则直接运行容器执行对应的阶段命令。
在一个实施例中,该装置还包括:写入模块。
写入模块用于当容器对应的阶段命令执行完成后,在共享磁盘中写入与阶段对应的特定文件,特定文件用于使得依赖阶段的其他阶段容器监听到特定文件时进入执行对应阶段的逻辑,否则持续等待直到任务对象终结。
在一个实施例中,该装置还包括:等待模块。
等待模块用于若依赖阶段完成的标志文件不存在,则继续等待标志文件,直到整个任务超时。
在一个实施例中,该装置还包括:删除模块。
删除模块用于删除已构建的秘钥对象、任务对象以及对应的容器,并停止读取日志信息。
关于构建任务的执行装置的具体限定可以参见上文中对于构建任务的执行方法的限定,在此不再赘述。上述构建任务的执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储构建任务的执行数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种构建任务的执行方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各个方法实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种构建任务的执行方法,所述方法包括:
接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
根据所述秘钥信息创建对应的秘钥对象;
根据所述构建信息创建对应的任务对象;
根据所述秘钥对象配置对应的pod模板;
在所述任务对象中,根据所述pod模板运行对应的容器;
监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述秘钥对象配置对应的pod模板包括:
在所述任务对象中,根据所述秘钥对象,按照所述构建信息中的每个阶段信息,拉取对应的容器镜像;
对所述容器镜像配置对应的启动命令和挂载目录;所述启动命令用于控制多容器之间的运行顺序;所述挂载目录用于共享文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述pod模板运行对应的容器之后,所述方法还包括:
监听所述任务对象中各个容器的状态;
读取所述任务对象中容器运行时对应的日志信息时,并将所述日志信息存放在所述挂载目录中。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件;
所述在所述任务对象中,根据所述pod模板运行对应的容器,包括:
根据所述构建信息中的每个阶段信息,判断容器是否有依赖阶段;
若有依赖阶段,则判断所述依赖阶段完成的标志文件是否存在,若存在,则运行所述容器执行对应的阶段命令;
若没有依赖阶段,则直接运行所述容器执行对应的阶段命令。
5.根据权利要求4所述的方法,其特征在于,所述运行所述容器执行对应的阶段命令之后,所述方法还包括:
当所述容器对应的阶段命令执行完成后,在共享磁盘中写入与所述阶段对应的特定文件;所述特定文件用于使得依赖所述阶段的其他阶段容器监听到所述特定文件时进入执行对应阶段的逻辑,否则持续等待直到所述任务对象终结。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述依赖阶段完成的标志文件不存在,则继续等待所述标志文件,直到整个任务超时。
7.根据权利要求1所述的方法,其特征在于,所述将所述本地文件夹中的日志信息返回至所述用户终端之后,所述方法还包括:
删除已构建的所述秘钥对象、所述任务对象以及对应的容器,并停止读取日志信息。
8.一种构建任务的执行装置,其特征在于,所述装置包括:
接收模块,用于接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
创建模块,用于根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;
配置模块,用于根据所述秘钥对象配置对应的pod模板;
运行模块,用于在所述任务对象中,根据所述pod模板运行对应的容器;
监听模块,用于监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498215.2A CN112564979B (zh) | 2020-12-17 | 2020-12-17 | 构建任务的执行方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498215.2A CN112564979B (zh) | 2020-12-17 | 2020-12-17 | 构建任务的执行方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112564979A true CN112564979A (zh) | 2021-03-26 |
CN112564979B CN112564979B (zh) | 2023-10-13 |
Family
ID=75064701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011498215.2A Active CN112564979B (zh) | 2020-12-17 | 2020-12-17 | 构建任务的执行方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112564979B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563910A (zh) * | 2022-11-24 | 2023-01-03 | 英诺达(成都)电子科技有限公司 | Upf命令的执行方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383852A (zh) * | 2016-08-30 | 2017-02-08 | 中国民生银行股份有限公司 | 基于Docker容器的日志获取方法和装置 |
WO2019100605A1 (zh) * | 2017-11-21 | 2019-05-31 | 平安科技(深圳)有限公司 | 平台即服务paas容器平台的构建方法、服务器、系统及存储介质 |
CN110955492A (zh) * | 2019-11-11 | 2020-04-03 | 广州供电局有限公司 | 基于容器技术的服务处理方法、装置和计算机设备 |
CN111459619A (zh) * | 2020-04-07 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 一种基于云平台实现服务的方法和装置 |
-
2020
- 2020-12-17 CN CN202011498215.2A patent/CN112564979B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383852A (zh) * | 2016-08-30 | 2017-02-08 | 中国民生银行股份有限公司 | 基于Docker容器的日志获取方法和装置 |
WO2019100605A1 (zh) * | 2017-11-21 | 2019-05-31 | 平安科技(深圳)有限公司 | 平台即服务paas容器平台的构建方法、服务器、系统及存储介质 |
CN110955492A (zh) * | 2019-11-11 | 2020-04-03 | 广州供电局有限公司 | 基于容器技术的服务处理方法、装置和计算机设备 |
CN111459619A (zh) * | 2020-04-07 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 一种基于云平台实现服务的方法和装置 |
Non-Patent Citations (1)
Title |
---|
耿贞伟等: "基于配置库管理工具的电力系统容器部署研究", 《数字技术与应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563910A (zh) * | 2022-11-24 | 2023-01-03 | 英诺达(成都)电子科技有限公司 | Upf命令的执行方法、装置、设备及存储介质 |
CN115563910B (zh) * | 2022-11-24 | 2023-02-03 | 英诺达(成都)电子科技有限公司 | Upf命令的执行方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112564979B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664302B2 (en) | Automated orchestration of a virtualized computing environment | |
US9307019B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
US11656852B2 (en) | System and method for autowiring of a microservice architecture | |
CN110995473B (zh) | 一种业务节点的控制方法及相关设备 | |
US9792141B1 (en) | Configured generation of virtual machine images | |
US20110004564A1 (en) | Model Based Deployment Of Computer Based Business Process On Dedicated Hardware | |
US10833955B2 (en) | Dynamic delivery of software functions | |
US11137732B2 (en) | Flow engine for building automated flows within a cloud based developmental platform | |
CN111212116A (zh) | 一种基于容器云的高性能计算集群创建方法和系统 | |
CN112104723A (zh) | 一种多集群的数据处理系统及方法 | |
CN111176818B (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
CN115292026B (zh) | 容器集群的管理方法、装置、设备及计算机可读存储介质 | |
US20200241896A1 (en) | Integration application creator design | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
CN116860266A (zh) | 应用容器化部署方法、装置、电子设备及存储介质 | |
CN114006815B (zh) | 云平台节点的自动化部署方法、装置、节点及存储介质 | |
US11663349B2 (en) | System and method for managing data object creation | |
US20140019515A1 (en) | Adaptive business logic configurator | |
CN112564979B (zh) | 构建任务的执行方法、装置、计算机设备和存储介质 | |
EP4130982A1 (en) | Network-based solution module deployment platform | |
TW201407503A (zh) | 雲端平台工作排程方法及系統 | |
CN116974716A (zh) | 调度任务的发布方法、装置、电子设备及存储介质 | |
Kanso et al. | Designing a kubernetes operator for machine learning applications | |
CN113835827A (zh) | 基于容器Docker的应用部署方法、装置及电子设备 | |
CN112650509B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |