服务部署方法和装置
文献发布时间:2023-06-19 18:49:33
技术领域
本申请实施例涉及计算机技术。更具体地讲,涉及一种服务部署方法和装置。
背景技术
在容器云集群下,如果需要启动一个服务,必须提供容器镜像,容器镜像包含一个打包的应用,以及它的依赖关系,还有它在启动时运行的进程信息。如:在容器云集群下部署一个java应用包对应的服务,需要jdk基础运行环境、应用jar包以及启动命令的镜像,每部署一个新版本或者创建一个新的java应用,都需要构建一个镜像。
现有的解决方案是编写Dockerfile(Dockerfile是一个文本文件,其内包含了一条条的指令,用于构建镜像,每一条指令构建一层镜像,每一条指令的内容,用来描述该层镜像应当如何构建),基于Dockerfile构建镜像。但编写Dockerfile需要业务人员花费大量时间熟悉掌握Dockerfile基本语法,并且构建镜像过程也很慢。
因此,亟须一种快速部署服务的方法,可以摆脱Dockerfile以及镜像构建的限制,降低服务部署的难度。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种服务部署方法和装置,可以基于应用包快速地在容器云集群中部署服务,降低了服务部署的难度。
第一方面,本申请实施例提供了一种服务部署方法,应用于容器云集群,该方法包括:接收容器云平台基于接收到的目标操作发送的目标请求,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;基于目标请求,创建目标应用包对应的应用容器;通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
第二方面,本申请实施例提供了一种服务部署方法,应用于容器云平台,该方法包括:接收目标操作,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;基于目标操作,向容器云集群发送目标请求,以使容器云集群基于目标请求,创建目标应用包对应的应用容器,以及通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
第三方面,本申请实施例提供了一种服务部署装置,应用于容器云集群,该装置包括:接收模块,创建模块,启动模块;该接收模块,用于接收容器云平台基于接收到的目标操作发送的目标请求,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;该创建模块,用于基于目标请求,创建目标应用包对应的应用容器;该启动模块,用于通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
第四方面,本申请实施例提供了一种服务部署装置,应用于容器云平台,该装置包括:接收模块和发送模块;该接收模块,用于接收目标操作,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;该发送模块,用于基于目标操作,向容器云集群发送目标请求,以使容器云集群基于目标请求,创建目标应用包对应的应用容器,以及通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
第五方面,本申请提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面、第二方面所述的服务部署方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第一方面、第二方面所示的服务部署方法。
第七方面,本申请提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第一方面、第二方面所示的服务部署方法。
本申请实施例提供的技术方案与现有技术相比具有如下优点:本申请实施例中,容器云平台接收目标操作,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作,每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;容器云平台基于目标操作,向容器云集群发送目标请求;容器云集群接收容器云平台发送的目标请求;容器云集群基于目标请求,创建目标应用包对应的应用容器;容器云集群通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。如此,业务人员仅需要通过容器云平台上传应用包并为应用包选择对应的基础镜像即可,基于应用包完成服务的部署,无需花费大量的时间与精力去熟悉和编写Dockerfile文件,且容器云集群中提前部署了基础镜像,也可以节省通过Dockerfile文件再去构建镜像的时间,使得服务的部署更加简单,有效提升了服务部署的效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例的服务部署方法的流程示意图之一;
图2示出了根据一些实施例的服务部署方法的流程示意图之二;
图3示出了根据一些实施例的服务部署方法的流程示意图之三;
图4示出了根据一些实施例的服务部署方法的流程示意图之四;
图5示出了根据一些实施例的目标应用包的上传和部署的流程示意图;
图6示出了根据一些实施例的部署目标服务的流程示意图;
图7示出了根据一些实施例的服务部署方法的流程示意图之五;
图8示出了根据一些实施例的初始化容器与应用容器的启动顺序的示意图;
图9示出了根据一些实施例的初始化容器与应用容器与目标区域的关系示意图;
图10示出了根据一些实施例的服务部署方法的流程示意图之六;
图11示出了根据一些实施例的服务部署方法的流程示意图之七;
图12示出了根据一些实施例的服务部署装置的结构框图之一;
图13示出了根据一些实施例的服务部署装置的结构框图之二。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
目前,容器技术得到极大普及,很多企业都使用了容器技术来部署自身服务。在使用容器技术的过程中,用户需要构建镜像,再基于镜像创建容器,整个工作流程包括:提交最新版本代码;进行编译,生成应用包,如基于java构建的jar包,或者基于tomcat构建的war包等;编写Dockerfile;根据Dockerfile,构建生成镜像;将生成的镜像上传到镜像仓库;从镜像仓库中选择对应的镜像部署服务。该流程需要业务人员熟悉Dockerfile的编写,因此需要花费大量的学习成本,并且构建镜像、推送镜像,消耗大量时间,无法快速部署服务。基于目前存在的问题,本申请的方案提出一种服务部署方法,使用户可以直接基于应用包部署服务,无需消耗大量时间在Dockerfile编写以及构建镜像推送镜像等与业务层面无关的工作上,使业务人员更加专注与业务自身。
下面结合附图,通过具体的实施例对本申请实施例提供的服务部署方法进行详细的说明。
如图1所示,本申请实施例提供一种服务部署方法,该方法可以包括下述的步骤101至步骤105。
101、容器云平台接收目标操作。
其中,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作,每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像。
可以理解,用户在容器云平台上进行操作,执行用户操作的为容器云集群,即可以将容器云平台理解为客户端,容器云集群理解为服务器。
可以理解,用户需要在容器云集群上部署目标服务,目标服务的部署通过启动目标应用包实现。用户在容器云平台上传目标应用包,选择启动目标应用包需要依赖的目标基础环境的目标标识,还可以设置与目标服务相关其他配置信息,如:资源配置(如部署目标服务需要的内存、占用的CPU等),环境变量(如目标应用包注入的变量),配置文件(如目标应用包依赖的数据库的地址等)等,用户在容器云平台上为部署目标服务进行的具体操作本申请实施例不做限定,可以根据实际需要进行设置。
可以理解,目标标识的选择,依赖的是目标应用包的类型,如目标应用包的类型jar包,则目标标识指示的目标基础镜像中包括的运行环境为jdk基础运行环境,目标应用包的类型为war包,则目标标识指示的目标基础镜像中包括的运行环境为tomcat基础运行环境。
可以理解,容器云集群中预先部署了至少一个基础镜像,每个基础镜像提供了与应用包对应的运行环境以及应用包的启动命令。
可选地,目标基础镜像是容器云集群在接收到目标请求之后,基于目标请求指示的目标应用的类型包实时构建的。即无需预先部署多个基础镜像,基于目标应用包需要的基础镜像再进行构建,如此,可以节省容器云集群的存储空间,降低资源消耗。
可以理解,目标应用包的类型指示运行目标应用包需要的环境类型。
可以理解,在用户上传的目标应用包没有与其对应的目标基础镜像对应的目标标识可供选择时,容器云集群可以基于目标应用包的类型构建对应的目标基础镜像,确保目标应用包对应的目标服务可以成功部署。
102、容器云平台基于目标操作,向容器云集群发送目标请求。
可以理解,容器云平台基于目标操作,生成目标请求,向容器云集群发送目标请求。目标请求用于请求在容器云集群中部署目标应用包对应的目标服务,目标请求是基于目标操作,将目标操作转换成对应的数据并组装得到的。
可以理解,目标请求包括至少一条消息,即目标请求可以通过一条消息一次完成发送,目标请求也可以是通过多条信息多次完成发送,具体根据实际情况确定,本申请实施例不做限定。
示例性地,容器云集群可以是基于Kubernetes的容器云集群,还可以是其他的容器云集群,本申请实施例不做限定。
103、容器云集群接收容器云平台发送的目标请求。
104、容器云集群基于目标请求,创建目标应用包对应的应用容器。
105、容器云集群通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
可以理解,启动命令用于指示启动指定目录下的应用包,指定目录下包括目标应用包,执行目标基础镜像中应用容器的启动命令,则会使用目标基础镜像指示的运行环境启动指定目录下的目标应用包。
可以理解,目标应用包存储在容器云集群的指定目录下,目标应用包可以是从应用包管理服务器中下载并存储在指定目录下,也可以是容器云平台发送至容器云集群并存储在指定目录下,具体根据实际需要确定,本申请实施例不做限定。
可以理解,目标应用包启动成功,则可执行后续的业务,即该目标应用包对应的目标服务在容器云集群中成功部署。
本申请实施例中,容器云平台接收目标操作,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作,每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;容器云平台基于目标操作,向容器云集群发送目标请求;容器云集群接收容器云平台发送的目标请求;容器云集群基于目标请求,创建目标应用包对应的应用容器;容器云集群通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。如此,业务人员仅需要通过容器云平台上传应用包并为应用包选择对应的基础镜像即可,基于应用包完成服务的部署,无需花费大量的时间与精力去熟悉和编写Dockerfile文件,且容器云集群中提前部署了基础镜像,也可以节省通过Dockerfile文件再去构建镜像的时间,使得服务的部署更加简单,有效提升了服务部署的效率。
本申请一些实施例中,结合图1,如图2所示,上述步骤105之前,本申请实施例的服务部署方法还包括下述步骤106。
106、容器云集群通过应用容器基于目标请求,获取目标应用包。
可以理解,目标基础镜像的启动命令用于指示启动指定目录下的目标应用包,在启动目标应用包,即在启动目标应用包之前,通过应用容器先从指定目标下获取到目标应用包,然后再启动目标应用包。
本申请实施例中,容器云集群通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包之前,容器云集群通过应用容器基于目标请求,获取目标应用包;如此,部署目标应用包对应的目标服务,仅依赖应用容器,占用更少的CPU和内存资源,减少系统资源的消耗,也易于维护。
本申请一些实施例中,结合图2,如图3所示,容器云平台发送的目标请求包括目标应用包,上述步骤106,具体可以通过下述步骤106a实现。
106a、容器云集群通过应用容器从目标请求中获取目标应用包。
可以理解,目标请求为一条消息,则该一条消息中包括目标应用包;目标请求也可以是多条消息,则有该多条消息中存在一条消息为目标应用包,具体地本申请实施例不做限定。
可以理解,容器云平台组装得到的目标请求中包括:指示目标基础镜像的目标标识,目标应用包;可选地,容器云平台组装得到的目标请求中还可以包括:资源配置(如部署目标服务需要的内存、占用的CPU等),环境变量(如目标应用包注入的变量),配置文件(如目标应用包依赖的数据库的地址等),容器启动参数等,具体目标请求中包括的内容根据实际需要可以增加或者删除,本申请实施例不做限定。
可以理解,容器云集群通过应用容器从目标请求中获取目标应用包,具体地,通过应用容器接收容器云平台发送的目标应用包,将目标应用包存储到应用容器对应的指定目录下,启动目标应用包时,根据启动命令从指定的目录下获取目标应用包,并通过目标应用包对应的运行环境启动目标应用包。
本申请实施例中,容器云平台发送的目标请求包括目标应用包,容器云集群通过应用容器从目标请求中获取目标应用包;如此,在有应用包对应的服务需要部署时,可以实时的从请求中获取应用包,更具时效性。
本申请一些实施例中,容器云平台发送的目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包,结合图2,如图4所示,上述步骤106,具体可以通过下述步骤106b实现。
106b、容器云集群通过应用容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包。
其中,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
可以理解,应用包标识用于指示目标应用包。
可以理解,启动指令和下载指令可以是同一条指令,也可以是不同的指令,具体根据实际情况确定,本申请实施例不做限定。
可以理解,应用包管理服务器可以为基于文件传输协议(File TransferProtocol,FTP)的FTP服务器,还可以是其他服务器,具体根据实际需要确定,本申请实施例不做限定。
可以理解,容器云平台可以仅发送目标应用包至应用包管理服务器,应用包管理服务器将目标应用包存储在应用包管理服务器的默认路径下;容器云平台也可以发送目标应用包和指示目标应用包的存储路径(如携带租户、项目参数,应用包管理服务器将目标应用包存储在租户、项目参数对应的存储路径下)至应用包管理服务器,应用包管理服务器将目标应用包存储在指示的存储路径下。
可以理解,容器云平台组装得到的目标请求中包括:目标应用包对应的应用包标识;可选地,容器云平台组装得到的目标请求中还可以包括:目标应用包在应用包管理服务器存储路径(可以是默认的存储路径,也可以是容器云平台上传目标应用包至应用包管理服务器成功后,应用包管理服务器向容器云平台返回的目标应用包在应用包管理服务器上的存储路径),资源配置(如部署目标服务需要的内存、占用的CPU等),环境变量(如目标应用包注入的变量),配置文件(如目标应用包依赖的数据库的地址等),容器启动参数等,具体目标请求中包括的内容根据实际需要可以增加或者删除,本申请实施例不做限定。
可以理解,应用包管理服务器中存储的目标应用包,可以是容器云平台接收到上传目标应用包的操作,上传目标应用包至管理服务器;还可以是容器云平台接收到上传目标应用包的操作,且确定目标应用包有更新的情况下,上传目标应用包至管理服务器。
可以理解,本申请中通过下述策略确保应用容器可以从应用包管理服务器中成功下载目标应用包。
一种可选地策略:容器云平台上传目标应用包到应用包管理服务器和发送目标请求至容器云集群是串行的,即容器云平台基于目标操作,先上传目标应用包至应用包管理服务器,在容器云平台接收到应用包管理服务器发送的指示接收目标应用包成功的消息(或容器云平台在预设时长内未接收到应用包管理服务器发送的指示接收目标应用包失败的消息)后,再向容器云集群发送目标请求,若目标应用包上传至应用包管理服务器失败,则重新上传,若重新上传的次数大于或者等于第一次数阈值,则容器云平台停止上传目标应用包,并输出提示消息以提示用户目标应用包上传失败。
另一种可选地策略:容器云平台上传目标应用包到应用包管理服务器和发送目标请求至容器云集群是并行的,即容器云平台基于目标操作,上传目标应用包至应用包管理服务器的同时,向容器云集群发送目标请求,在容器云集群通过应用容器,从应用包管理服务器下载目标应用包时,若下载失败,则等待预设间隔时长,重新下载目标应用包,若重新下载的次数大于或者等于第二次数阈值,则容器云集群向容器云平台发送指示下载目标应用包失败的消息,容器云平台接收到消息后,可以输出消息以提示用户检查应用包管理服务器是否存储有目标应用包。
可以理解,容器云平台在接收到上传目标应用包的操作,且确定目标应用包有更新的情况下,上传目标应用包至管理服务器,如此,若后续需要在容器云集群中部署与目标应用包相同的服务,若目标应用包没有更新,无需重复上传,可以使用应用包管理服务器中存储的目标应用包,只有在目标应用包有更新的情况下再上传目标应用包,如此,可以减少应用包管理服务器的存储压力。
可以理解,应用包管理服务器中管理的各个应用包,可以分租户、项目存放,方便管理。
可以理解,获取到目标应用包后可以将该目标应用包存放在一个临时目录下,如果后续容器发生重启,可以从临时目录获取目标应用包,不需要再次从应用包管理服务器中获取目标应用包,节省了网络带宽。
可以理解,容器在重启时,可以首先从临时目标中获取目标应用包,当确定临时目录下不存在目标应用包的情况下,再从应用包管理服务器中下载目标应用包,若从应用包管理服务器中下载目标应用包失败,且周期性重复下载的次数大于或者等于第二次数阈值,仍下载失败,则向容器云平台发送指示下载目标应用包失败的消息,容器云平台接收到消息后,可以输出消息以提示用户检查应用包管理服务器是否存储有目标应用包。
示例性地,如图5所示,为目标应用包的上传和部署的流程示意图,容器云平台上传目标应用包到对应的目录,应用包管理服务器接收目标应用包并分租户-项目存储,应用容器基于下载指令下载目标应用包,应用容器将目标应用包存储到临时目录下,应用容器基于启动命令,启动目标应用包。
示例性地,以应用包管理服务器为FTP服务器,容器云集群为基于Kubernetes的容器云集群为例进行说明,如图6所示,为部署目标服务的流程示意图,业务人员提交最新代码,编译,生成目标应用包;开始部署目标服务,业务人员通过容器云平台上传目标应用包,并设置目标服务的相关配置(如选择目标基础镜像对应的目标标识,资源配置,环境变量,配置文件等);容器云平台上传目标应用包至FTP服务器,FTP服务器接收目标应用包,并分租户、项目存储;容器云平台向Kubernetes发送目标请求,Kubernetes基于目标请求,创建应用容器;应用容器基于目标基础镜像的下载命令从FTP服务器下载目标应用包,应用容器基于目标基础镜像的启动命令,启动目标应用包;即完成了在Kubernetes部署目标应用包对应的目标服务。
本申请实施例中,容器云平台发送的目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包;容器云集群通过应用容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包。将目标应用包存储在管理服务器中,可以使得在应用容器故障需要重新部署服务时,从应用包管理服务器中即可获取到目标应用包并部署,无需业务人员再在容器云平台上上传目标应用包。并且,在确定目标应用包有更新的情况下再上传目标应用包到应用包管理服务器,节省网络带宽的同时,可以降低应用包管理服务器的存储压力。
本申请一些实施例中,结合图1,如图7所示,上述步骤105之前,本申请实施例的服务部署方法还包括下述步骤107和步骤108。
107、容器云集群基于目标请求,创建初始化容器。
可以理解,初始化容器用于在应用容器之前进行一些预处理工作。
示例性地,下面以基于Kubernetes的容器云集群为例,对初始化容器与应用容器进行说明;Pod是Kubernetes中能够创建和部署的最小单元,Pod可以包含多个容器,应用运行在应用容器中,同时Pod也可以包括一个或多个先于应用容器启动的初始化容器。初始化容器与应用容器非常像,但初始化容器总是运行到完成,且每个初始化容器均是在上一个初始化容器成功启动后才启动,如果为一个Pod指定了多个初始化容器,这些初始化容器会按顺序逐个运行,每个初始化容器必须运行成功,下一个初始化容器才能够运行。当所有的初始化容器运行完成时,应用容器才会运行,但应用容器的运行顺序可以根据实际业务进行更改。如图8所示,以一个Pod中包括pause容器、初始化容器1、初始化容器2和应用容器1和应用容器2为例,其中,pause容器是Pod固有容器,负责维护Pod网络空间等,初始化容器1启动成功(成功运行)后,初始化容器2开始启动,依次类推,直到所有的初始化容器全部启动成功,应用容器1和应用容器2才开始启动。
108、容器云集群通过初始化容器基于目标请求获取目标应用包,并将目标应用包存储到目标区域。
其中,目标区域为初始化容器与应用容器共享的存储区域。
可以理解,如图9所示,Pod启动后,开始启动初始化容器,初始化容器可以向目标区域写数据或者读取数据,对目标区域具有读-写权限,初始化容器将从目标请求中获取的目标应用包存储到目标区域,由于初始化容器和应用容器共享存储区域,因此,应用容器可以从目标区域读取目标应用包,以启动目标应用包。
本申请实施例中,容器云集群通过初始化容器基于目标请求获取目标应用包,并将目标应用包存储到目标区域,目标区域为初始化容器与应用容器共享的存储区域。初始化容器用于获取目标应用包,应用容器用于启动目标应用包,每种类型的容器仅执行单一任务,如此,可以确保各个容器的运行过程不会因为混乱,导致执行任务出错,提升在容器云集群中部署目标任务的成功率。且应用容器需要重启时,无需重启初始化容器,因此,不需要再次进行目标应用包的获取,服务的部署不易出错,且后续维护也更加简单。
本申请一些实施例中,结合图7,如图10所示,容器云平台发送的目标请求包括目标应用包,上述步骤108,具体可以通过下述步骤108a实现。
108a、容器云集群通过初始化容器从目标请求中获取目标应用包,并将目标应用包存储到目标区域。
可以理解,容器云集群通过初始化容器从目标请求中获取目标应用包,具体地,通过初始化容器接收容器云平台发送的目标应用包,将目标应用包存储到目标区域,应用容器根据启动命令,从目标区域获取目标应用包,并通过目标应用包对应的运行环境启动目标应用包。
本申请实施例中,容器云平台发送的目标请求包括目标应用包,容器云集群通过初始化容器从目标请求中获取目标应用包,并将目标应用包存储到目标区域;如此,目标应用包的获取不依赖容器云(容器云平台和容器云集群)以外的设备,初始化容器从目标请求中即可获取目标应用包,降低了资源消耗。
本申请一些实施例中,容器云平台发送的目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包,结合图7,如图11所示,上述步骤108,具体可以通过下述步骤108b实现。
108b、容器云集群通过初始化容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,并将目标应用包存储到目标区域。
其中,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
可以理解,初始化容器从应用包管理服务器中下载了目标应用包后,可以将目标应用包存放在一个临时目录下,如果后续初始化容器发生重启,可以从临时目录获取目标应用包,不需要再次从应用包管理服务器中获取目标应用包,节省了网络带宽。
本申请实施例中,容器云平台发送的目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包,容器云集群通过初始化容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,并将目标应用包存储到目标区域。如此,可以使得在容器故障需要重新部署服务时,无需业务人员再在容器云平台上上传目标应用包,初始化容器从应用包管理服务器中即可获取到目标应用包,并通过应用容器启动目标应用包。并且,初始化容器和应用容器执行单一的任务,若容器故障,也更易定位。
需要说明的是,步骤108a和步骤108b中与步骤106a和步骤106b相似或者相关的功能的描述,可以参考上述步骤106a和步骤106b的具体描述,此处不再赘述。
需要说明的是,上述步骤108、步骤108a步骤108b中的初始化容器均是用于获取目标应用包,初始化容器执行完成任务后,即获取到目标应用包并存储到目标区域后,初始化容器即可退出,如此,可以减少资源消耗。
本申请实施例中,如图12所示,提供了一种服务部署装置,应用于容器云集群,该装置包括:接收模块1201,创建模块1202,启动模块1203;该接收模块1201,用于接收容器云平台基于接收到的目标操作发送的目标请求,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;该创建模块1202,用于基于目标请求,创建目标应用包对应的应用容器;该启动模块1203,用于通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
本申请一些实施例中,该服务部署装置还包括:获取模块;该获取模块,用于在通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包之前,通过应用容器基于目标请求,获取目标应用包。
本申请一些实施例中,目标请求包括目标应用包;该获取模块,具体用于通过应用容器从目标请求中获取目标应用包;或者,目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包;该获取模块,具体用于通过应用容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
本申请一些实施例中,该创建模块1202,还用于在通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包之前,基于目标请求,创建初始化容器;该获取模块,还用于通过初始化容器基于目标请求获取目标应用包,并将目标应用包存储到目标区域,目标区域为初始化容器与应用容器共享的存储区域。
本申请一些实施例中,目标请求包括目标应用包;该获取模块,具体用于通过初始化容器从目标请求中获取目标应用包;或者,目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包;该获取模块,具体用于通过初始化容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
本申请实施例提供的服务部署装置,可用于执行上述方法实施例的步骤,其实现原理和技术效果类似,此处不再赘述。
本申请实施例中,各模块可以实现上述方法实施例提供的服务部署方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例中,如图13所示,提供了一种服务部署装置,应用于容器云平台,该装置包括:接收模块1301和发送模块1302;该接收模块1301,用于接收目标操作,目标操作包括:上传目标应用包的操作,以及从预设的多个标识中选择目标标识的操作;每个标识用于指示容器云集群中部署的一个基础镜像,每个基础镜像用于指示一种类型的应用包对应的运行环境及启动命令,目标标识用于指示目标应用包对应的目标基础镜像;该发送模块1302,用于基于目标操作,向容器云集群发送目标请求,以使容器云集群基于目标请求,创建目标应用包对应的应用容器,以及通过应用容器基于目标基础镜像指示的运行环境和启动命令,启动目标应用包,以在容器云集群中部署目标应用包对应的应用服务。
本申请一些实施例中,目标请求还用于通过应用容器基于目标请求获取目标应用包。
本申请一些实施例中,目标请求包括目标应用包;目标请求具体用于通过应用容器从目标请求中获取目标应用包;或者,目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包;目标请求具体用于通过应用容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
本申请一些实施例中,目标请求还用于容器云集群基于目标请求,创建初始化容器,通过初始化容器基于目标请求获取目标应用包,并将目标应用包存储到目标区域,目标区域为初始化容器与应用容器共享的存储区域。
本申请一些实施例中,目标请求包括目标应用包;目标请求具体用于通过初始化容器从目标请求中获取目标应用包;或者,目标请求包括目标应用包对应的应用包标识,每个基础镜像还用于指示下载指令,下载指令用于指示从应用包管理服务器下载应用包;目标请求具体用于通过初始化容器基于目标基础镜像指示的目标下载指令和应用包标识,从应用包管理服务器下载目标应用包,应用包管理服务器中存储有多个应用包,每个应用包为从容器云平台获取的,多个应用包中包括目标应用包。
本申请实施例提供的服务部署装置,可用于执行上述方法实施例的步骤,其实现原理和技术效果类似,此处不再赘述。
本申请实施例中,各模块可以实现上述方法实施例提供的服务部署方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种电子设备,该电子设备可以包括:处理器,存储器以及存储在存储器上并可在处理器上运行的程序或指令,该程序或指令被处理器执行时可以实现上述方法实施例提供的服务部署方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供还提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述服务部署方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供还提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述服务部署方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,该计算机可读存储介质可以为只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本发明提供一种计算机程序产品,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述的服务部署方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好地解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
- 显示装置的测试方法、显示装置的贴合方法和显示装置
- 汽轮机叶片颤振监测装置及装置安装方法和装置监测方法
- 一种信号控制装置及方法、显示控制装置及方法、显示装置
- 服务部署方法、服务部署装置、设备及介质
- 服务部署方法和装置以及服务启动方法和装置