CN117251182A - 基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 - Google Patents
基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117251182A CN117251182A CN202311354171.XA CN202311354171A CN117251182A CN 117251182 A CN117251182 A CN 117251182A CN 202311354171 A CN202311354171 A CN 202311354171A CN 117251182 A CN117251182 A CN 117251182A
- Authority
- CN
- China
- Prior art keywords
- deployment
- image
- mirror
- kubernetes
- resource
- 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 41
- 238000003860 storage Methods 0.000 claims abstract description 117
- 230000010354 integration Effects 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002085 persistent effect Effects 0.000 claims description 7
- 230000002459 sustained effect Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 5
- 238000002955 isolation Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000012550 audit Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012502 risk assessment Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000006467 substitution reaction 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/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及金融科技,具体公开了一种基于Kubernetes容器化的持续集成部署方法、装置、设备及存储介质。该方法通过在Kubernetes接收到部署指令时,通过初始化镜像拉取存储于存储服务中的部署资源,并且在接收到部署资源时,启动基础镜像,进而根据基础镜像和部署资源,配置应用容器,为用户提供部署指令对应的目标服务,使得部署资源和镜像实现分布部署,实现资源隔离,避免数据存储混乱,提高镜像和部署资源的拉取效率。在接收到部署指令时,只需要启动对应的初始化镜像和基础镜像,即可拉取相应的部署资源进行配置,减小Kubernetes节点的存储压力和数据传输压力,提高Kubernetes节点的资源部署效率,进而提高容器化持续集成部署效率。
Description
技术领域
本申请涉及金融科技技术领域,尤其涉及一种基于Kubernetes容器化的持续集成部署方法、装置、设备及介质。
背景技术
容器化部署是通过容器化部署技术(Docker)实现环境一致性、快速构建和隔离性,从而加快软件交付速度、提高部署效率,确保持续集成和持续部署的顺利实施。即,将应用程序和依赖包(基础镜像)打成一个带有启动指令的项目镜像,然后在服务器创建一个容器,让镜像在容器内运行,从而实现应用程序的部署。
Kubernetes(K8S)就是基于容器的集群管理平台,用于管理云平台中多个主机上的容器化的应用,让部署容器化的应用简单并且高效。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着。比如,在金融领域(银行、证券、股票等)用户需要对金融数据进行数据统计或者监测,因为金融数据的庞大,且实时更新,用户需要数据统计应用一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后执行数据匹配、监测、提取、统计等操作,总之,让数据统计应用一直提供服务。
但是,目前基于Kubernetes的持续集成部署方案,往往是:编译服务器编译资源打包镜像、上传镜像到镜像中心、K8S节点拉取镜像存储本地并启动。由此,使得每次使用容器化部署时,都需要编译和配置镜像,并上传服务器,导致镜像资源庞大、编译上传镜像缓慢,且上传/下载镜像占用较大网络资源带宽,镜像资源占用较大存储,使得容器化部署的效率低下。同时,重新编译发版流程复杂,需要重新编译打包镜像,无法灵活修改镜像打包好的内容,修改文件需重新打包镜像,但是很多应用的基础镜像都是相同的或者类似的,重新打包镜像则导致镜像的配置效率低下,浪费编译资源和时间。另外,测试环境和生产环境的资源都需要打包在镜像里面,环境资源没有隔离,使得部署资源存储混乱,难以快速定位和拉取资源,影响资源部署效率。
因此,如何解决目前容器化持续集成部署效率低下成为了亟待解决的技术问题。
发明内容
本申请提供了一种基于Kubernetes容器化的持续集成部署方法、装置、计算机设备及存储介质,以提高容器化持续集成部署效率。
第一方面,本申请提供了一种基于Kubernetes容器化的持续集成部署方法,所述方法包括:
在开源容器编排平台Kubernetes接收到部署指令时,启动初始化镜像;
基于所述初始化镜像,拉取存储于存储服务中的部署资源;
在所述Kubernetes接收到所述部署资源时,启动基础镜像;
基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
第二方面,本申请还提供了一种基于Kubernetes容器化的持续集成部署装置,所述装置包括:
初始化镜像启动模块,用于在Kubernetes接收到部署指令时,启动初始化镜像;
部署资源拉取模块,用于基于所述初始化镜像,拉取存储于存储服务中的部署资源;
基础镜像启动模块,用于在所述Kubernetes接收到所述部署资源时,启动基础镜像;
目标服务启动模块,用于基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的基于Kubernetes容器化的持续集成部署方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的基于Kubernetes容器化的持续集成部署方法。
本申请公开了一种基于Kubernetes容器化的持续集成部署方法、装置、计算机设备及存储介质,该方法包括:在开源容器编排平台Kubernetes接收到部署指令时,启动初始化镜像;基于所述初始化镜像,拉取存储于存储服务中的部署资源;在所述Kubernetes接收到所述部署资源时,启动基础镜像;基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。通过上述方式,在Kubernetes接收到部署指令时,通过初始化镜像拉取存储于存储服务中的部署资源,并且在接收到部署资源时,启动基础镜像,进而根据基础镜像和部署资源,配置应用容器,为用户提供部署指令对应的目标服务,使得部署资源和镜像实现分布部署,实现资源隔离,避免数据存储混乱,提高镜像和部署资源的拉取效率。在接收到部署指令时,只需要启动对应的初始化镜像和基础镜像,即可拉取相应的部署资源进行配置,减小Kubernetes节点的存储压力和数据传输压力,提高Kubernetes节点的资源部署效率,进而提高容器化持续集成部署效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种基于Kubernetes容器化的持续集成部署方法第一实施方式的示意流程图;
图2是本申请的实施例提供的基于Kubernetes容器化的持续集成部署方案的结构示意图;
图3是本申请的实施例提供的一种基于Kubernetes容器化的持续集成部署方法第二实施方式的示意流程图;
图4是本申请的实施例提供一种基于Kubernetes容器化的持续集成部署装置的示意性框图;
图5是本申请的实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种基于Kubernetes容器化的持续集成部署方法第一实施方式的示意流程图。该基于Kubernetes容器化的持续集成部署方法可应用于服务器中。
如图1所示,该基于Kubernetes容器化的持续集成部署方法具体包括步骤S101至步骤S104。
S101、在开源容器编排平台Kubernetes接收到部署指令时,启动初始化镜像;
在一实施例中,Kubernetes(简称,K8S)是谷歌Google开源的容器集群管理系统,在容器化技术Docker的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。其主要功能包括:使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run);以集群的方式运行、管理跨机器的容器;解决Docker跨机器容器之间的通讯问题;Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
在一实施例中,要将应用程序部署到Kubernetes,必须先将其容器化。使用Docker作为容器运行时工具,创建一个Docker文件。Dockerfile是一个文本文件,包含了用户可以在命令行上调用的所有命令,以组装一个镜像。
其中,Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),用于构建镜像。每一条指令构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建。
在一实施例中,镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
示例性的,在进行金融数据审计时,通常需要通过专业的审计应用程序进行数据检测、计算等,而针对不同金融领域的数据,比如银行领域、股票领域或者企业资产领域,其审计规则可能是不同的,但是审计应用程序的基本逻辑都是相同的,即审计应用程序的基础代码是一致的,而环境变量、运行时、库以及配置文件可能是不同的,此时,可以根据基础代码配置审计应用程序的基础镜像,即审计应用程序相同的代码部分,而对于运行时、库、环境变量和配置文件等,则可以根据不同金融领域的数据审计需求,打包成对应的部署资源。同时,针对不同金融领域数据,配置不同的初始化镜像,该初始化镜像用于拉取对应金融领域的部署资源,进而结合基础镜像,配置成该对应金融领域的云程序,从而实现对该对应金融领域的数据审计。
在一实施例中,用户在进行Kubernetes容器化持续集成部署时,首先配置好基础镜像、初始化镜像和部署资源,并且将基础镜像和初始化镜像上传至镜像中心存储,而部署资源则上传至存储服务模块中进行存储。
在一实施例中,所述部署指令包括初始化镜像名称、初始化镜像存储地址、基础镜像名称、基础镜像存储地址、应用名称以及部署资源存储地址。
在一实施例中,用户在启用Kubernetes容器化持续集成部署之前,首先需要配置初始化镜像、基础镜像以及部署资源,然后将这些配置数据上云存储。在正式启用Kubernetes容器时,根据数据处理需求,确定该数据处理需求需要应用到的配置数据,然后根据各配置数据的存储地址、名称等生成部署指令,发送给Kubernetes容器,“告诉”Kubernetes容器需要用到的初始化镜像、基础镜像以及部署资源等数据资源。
示例性的,如果用户需要进行股票数据的统计,那么其对应的基础镜像可能是数据统计应用基础程序包对应的镜像,该基础镜像中只包含数据统计所需要的基础逻辑程序,而部署资源中则包含针对股票数据进行统计所涉及的其他逻辑程序数据,初始化镜像则是一个可以拉取到该部署资源的容器。部署指令可以告诉Kubernetes容器需要下载的初始化镜像、基础镜像以及需要拉取的部署资源,以针对该股票数据统计需求配置相应的云服务组件。
S102、基于所述初始化镜像,拉取存储于存储服务中的部署资源;
在一实施例中,用户在需要进行Kubernetes容器化持续集成部署时,先配置好镜像和部署资源,然后向Kubernetes发送部署指令。
在一实施例中,如图2所示,Kubernetes在收到部署指令后,向镜像中心下载初始化镜像,并启动初始化镜像,通过初始化镜像下载部署资源。
在一实施例中,在所述Kubernetes接收到所述部署资源时,删除所述初始化镜像。
在一实施例中,初始化镜像拉取编译好的资源后,自动销毁,以避免初始化镜像占据存储空间。
S103、在所述Kubernetes接收到所述部署资源时,启动基础镜像;
在一实施例中,基础镜像作用是为项目镜像提供支持,准备好php基础镜像之后,以此镜像为基础并添加项目代码,完成项目镜像构建工作,除重大安全更新、添加新的扩展模块之外,基础镜像并不会经常更新和调整。
在一实施例中,继续如图2所示,在初始化镜像拉取到部署资源时,Kubernetes启动基础镜像,从而基于基础镜像和部署资源创建具备场景功能的应用容器,以提供具备特定功能的应用服务。
S104、基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
在一实施例中,继续如图2所示,初始化镜像在拉取到部署资源之后,Kubernetes会启动基础镜像,基础镜像使用初始镜像拉取的资源启动服务。
在一实施例中,基础镜像只包括应用的基本逻辑程序和依赖,在容器部署过程中,用户可以根据实际需求编译部署资源,在基础镜像的基础上修改或者增加性的内容,从而实现具有功能偏向的镜像容器的构建。比如,数据分类任务中,基础镜像可以包括基础分类算法的逻辑代码,而根据不同的部署资源,结合基础镜像,则可以构建用于不同领域的分类应用容器,如股票风险分布预测、银行客户群分类、信用卡欺诈数据分类等。
本实施例提供了一种基于Kubernetes容器化的持续集成部署方法,该方法通过在Kubernetes接收到部署指令时,通过初始化镜像拉取存储于存储服务中的部署资源,并且在接收到部署资源时,启动基础镜像,进而根据基础镜像和部署资源,配置应用容器,为用户提供部署指令对应的目标服务,使得部署资源和镜像实现分布部署,实现资源隔离,避免数据存储混乱,提高镜像和部署资源的拉取效率。在接收到部署指令时,只需要启动对应的初始化镜像和基础镜像,即可拉取相应的部署资源进行配置,减小Kubernetes节点的存储压力和数据传输压力,提高Kubernetes节点的资源部署效率,进而提高容器化持续集成部署效率。
请参阅图3,图3是本申请的实施例提供的一种基于Kubernetes容器化的持续集成部署方法第二实施方式的示意流程图。
如图3所示,基于上述图1所示实施例,所述步骤S101之前,还包括:
步骤S201、基于所述目标服务对应的应用需求,编译所述部署资源;
在一实施例中,编译服务器一般是指分布式编译系统中为客户端提供编译服务的机器,一个客户端可以将任务分发给编译服务器,编译服务器将编译结果返回给客户端。编译服务器可以为开发者提供多种不同的开发环境,开发者也可以根据开发需求搭建专用的编译服务器。
在一实施例中,开发者可以通过编译服务器编译应用程序的不同部分,将应用程序拆分,即基础镜像、初始化镜像和部署资源等。
进一步地,基于所述目标服务对应的应用需求,确定所述基础镜像;在所述镜像中心中不存在所述基础镜像时,配置所述初始化镜像和所述基础镜像;或者,在所述镜像中心存在所述基础镜像时,配置所述初始化镜像。
在一实施例中,对于同一类应用程序,比如数据分类应用、数据统计应用等,其基础逻辑程序是相同的或者类似的,此时基础镜像只需要编译一次即可,然后针对不同的应用场景和应用需求,编译对应的部署资源,从而避免对基础镜像的重复编译,减少编译工作量,提高编译效率。
在一实施例中,部署资源是根据实际应用场景和应用需求进行针对性开发和编译的,比如数据分类应用场景、数据统计应用场景等。而进一步地,根据不同的应用领域配置数据也会存在不同,比如风险投资应用场景,针对单一目标的风险评估与针对多目标的风险评估,其数据库的来源以及分类准则都不一样,那么运行库和配置文件也是不同的。
步骤S202、在所述部署资源编译完成后,向所述存储服务发送存储请求;
在一实施例中,通过编译服务器编译完部署资源之后,即可将部署资源上传至指定的存储服务中。在上传部署资源时,首先向存储服务发送存储请求,以便于获取存储地址。
在一实施例中,存储请求可以包括部署资源的数据类型和数据标签等信息。比如用于测试的部署资源,则可以将部署资源对应的项目名称添加到测试环境目录中,并将部署资源存储至测试数据存储分区中;如果是用于生产的部署资源,则可以将部署资源对应的项目名称添加到生产环境目录中,并将部署资源存储至生产数据存储分区中。
在一实施例中,部署资源和镜像资源的存储位置并不相同,镜像存储于镜像中心,部署资源存储于存储服务,镜像中心和存储服务相互隔离,避免混乱。其中,由于部署资源是需要根据用户实际应用需求进行配置,而镜像则用于配置云应用服务组件,所以部署资源可以是临时存储,而镜像则可以长时间存储。
步骤S203、在所述存储服务基于所述存储请求反馈存储地址时,将所述部署资源上传至所述存储服务,并基于所述存储地址,存储所述部署资源。
在一实施例中,存储服务在获取到存储请求时,解析存储请求中关于部署资源的信息,比如部署资源的数据名称、数据类型(生产环境类或者测试环境类等)、数据大小等,从而确定部署资源的存储地址。
在一实施例中,根据存储服务划分的存储地址,存储用户上传的部署资源,并且根据部署资源对应的应用名称等属性,将部署资源添加到资源目录中,以便于初始化镜像快速定位和拉取该部署资源。
进一步地,所述在Kubernetes接收到部署指令时,启动初始化镜像,包括:基于所述部署指令,确定所述初始化镜像对应的所述初始化镜像名称和所述初始化镜像存储地址;基于所述初始化镜像名称和所述初始化镜像存储地址,向镜像中心发送所述初始化镜像的第一下载请求;在接收到所述镜像中心基于所述第一下载请求发送的初始化镜像资源包时,基于所述初始化镜像资源包,启动所述初始化镜像。
在一实施例中,用户在执行镜像应用服务之前,需要先配置初始化镜像,并将初始化镜像上传至镜像中心保存。
在一实施例中,镜像中心可以根据初始化镜像对应的应用名称和初始化镜像在镜像中心的存储地址,创建初始化镜像目录。
在一实施例中,部署指令可以包括初始化镜像的名称、初始化镜像的存储地址,Kubernetes通过解析部署指令,获取初始化镜像名称和初始化存储地址,从而向镜像中心发送第一下载请求,从镜像中心拉取该初始化镜像。镜像中心基于第一下载请求反馈初始化镜像资源包,在Kubernetes中构建初始化镜像容器,进而启动该初始化镜像容器,从存储服务中拉取部署资源。
进一步地,所述在所述Kubernetes接收到所述部署资源时,启动基础镜像,包括:基于所述基础镜像名称和所述基础镜像存储地址,向镜像中心发送所述基础镜像的第二下载请求;在接收到所述镜像中心基于所述第二下载请求发送的基础镜像资源包时,基于所述基础镜像资源包,启动所述基础镜像。
在一实施例中,用户在执行镜像应用服务之前,还需要配置基础镜像,并将基础镜像上传至镜像中心进行存储,以便于Kubernetes可以根据基础镜像配置应用组件。
在一实施例中,基础镜像也可以是镜像中心已有的,此时,用户不需要重新配置基础镜像,而只需要获取基础镜像的名称和存储地址,通过部署指令向镜像中心发送第二下载请求,从而使得Kubernetes可以从镜像中心拉取基础镜像资源包,并且根据基础镜像资源包,在Kubernetes中构建基础镜像容器,进而启动基础镜像容器,结合部署资源,创建目标应用组件,为用户提供应用服务。
本实施例通过对部署资源和镜像的分布存储,实现了资源的隔离。同时,对于镜像的隔离存储,解决了镜像打包缓慢的问题,只需要配置和存储一个基础镜像,而不需要每次编译上传一个镜像资源。在应用服务变更时,只需要修改存储服务的资源,并重启服务即可完成资源变更,无需重新编译打包镜像。K8S节点只需保存基础镜像,每一次的服务只需要在基础服务的基础上进行资源的修改和重组,而无需保存每次编译打包的镜像,由此可以节约资源。
请参阅图4,图4是本申请的实施例提供一种基于Kubernetes容器化的持续集成部署装置的示意性框图,该基于Kubernetes容器化的持续集成部署装置用于执行前述的基于Kubernetes容器化的持续集成部署方法。其中,该基于Kubernetes容器化的持续集成部署装置可以配置于服务器。
如图4所示,该基于Kubernetes容器化的持续集成部署装置300,包括:
初始化镜像启动模块301,用于在Kubernetes接收到部署指令时,启动初始化镜像;
部署资源拉取模块302,用于基于所述初始化镜像,拉取存储于存储服务中的部署资源;
基础镜像启动模块303,用于在所述Kubernetes接收到所述部署资源时,启动基础镜像;
目标服务启动模块304,用于基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
在一个实施例中,所述基于Kubernetes容器化的持续集成部署装置400还包括:
初始化镜像删除单元,用于在所述Kubernetes接收到所述部署资源时,删除所述初始化镜像。
在一个实施例中,所述基于Kubernetes容器化的持续集成部署装置400还包括部署资源配置模块,所述部署资源配置模块包括:
部署资源编译单元,用于基于所述目标服务对应的应用需求,编译所述部署资源;
存储请求单元,用于在所述部署资源编译完成后,向所述存储服务发送存储请求;
部署资源存储单元,用于在所述存储服务基于所述存储请求反馈存储地址时,将所述部署资源上传至所述存储服务,并基于所述存储地址,存储所述部署资源。
在一实施例中,所述基于Kubernetes容器化的持续集成部署装置400还包括镜像配置模块,所述镜像配置模块包括:
基础镜像确定单元,用于基于所述目标服务对应的应用需求,确定所述基础镜像;
第一镜像配置单元,用于在所述镜像中心中不存在所述基础镜像时,配置所述初始化镜像和所述基础镜像;
第二镜像配置单元,用于在所述镜像中心存在所述基础镜像时,配置所述初始化镜像。
在一实施例中,所述部署指令包括初始化镜像名称、初始化镜像存储地址、基础镜像名称、基础镜像存储地址、应用名称以及部署资源存储地址。
在一实施例中,所述初始化镜像启动模块301包括:
初始化镜像查询单元,用于基于所述部署指令,确定所述初始化镜像对应的所述初始化镜像名称和所述初始化镜像存储地址;
第一下载请求单元,用于基于所述初始化镜像名称和所述初始化镜像存储地址,向镜像中心发送所述初始化镜像的第一下载请求;
初始化镜像启动单元,用于在接收到所述镜像中心基于所述第一下载请求发送的初始化镜像资源包时,基于所述初始化镜像资源包,启动所述初始化镜像。
在一实施例中,所述基础镜像启动模块303包括:
第二下载请求单元,用于基于所述基础镜像名称和所述基础镜像存储地址,向镜像中心发送所述基础镜像的第二下载请求;
基础镜像下载单元,用于在接收到所述镜像中心基于所述第二下载请求发送的基础镜像资源包时,基于所述基础镜像资源包,启动所述基础镜像。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本申请的实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
参阅图5,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种基于Kubernetes容器化的持续集成部署方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种基于Kubernetes容器化的持续集成部署方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(CentralProcessingUnit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
在开源容器编排平台Kubernetes接收到部署指令时,启动初始化镜像;
基于所述初始化镜像,拉取存储于存储服务中的部署资源;
在所述Kubernetes接收到所述部署资源时,启动基础镜像;
基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
在一个实施例中,所述处理器在实现所述基于所述初始化镜像,拉取存储于存储服务中的部署资源之后,还用于实现:
在所述Kubernetes接收到所述部署资源时,删除所述初始化镜像。
在一个实施例中,所述处理器在实现所述在Kubernetes接收到部署指令时,启动初始化镜像之前,还用于实现:
基于所述目标服务对应的应用需求,编译所述部署资源;
在所述部署资源编译完成后,向所述存储服务发送存储请求;
在所述存储服务基于所述存储请求反馈存储地址时,将所述部署资源上传至所述存储服务,并基于所述存储地址,存储所述部署资源。
在一个实施例中,所述处理器在实现所述基于所述目标服务对应的应用需求,编译所述部署资源之后,还用于实现:
基于所述目标服务对应的应用需求,确定所述基础镜像;
在所述镜像中心中不存在所述基础镜像时,配置所述初始化镜像和所述基础镜像;
或者,在所述镜像中心存在所述基础镜像时,配置所述初始化镜像。
在一实施例中,所述部署指令包括初始化镜像名称、初始化镜像存储地址、基础镜像名称、基础镜像存储地址、应用名称以及部署资源存储地址。
在一个实施例中,所述处理器在实现所述在Kubernetes接收到部署指令时,启动初始化镜像时,用于实现:
基于所述部署指令,确定所述初始化镜像对应的所述初始化镜像名称和所述初始化镜像存储地址;
基于所述初始化镜像名称和所述初始化镜像存储地址,向镜像中心发送所述初始化镜像的第一下载请求;
在接收到所述镜像中心基于所述第一下载请求发送的初始化镜像资源包时,基于所述初始化镜像资源包,启动所述初始化镜像。
在一个实施例中,所述处理器在实现,所述在所述Kubernetes接收到所述部署资源时,启动基础镜像时,用于实现:
基于所述基础镜像名称和所述基础镜像存储地址,向镜像中心发送所述基础镜像的第二下载请求;
在接收到所述镜像中心基于所述第二下载请求发送的基础镜像资源包时,基于所述基础镜像资源包,启动所述基础镜像。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项基于Kubernetes容器化的持续集成部署方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于Kubernetes容器化的持续集成部署方法,其特征在于,包括:
在开源容器编排平台Kubernetes接收到部署指令时,启动初始化镜像;
基于所述初始化镜像,拉取存储于存储服务中的部署资源;
在所述Kubernetes接收到所述部署资源时,启动基础镜像;
基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
2.根据权利要求1所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述基于所述初始化镜像,拉取存储于存储服务中的部署资源之后,还包括:
在所述Kubernetes接收到所述部署资源时,删除所述初始化镜像。
3.根据权利要求1所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述在Kubernetes接收到部署指令时,启动初始化镜像之前,还包括:
基于所述目标服务对应的应用需求,编译所述部署资源;
在所述部署资源编译完成后,向所述存储服务发送存储请求;
在所述存储服务基于所述存储请求反馈存储地址时,将所述部署资源上传至所述存储服务,并基于所述存储地址,存储所述部署资源。
4.根据权利要求3所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述基于所述目标服务对应的应用需求,编译所述部署资源之后,还包括:
基于所述目标服务对应的应用需求,确定所述基础镜像;
在所述镜像中心中不存在所述基础镜像时,配置所述初始化镜像和所述基础镜像;
或者,在所述镜像中心存在所述基础镜像时,配置所述初始化镜像。
5.根据权利要求1所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述部署指令包括初始化镜像名称、初始化镜像存储地址、基础镜像名称、基础镜像存储地址、应用名称以及部署资源存储地址。
6.根据权利要求5所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述在Kubernetes接收到部署指令时,启动初始化镜像,包括:
基于所述部署指令,确定所述初始化镜像对应的所述初始化镜像名称和所述初始化镜像存储地址;
基于所述初始化镜像名称和所述初始化镜像存储地址,向镜像中心发送所述初始化镜像的第一下载请求;
在接收到所述镜像中心基于所述第一下载请求发送的初始化镜像资源包时,基于所述初始化镜像资源包,启动所述初始化镜像。
7.根据权利要求5所述的基于Kubernetes容器化的持续集成部署方法,其特征在于,所述在所述Kubernetes接收到所述部署资源时,启动基础镜像,包括:
基于所述基础镜像名称和所述基础镜像存储地址,向镜像中心发送所述基础镜像的第二下载请求;
在接收到所述镜像中心基于所述第二下载请求发送的基础镜像资源包时,基于所述基础镜像资源包,启动所述基础镜像。
8.一种基于Kubernetes容器化的持续集成部署装置,其特征在于,包括:
初始化镜像启动模块,用于在Kubernetes接收到部署指令时,启动初始化镜像;
部署资源拉取模块,用于基于所述初始化镜像,拉取存储于存储服务中的部署资源;
基础镜像启动模块,用于在所述Kubernetes接收到所述部署资源时,启动基础镜像;
目标服务启动模块,用于基于所述基础镜像和所述部署资源,启动所述部署指令对应的目标服务,以响应所述部署指令。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的基于Kubernetes容器化的持续集成部署方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的基于Kubernetes容器化的持续集成部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311354171.XA CN117251182A (zh) | 2023-10-18 | 2023-10-18 | 基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311354171.XA CN117251182A (zh) | 2023-10-18 | 2023-10-18 | 基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117251182A true CN117251182A (zh) | 2023-12-19 |
Family
ID=89126341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311354171.XA Pending CN117251182A (zh) | 2023-10-18 | 2023-10-18 | 基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251182A (zh) |
-
2023
- 2023-10-18 CN CN202311354171.XA patent/CN117251182A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567755B2 (en) | Integration of containers with external elements | |
US9959105B2 (en) | Configuration of an application in a computing platform | |
CN108829409B (zh) | 一种分布式系统快速部署方法及系统 | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
US9280338B1 (en) | Dynamic application updates | |
US9170797B2 (en) | Automated deployment of an application in a computing platform | |
KR20200004835A (ko) | 모놀로식 레거시 애플리케이션들에 기초한 마이크로서비스들의 컨테이너화된 전개 | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
US9996331B1 (en) | Customized application state transition | |
Etchevers et al. | Self-configuration of distributed applications in the cloud | |
US20130198763A1 (en) | Connection management for an application in a computing platform | |
US8027817B2 (en) | Simulation management within a grid infrastructure | |
JP6052406B2 (ja) | 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム | |
US11307839B2 (en) | Updating of container-based applications | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
US20070006121A1 (en) | Development activity recipe | |
CN117251182A (zh) | 基于Kubernetes容器化的持续集成部署方法、装置、设备及介质 | |
US20160292574A1 (en) | Automatic determination and just-in-time acquisition of data for semantic reasoning | |
Kaur et al. | Docker and its features | |
US9442782B2 (en) | Systems and methods of interface description language (IDL) compilers | |
JP2022009562A (ja) | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 | |
CN110321335B (zh) | 建模数据下载方法、装置、电子设备及计算机存储介质 | |
Zhang et al. | Tinyedge: Enabling rapid edge system customization for iot applications | |
Dyson et al. | Litener: An accelerator-enabled lightweight container for edge computing | |
US20240152371A1 (en) | Dynamic re-execution of parts of a containerized application pipeline |
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 |