CN115878154A - 一种容器镜像版本的升级系统及方法 - Google Patents
一种容器镜像版本的升级系统及方法 Download PDFInfo
- Publication number
- CN115878154A CN115878154A CN202211547609.1A CN202211547609A CN115878154A CN 115878154 A CN115878154 A CN 115878154A CN 202211547609 A CN202211547609 A CN 202211547609A CN 115878154 A CN115878154 A CN 115878154A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- image version
- upgrading
- container
- latest
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种容器镜像版本的升级系统及方法,该系统包括:前端模块、存储模块、任务分发模块、镜像仓库模块、数据库模块和任务执行模块,通过前端模块展示应用的容器当前的镜像版本信息和最新的镜像版本信息,并接收用户输入的针对一个或多个容器的升级指令,由任务分发模块基于升级指令对应生成多个升级任务并保存至数据库模块的任务对列中,任务执行模块依次从任务队列中获取并执行升级任务。在本方案中,通过向用户展示各个应用的容器当前的镜像版本信息和最新的镜像版本信息,当用户选择多个容器进行批量升级时,对应生成多个升级任务,由任务执行模块依次获取升级任务,并执行升级任务,实现了批量升级容器镜像版本,提高升级效率的目的。
Description
技术领域
本发明涉及应用容器技术领域,尤其涉及一种容器镜像版本的升级系统及方法。
背景技术
由于容器技术具备简单部署、多环境支持、快速启动、服务编排和易于迁移等优点,因此云上的应用大都采用容器的形式部署,但是,容器只提供最基本的容器运行时环境,无法做到跨主机通讯,需要采用Kubernetes对容器集群管理。
在Kubernetes中,升级容器镜像版本的方法是通过修改yaml文件来实现的,该方法一次仅能升级一个容器的镜像版本,无法批量升级容器的镜像版本,升级效率低。
发明内容
有鉴于此,本发明实施例提供一种容器镜像版本的升级系统及方法,以实现批量升级容器的镜像版本的目的。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种容器镜像版本的升级系统,包括:
前端模块,用于从存储模块中获取并展示对应当前登录用户的各个应用的应用名称;针对每一个所述应用,从数据库模块中查询并展示所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令,并将所述升级指令发送给任务分发模块;
所述存储模块,用于存储各个应用的应用名称;存储各个应用与用户的对应关系;其中,每一个应用都有仅只有一个与之对应的用户,所述用户具有所述应用对应容器的升级权限;
所述任务分发模块,用于获取镜像仓库模块中存放的各个镜像版本的镜像版本信息,并发送给所述数据库模块保存;接收所述升级指令,根据所述升级指令对应生成一个或者多个升级任务并依次保存至所述数据库模块中的任务队列;每一所述升级任务用于指示升级一个对应的容器;
所述镜像仓库模块,用于存放各个镜像版本和各个镜像版本对应的镜像版本信息;
所述数据库模块,用于保存所述任务分发模块从所述镜像仓库模块获取的各个镜像版本的镜像版本信息;响应于前端模块的查询,返回所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收所述升级任务并依次保存至所述任务队列中;
任务执行模块,用于依次从所述任务队列中获取所述升级任务;基于所述升级任务,从所述镜像仓库模块中下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
优选的,所述任务执行模块具体用于:
依次从所述任务队列中获取所述升级任务;基于所述升级任务,调用k8s集群的api接口,将相应资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息,调用docker从所述镜像仓库模块中下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
优选的,所述前端模块,还用于:
接收用户输入的应用名称;从所述数据库模块中查询所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息;展示所述搜索模块接收到的应用名称,以及所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
优选的,所述数据库模块,还用于:
当所述任务分发模块将所述升级任务保存至所述任务队列时,生成指示所述升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息;所述记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
优选的,所述前端模块,还用于:
当接收到接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令时,若任意一个所述应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户所述容器的镜像版本已经是最新版本的文本信息。
本发明实施例第二方面公开了一种容器镜像版本的升级方法,包括:
获取并展示对应当前登录用户的各个应用的应用名称;
针对每一个所述应用,查询并展示所述应用的容器当前的镜像版本信息和最新的镜像版本信息;
接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令;
根据所述升级指令对应生成一个或者多个升级任务并依次保存至任务队列中;每一所述升级任务用于指示升级一个对应的容器;
依次从所述任务队列中获取所述升级任务;
从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
优选的,所述基于所述升级任务,从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器,包括:
基于所述升级任务,调用k8s集群的api接口,将相应资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息;
调用docker从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
优选的,还包括:
接收用户输入的应用名称;
查询所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息;
通过前端页面展示所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
优选的,还包括:
当将所述升级任务保存至所述任务队列时,生成指示所述升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息;
所述记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
优选的,还包括:
当接收到接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令时,若任意一个所述应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户所述容器的镜像版本已经是最新版本的文本信息。
基于上述本发明实施例提供的一种容器镜像版本的升级系统及方法,该系统包括:前端模块,用于从存储模块中获取并展示对应当前登录用户的各个应用的应用名称;针对每一个所述应用,从数据库模块中查询并展示所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令,并将所述升级指令发送给任务分发模块;所述存储模块,用于存储各个应用的应用名称;存储各个应用与用户的对应关系;其中,每一个应用都有仅只有一个与之对应的用户,所述用户具有所述应用对应容器的升级权限;所述任务分发模块,用于获取镜像仓库模块中存放的各个镜像版本的镜像版本信息,并发送给所述数据库模块保存;接收所述升级指令,根据所述升级指令对应生成一个或者多个升级任务并依次保存至所述数据库模块中的任务队列;每一所述升级任务用于指示升级一个对应的容器;所述镜像仓库模块,用于存放各个镜像版本和各个镜像版本对应的镜像版本信息;所述数据库模块,用于保存所述任务分发模块从所述镜像仓库模块获取的各个镜像版本的镜像版本信息;响应于前端模块的查询,返回所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收所述升级任务并依次保存至所述任务队列中;任务执行模块,用于依次从所述任务队列中获取所述升级任务;基于所述升级任务,从所述镜像仓库模块中下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。在本方案中,通过前端界面向当前登录用户展示各个应用的容器当前的镜像版本信息和最新的镜像版本信息,当用户选择多个容器进行批量升级时,对应生成多个升级任务并依次保存,由任务执行模块依次获取升级任务,并调用相关接口进行容器镜像版本的升级,实现在了Kubernetes中批量升级容器镜像版本,提高升级效率的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种容器镜像版本升级的流程示意图;
图2为本发明实施例公开的一种容器镜像版本的升级系统的架构图;
图3为本发明实施例公开的一种K8s集群的架构图;
图4为本发明实施例公开的一种容器镜像版本的升级方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,在Kubernetes中,现有的容器镜像版本升级方法一次仅能升级一个容器的镜像版本,无法批量升级容器的镜像版本,升级效率低。
因此,本发明实施例公开了一种容器镜像版本的升级系统及方法,在本方案中,通过前端界面向当前登录用户展示各个应用的容器当前的镜像版本信息和最新的镜像版本信息,当用户选择多个容器进行批量升级时,对应生成多个升级任务并依次保存,由任务执行模块依次获取升级任务,并调用相关接口进行容器镜像版本的升级,实现在了Kubernetes中批量升级容器镜像版本,提高升级效率的目的。
为了说明现有过程中存在的问题,如图1所示,为本发明实施例公开的一种容器镜像版本升级的流程示意图。
在K8s集群(Kubernetes,容器集群管理系统)中,通常使用kubectl edit命令与apiserver容器集群管理入口交互,从而修改Deployment资源对象的配置,具体的,将资源对象yaml文件中的spec.template.spec.containers[0].image由当前镜像版本信息修改为新的镜像版本信息,将新的镜像版本下载到本地,以新的镜像版本运行应用的容器,完成升级。
综上,用户只能逐个修改应用容器的镜像版本信息,无法批量选择需要升级的应用的容器,从而无法批量地升级容器的镜像版本。
如图2所示,为本发明实施例公开的一种容器镜像版本的升级系统的架构图,该系统包括:前端模块201、存储模块202、任务分发模块203、镜像仓库模块204、数据库模块205和任务执行模块206。
其中,前端模块201,用于从存储模块202中获取并展示对应当前登录用户的各个应用的应用名称;针对每一个应用,从数据库模块205中查询并展示应用的容器当前的镜像版本信息和最新的镜像版本信息;接收当前登录用户输入的针对一个或多个应用的容器的升级指令,并将升级指令发送给任务分发模块203。
需要说明的是,镜像版本信息至少包括:镜像名称、镜像id以及版本号;升级指令用于指示将一个或多个应用的容器由当前的镜像版本升级至最新的镜像版本。
具体的,当前登录用户为用户1,前端模块201从存储模块202中获取并展示对应用户1的应用名称,分别为应用1、应用2和应用3。
前端模块201根据应用1、应用2和应用3的容器当前运行的镜像版本,从数据库模块205中,分别查询得到对应应用1、应用2和应用3的容器当前的镜像版本信息,然后,根据各个镜像版本信息存入数据库模块的时间,获取应用1、应用2和应用3的容器最新的镜像版本信息,通过前端界面展示应用1、应用2和应用3的容器当前的镜像版本信息和最新的镜像版本信息。
用户1通过前端模块201所展示的前端页面左侧的选择框,批量选择需要升级的应用的容器,并点击升级按钮,生成升级指令。
在本发明实施例中,应用1、应用2和应用3分别运行于不同的容器当中,也可以运行于同一个容器当中,或两两运行于同一个容器当中。
在一实施例中,前端模块201,还用于:
接收用户输入的应用名称;从数据库模块205中查询应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息;展示用户输入的应用名称,以及应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
具体的,前端模块201在前端页面展示一个搜索框以及对应的搜索按钮,通过搜索框接收用户输入的应用名称,并接收到用户点击搜索按钮而产生的指令后,查询应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息,并在前端界面的主页面展示用户输入的应用名称,以及应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
在一实施例中,前端模块201,还用于:
当接收到接收当前登录用户输入的针对一个或多个应用的容器的升级指令时,若任意一个应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户容器的镜像版本已经是最新版本的文本信息,并返回由用户重新进行选择。
在一实施例中,前端模块201,还用于:
展示登录页面,获取用户在登录页面输入的用户名和密码,将用户名和密码与存储模块202中存储的用户名和密码进行比对,比对一致则成功登录系统,否则提示用户名或密码错误。
存储模块202,用于存储各个应用的应用名称;存储各个应用与用户的对应关系。
其中,每一个应用都有仅只有一个与之对应的用户,且该用户具有该应用的容器升级权限。
具体的,存储模块202中存储有用户1对应的应用1、应用2和应用3,以及,用户2对应的应用3和应用4,其中,用户1具有应用1、应用2和应用3对应容器的升级权限,用户2具有应用3和应用4对应容器的升级权限。
在一实施例中,存储模块202还用于:
存储用户的用户名和密码。
其中,用户名和密码用于与用户登录系统时输入的用户名和密码进行比对,比对一致后登录镜像版本的升级系统。
任务分发模块203,用于获取镜像仓库模块204中存放的各个镜像版本的镜像版本信息,并发送给数据库模块205保存;接收升级指令,根据升级指令对应生成一个或者多个升级任务并依次保存至数据库模块205中的任务队列。
其中,每一升级任务用于指示将一个对应的容器由当前的镜像版本升级至最新的镜像版本。
需要说明的是,任务分发模块203部署在K8s集群(Kubernetes,容器集群管理系统)当中。
为了解释清楚升级指令和升级任务之间的关系,本发明实施例提供以下举例。
例如,当任务分发模块203接收到升级应用1和应用2的升级指令时,对应生成升级任务1和升级任务2,其中,升级任务1指示升级应用1对应的容器,升级任务2指示升级应用2对应的容器。
镜像仓库模块204,用于存放各个镜像版本和各个镜像版本对应的镜像版本信息。
其中,各个镜像版本可以理解为开发人员利用编程语言编写并上传的软件包。
可以理解的是,在开发人员上传镜像版本至镜像仓库模块204时,镜像版本信息即镜像名称、镜像id以及版本号,也一同随镜像版本上传。
数据库模块205,用于保存任务分发模块203从镜像仓库模块204获取的各个镜像版本的镜像版本信息;响应于前端模块201的查询,返回应用的容器当前的镜像版本信息和最新的镜像版本信息;接收升级任务并依次保存至任务队列中。
其中,数据库模块205在接收到各个镜像版本信息后,根据各个镜像版本信息中记录的信息,判断得出各个镜像版本信息对应的镜像版本用于升级的应用容器,并将各个镜像版本信息与应用对应起来。
例如,数据库模块205接收到镜像版本信息1,镜像版本信息1指示其对应的镜像版本1用于升级应用1的容器,则在数据库模块205中,将应用1与镜像版本信息1对应起来。
需要说明的是,由上述可知,一个升级指令指示升级一个或多个应用的容器,因此,对于对应于同一升级指令的各个升级任务,可以按照接收升级任务的时间依次保存至任务队列中,或者,随机次序保存至任务队列中。
在具体实现中,数据库模块205响应于前端模块201的查询请求,根据应用的容器当前运行的镜像版本,返回当前运行的镜像版本的镜像版本信息,同时根据各个镜像版本信息存入的时间,返回该应用的容器最新的镜像版本信息。
在一实施例中,数据库模块205,还用于当接收到任务分发模块203发送的升级任务并保存至任务队列时,生成指示升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息。
其中,记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
可以理解的是,记录信息中不仅存有当前的镜像版本信息升级到最新的镜像版本信息的记录,还存有操作人、操作对象、操作内容和操作日期,方便用户查看历史的升级记录,也为后期运维人员在运维系统时提供可靠的信息,提高运维效率。
任务执行模块206,用于依次从任务队列中获取升级任务;基于升级任务,从镜像仓库模块204中下载升级任务对应的容器最新的镜像版本,并以最新的镜像版本运行容器。
需要说明的是,任务执行模块206部署在K8s集群(Kubernetes,容器集群管理系统)当中。
K8s集群的架构以及任务执行模块206执行升级任务的具体过程,请参见图3所示实施例。
基于上述本发明实施例公开的一种容器镜像版本的升级系统,该系统包括:前端模块、存储模块、任务分发模块、镜像仓库模块、数据库模块和任务执行模块,其中,前端模块从存储模块中获取并展示对应当前登录用户的各个应用的应用名称;针对每一个应用,从数据库模块中查询并展示应用的容器当前的镜像版本信息和最新的镜像版本信息;接收当前登录用户输入的针对一个或多个应用的容器的升级指令,并将升级指令发送给任务分发模块;任务分发模块根据升级指令对应生成一个或者多个升级任务并依次保存至数据库模块中的任务队列;任务执行模块,依次从任务队列中获取升级任务;基于升级任务,从镜像仓库模块中下载升级任务对应的容器最新的镜像版本,并以最新的镜像版本运行所述容器。在本方案中,通过前端界面向当前登录用户展示各个应用的容器当前的镜像版本信息和最新的镜像版本信息,当用户选择多个容器进行批量升级时,对应生成多个升级任务并依次保存,由任务执行模块依次获取升级任务,并调用相关接口进行容器镜像版本的升级,实现在了Kubernetes中批量升级容器镜像版本,提高升级效率的目的。
上述本发明实施例提及的K8s集群的具体架构,如图3所示,为本发明实施例公开的一种K8s集群的架构图,该架构包括:任务分发模块、任务执行模块、apiserver组件、api接口、资源对象、kubelet组件和应用容器引擎。
本发明实施例中的任务分发模块和任务执行模块,与图2所示的本发明实施例中的任务分发模块203和任务执行模块206相对应。
在具体实现中,任务执行模块从任务队列中依次获取升级任务,与k8s集群的apiserver组件进行交互,从而调用k8s集群的api接口,将对应的资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息。
其中,将对应的资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息,具体包括:
将对应的资源对象的yaml文件中当前的镜像版本的版本号,修改为最新的镜像版本的版本号。
利用kubelet组件(容器集群工作节点代理组件),调用开源的应用容器引擎docker,将最新的镜像版本信息对应的镜像版本从镜像仓库下载到本地,并以最新的镜像版本运行容器。
基于上述本发明实施例公开的一种容器镜像版本的升级系统,从任务队列中依次获取升级任务,调用相关接口和组件,将最新的镜像版本下载到本地,并以最新的镜像版本运行容器,从而实现在K8s集群中,批量升级应用容器的镜像版本的目的。
基于上述本发明实施例公开的一种容器镜像版本的升级系统,如图4所示,为本发明实施例公开的一种容器镜像版本的升级方法的流程图,该方法主要包括以下步骤:
步骤S401:获取并展示对应当前登录用户的各个应用的应用名称。
在步骤S401中,每一个应用都有仅只有一个与之对应的用户,并且,针对任意一个应用,仅有与之对应的用户具有升级该应用的容器镜像版本的权限。
在具体实现步骤S401的过程中,基于预先存储的用户与各个应用对应关系,查询对应当前登录用户的各个应用的应用名称,并通过前端页面进行展示。
在一实施例中,获取用户输入的用户名和密码,将用户输入的用户名和密码与预先存储的用户名和密码进行比对,比对一致则登录成功,开始执行步骤S401,比对失败则生成提示信息,提示用户输入的用户名或密码有误。
步骤S402:针对每一个应用,查询并展示应用的容器当前的镜像版本信息和最新的镜像版本信息。
在步骤S402中,镜像版本信息至少包括:镜像名称、镜像id以及版本号。
在具体实现步骤S401的过程中,从镜像仓库获取的各个应用的容器的镜像版本信息,判断得出各个镜像版本信息对应的镜像版本用于升级的应用容器,并将各个镜像版本信息与应用对应起来,并利用预先建立的数据库,保存各个镜像版本信息,以及各个镜像版本信息和应用的对应关系,利用应用的名称,在数据库中查询得到应用的容器当前的镜像版本信息和最新的镜像版本信息。
其中,镜像仓库用于存储开发人员上传的各个镜像版本和各个镜像版本信息。
步骤S403:接收当前登录用户输入的针对一个或多个应用的容器的升级指令。
在步骤S403中,升级指令用于指示将一个或多个应用的容器的镜像版本升级为最新的镜像版本。
步骤S404:根据升级指令对应生成一个或者多个升级任务并依次保存至任务队列中。
在步骤S404中,每一升级任务用于指示将一个对应的容器升级至最新的镜像版本。
例如,升级指令用于指示将应用1、应用2和应用3对应的容器的镜像版本升级至最新的镜像版本,则对应生成升级任务1、升级任务2和升级任务3,分别用于指示将应用1、应用2和应用3对应的容器的镜像版本升级至最新的镜像版本。
在具体实现步骤S404的过程中,根据升级指令对应生成一个或者多个升级任务,根据升级任务生成的先后顺序,依次保存至任务队列中。
步骤S404:依次从任务队列中获取升级任务。
在具体实现步骤S404的过程中,实时监测任务队列,当任务队列中存在升级任务时,按照升级任务存入队列的顺序,从任务队列中依次获取升级任务。
步骤S405:从预先存储各个镜像版本的镜像仓库中,下载升级任务对应的容器最新的镜像版本,并以最新的镜像版本运行容器。
在步骤S405中,镜像仓库中预先存储有开发人员上传的各个镜像版本和各个镜像版本的镜像版本信息。
其中,镜像版本为开发人员利用编程语言编写并打包而成的软件包。
在具体实现步骤S405的过程中,根据升级任务指示的需要升级的应用容器,与k8s集群的apiserver组件进行交互,调用k8s的api接口,将容器对应的资源对象deployment的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息,由kubelet容器集群工作节点代理组件,调用开源的应用容器引擎docker,将该应用的容器最新的镜像版本从镜像仓库下载到本地,并以所述最新的镜像版本运行容器。
在一实施例中,当接收到用户输入的应用名称时,查询应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
通过前端页面展示应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
在一实施例中,当将升级任务保存至任务队列时,生成指示升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息。
记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
在一实施例中,当接收到接收当前登录用户输入的针对一个或多个应用的容器的升级指令时,若任意一个应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户容器的镜像版本已经是最新版本的文本信息。
基于上述本发明实施例公开的一种容器镜像版本的升级方法,针对对应当前登录用户的每一个应用,查询并展示应用的容器当前的镜像版本信息和最新的镜像版本信息,接收当前登录用户输入的针对一个或多个应用的容器的升级指令,根据升级指令对应生成一个或者多个升级任务并依次保存至任务队列中,依次从任务队列中获取升级任务,从预先存储各个镜像版本的镜像仓库中,下载升级任务对应的容器最新的镜像版本,并以最新的镜像版本运行容器。在本方案中,通过向当前登录用户展示各个应用的容器当前的镜像版本信息和最新的镜像版本信息,当用户选择多个容器进行批量升级时,对应生成多个升级任务并依次保存,由任务执行模块依次获取升级任务,并调用相关接口进行容器镜像版本的升级,实现在了Kubernetes中批量升级容器镜像版本,提高升级效率的目的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种容器镜像版本的升级系统,其特征在于,包括:
前端模块,用于从存储模块中获取并展示对应当前登录用户的各个应用的应用名称;针对每一个所述应用,从数据库模块中查询并展示所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令,并将所述升级指令发送给任务分发模块;
所述存储模块,用于存储各个应用的应用名称;存储各个应用与用户的对应关系;其中,每一个应用都有仅只有一个与之对应的用户,所述用户具有所述应用对应容器的升级权限;
所述任务分发模块,用于获取镜像仓库模块中存放的各个镜像版本的镜像版本信息,并发送给所述数据库模块保存;接收所述升级指令,根据所述升级指令对应生成一个或者多个升级任务并依次保存至所述数据库模块中的任务队列;每一所述升级任务用于指示升级一个对应的容器;
所述镜像仓库模块,用于存放各个镜像版本和各个镜像版本对应的镜像版本信息;
所述数据库模块,用于保存所述任务分发模块从所述镜像仓库模块获取的各个镜像版本的镜像版本信息;响应于前端模块的查询,返回所述应用的容器当前的镜像版本信息和最新的镜像版本信息;接收所述升级任务并依次保存至所述任务队列中;
任务执行模块,用于依次从所述任务队列中获取所述升级任务;基于所述升级任务,从所述镜像仓库模块中下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
2.根据权利要求1所述的系统,其特征在于,所述任务执行模块具体用于:
依次从所述任务队列中获取所述升级任务;基于所述升级任务,调用k8s集群的api接口,将相应资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息,调用docker从所述镜像仓库模块中下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
3.根据权利要求1所述的系统,其特征在于,所述前端模块,还用于:
接收用户输入的应用名称;从所述数据库模块中查询所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息;展示所述搜索模块接收到的应用名称,以及所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
4.根据权利要求1所述的系统,其特征在于,所述数据库模块,还用于:
当所述任务分发模块将所述升级任务保存至所述任务队列时,生成指示所述升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息;所述记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
5.根据权利要求1所述的系统,其特征在于,所述前端模块,还用于:
当接收到接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令时,若任意一个所述应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户所述容器的镜像版本已经是最新版本的文本信息。
6.一种容器镜像版本的升级方法,其特征在于,包括:
获取并展示对应当前登录用户的各个应用的应用名称;
针对每一个所述应用,查询并展示所述应用的容器当前的镜像版本信息和最新的镜像版本信息;
接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令;
根据所述升级指令对应生成一个或者多个升级任务并依次保存至任务队列中;每一所述升级任务用于指示升级一个对应的容器;
依次从所述任务队列中获取所述升级任务;
从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
7.根据权利要求6所述的方法,其特征在于,所述基于所述升级任务,从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器,包括:
基于所述升级任务,调用k8s集群的api接口,将相应资源对象的yaml文件中当前的镜像版本信息修改为最新的镜像版本信息;
调用docker从预先存储各个镜像版本的镜像仓库中,下载所述升级任务对应的容器最新的镜像版本,并以所述最新的镜像版本运行所述容器。
8.根据权利要求6所述的方法,其特征在于,还包括:
接收用户输入的应用名称;
查询所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息;
通过前端页面展示所述应用名称对应的应用的容器当前的镜像版本信息和最新的镜像版本信息。
9.根据权利要求6所述的方法,其特征在于,还包括:
当将所述升级任务保存至所述任务队列时,生成指示所述升级任务对应的容器由当前的镜像版本升级至最新的镜像版本的记录信息;
所述记录信息中至少包括当前的镜像版本信息、最新的镜像版本信息、操作人、操作对象、操作内容和操作日期。
10.根据权利要求6所述的方法,其特征在于,还包括:
当接收到接收当前登录用户输入的针对一个或多个所述应用的容器的升级指令时,若任意一个所述应用的容器当前的镜像版本信息和最新的镜像版本信息一致,则生成用于提示用户所述容器的镜像版本已经是最新版本的文本信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547609.1A CN115878154A (zh) | 2022-12-05 | 2022-12-05 | 一种容器镜像版本的升级系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547609.1A CN115878154A (zh) | 2022-12-05 | 2022-12-05 | 一种容器镜像版本的升级系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878154A true CN115878154A (zh) | 2023-03-31 |
Family
ID=85765787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211547609.1A Pending CN115878154A (zh) | 2022-12-05 | 2022-12-05 | 一种容器镜像版本的升级系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878154A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170823A (zh) * | 2023-11-03 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 在批量容器中执行操作的方法、装置及电子设备 |
-
2022
- 2022-12-05 CN CN202211547609.1A patent/CN115878154A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170823A (zh) * | 2023-11-03 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 在批量容器中执行操作的方法、装置及电子设备 |
CN117170823B (zh) * | 2023-11-03 | 2024-02-27 | 腾讯科技(深圳)有限公司 | 在批量容器中执行操作的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10802949B1 (en) | Systems and methods for infrastructure validation | |
US6871345B1 (en) | Self managing software agents with introspection | |
US9996333B2 (en) | Apparatus and method for automating the installation and configuration of infrastructure | |
US7499933B1 (en) | System and method for managing enterprise application configuration | |
US7043537B1 (en) | System and method for remote device management | |
CN112799716B (zh) | 一种代码管理方法及系统 | |
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US8726270B2 (en) | Distributed installation configuration over multiple machines | |
US8443347B2 (en) | Translating declarative models | |
US7171660B2 (en) | Intelligent patch checker | |
US20040177352A1 (en) | Universal deployment tool | |
GB2333865A (en) | Synchronised updating of interoperating software | |
CN104572114A (zh) | 一种绑定装置、应用更新装置及方法以及应用 | |
JP2016521897A (ja) | アプリケーションアップグレード方法および装置 | |
CN103761612B (zh) | 项目发布方法及系统 | |
CN112104501A (zh) | 一种农机深松物联网终端设备的软件远程升级的方法 | |
CN110231956B (zh) | 应用程序版本构建的方法、系统及装置 | |
CN113835726B (zh) | 一种升级包的确定方法及服务端 | |
CN115878154A (zh) | 一种容器镜像版本的升级系统及方法 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN114721784B (zh) | 应用运行方法、装置、电子设备及可读介质 | |
CN114047939A (zh) | 一种数据处理方法及中间件 | |
CN110795160A (zh) | Java应用的控制方法、装置、计算机设备及可读存储介质 | |
US20100153942A1 (en) | Method and a system for delivering latest hotfixes with a support package stack | |
CN118707931A (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 |