容器保存方法、装置、设备及存储介质与流程
未命名
07-23
阅读:51
评论:0

1.本技术涉及计算机技术领域,尤其涉及一种容器保存方法、装置、设备及存储介质。
背景技术:
2.用户经常需要创建新的容器,但是安装一个用于训练模型或者开发的容器,往往需要安装很多包,有些安装步骤比较繁琐,还经常会出现安装失败等问题,因此将一套安装好的容器保存下来重复使用,对于开发或者算法工程师来说,都可以减少一些繁杂的操作步骤。
技术实现要素:
3.本技术提供了一种容器保存方法、装置、设备及存储介质,用以解决容器安装复杂的问题。
4.第一方面,本技术实施例提供了一种容器保存方法,包括:
5.获取待保存的目标容器在服务层的第一标识;
6.根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,其中,所述目标节点在所述容器集群管理平台内部;
7.根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像;
8.将所述目标镜像保存至镜像仓库。
9.可选地,所述根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识之前,所述方法还包括:
10.将所述第一标识作为标签,绑定在所述目标容器所在的第一pod;
11.所述根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,包括:
12.根据所述第一标识,通过标签选择器查找到所述第一pod;
13.根据所述第一pod,获取所述第二标识和所述节点标识。
14.可选地,所述根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像,包括:
15.根据所述节点标识,获取所述目标节点中的第二pod的标识,和所述第二pod中的容器标识;
16.根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像。
17.可选地,所述根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像,包括:
18.根据所述第二pod的标识和所述容器标识,在所述容器标识对应的容器中执行操作命令,其中,所述操作命令用于根据所述第二标识将所述目标容器创建为所述目标镜像。
19.可选地,所述根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像,包括:
20.创建任务,并使用所述任务,根据所述第二标识和所述节点标识,将所述目标容器创建为所述目标镜像。
21.可选地,所述根据所述第一标识,通过标签选择器查找到所述第一pod之前,所述方法还包括:
22.获取所述目标容器所在的命名空间的标识;
23.所述根据所述第一标识,通过标签选择器查找到所述第一pod,包括:
24.根据所述第一标识,在所述命名空间中通过标签选择器查找到所述第一pod。
25.可选地,所述获取所述目标容器所在的命名空间的标识,包括:
26.根据所述第一标识和所述命名空间的标识之间的映射关系,获取所述命名空间的标识。
27.第二方面,本技术实施例提供了一种容器保存装置,包括:
28.第一获取模块,用于获取待保存的目标容器在服务层的第一标识;
29.第二获取模块,用于根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,其中,所述目标节点在所述容器集群管理平台内部;
30.处理模块,用于根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像;
31.保存模块,用于将所述目标镜像保存至镜像仓库。
32.可选地,所述容器保存装置还包括绑定模块;
33.所述绑定模块,用于将所述第一标识作为标签,绑定在所述目标容器所在的第一pod;
34.所述第二获取模块包括查找子模块和第一获取子模块;
35.所述查找子模块,用于根据所述第一标识,通过标签选择器查找到所述第一pod;
36.所述第一获取子模块,用于根据所述第一pod,获取所述第二标识和所述节点标识。
37.可选地,所述处理模块包括第二获取子模块和创建子模块;
38.所述第二获取子模块,用于根据所述节点标识,获取所述目标节点中的第二pod的标识,和所述第二pod中的容器标识;
39.所述创建子模块,用于根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像。
40.可选地,所述创建子模块,具体用于根据所述第二pod的标识和所述容器标识,在所述容器标识对应的容器中执行操作命令,其中,所述操作命令用于根据所述第二标识将所述目标容器创建为所述目标镜像。
41.可选地,所述处理模块,具体用于创建任务,并使用所述任务,根据所述第二标识和所述节点标识,将所述目标容器创建为所述目标镜像。
42.可选地,所述容器保存装置还包括第三获取模块;
43.所述第三获取模块,用于获取所述目标容器所在的命名空间的标识;
44.所述查找子模块,具体用于根据所述第一标识,在所述命名空间中通过标签选择器查找到所述第一pod。
45.可选地,所述第三获取模块,具体用于根据所述第一标识和所述命名空间的标识之间的映射关系,获取所述命名空间的标识。
46.第三方面,本技术实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
47.所述存储器,用于存储计算机程序;
48.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的容器保存方法。
49.第四方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的容器保存方法。
50.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,获取待保存的目标容器在服务层的第一标识,根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,其中,目标节点在容器集群管理平台内部,根据第二标识和节点标识,将目标容器创建为目标镜像,将目标镜像保存至镜像仓库。相对于现有技术中,安装容器往往需要安装很多包,有些安装步骤比较繁琐的情况,本技术通过待保存的目标容器在服务层的第一标识,获取到目标容器在容器集群管理平台的第二标识和节点标识,进而实现将目标容器创建为目标镜像,保存至镜像仓库,将目标容器保存下来,能够重复使用,减少复杂的安装步骤,解决了容器安装复杂的问题。
附图说明
51.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
53.图1为本技术实施例中容器保存的方法流程示意图;
54.图2为本技术一个具体实施例中根据第二标识和节点标识,将目标容器创建为目标镜像的方法流程示意图;
55.图3为本技术一个具体实施例中k8s集群的架构示意图;
56.图4为本技术一个具体实施例中容器保存的方法流程示意图;
57.图5为本技术实施例中容器保存装置的结构示意图;
58.图6为本技术实施例中电子设备的结构示意图。
具体实施方式
59.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人
员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
60.本技术实施例中,提供了一种容器保存方法,该方法可以应用于服务器,当然,也可以应用于其他电子设备,例如终端(手机、平板电脑等)。本技术实施例中,以将该方法应用于服务器为例进行说明。
61.本技术实施例中,如图1所示,容器保存的方法流程主要包括:
62.步骤101,获取待保存的目标容器在服务层的第一标识。
63.容器,是轻量化的虚拟化技术。容器包括独立运行的一个或者多个应用程序,以及应用程序运行所需要的运行环境。容器隔离能够带来安全性,一台宿主机上可以运行多个容器,但这些容器内的进程是相互隔离的,且无法相互感知,其中一个容器的升级或者出现故障,不会影响其他容器。
64.第一标识是指目标容器的uuid(universally unique identifier,通用唯一识别码)。目标容器的uuid能够在服务层中获取到,并在服务层中唯一标识目标容器。
65.步骤102,根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,其中,目标节点在容器集群管理平台内部。
66.容器集群管理平台可以是k8s(全称kubernetes,首字母为k,尾字母为s,首字母与尾字母之间有8个字符,简称k8s),也可以是其他容器集群管理平台,例如,mesos、swarm等。本技术实施例中以容器集群管理平台为k8s为例进行说明,但本技术并不对容器集群管理平台的具体类型作出限制。
67.k8s集群由master节点和node(worker)节点组成。master节点指的是集群控制节点,管理和控制整个集群,基本上k8s的控制命令都发给它,它负责具体的执行过程。除了master以外的节点被称为node或者worker节点,可以在master中使用命令查看集群中的node节点。每个node都会被master分配一些工作负载,工作负载是指容器,当某个node宕机时,该节点上的工作负载就会被master自动转移到其它节点上。
68.第二标识是指containerid,目标容器的containerid能够在容器集群管理平台中获取到,不能在服务层中获取到,并在容器集群管理平台中唯一标识目标容器。
69.目标节点在容器集群管理平台内部,目标容器在目标节点内部。
70.节点标识是指nodename。目标节点的nodename,在容器集群管理平台中唯一标识目标节点。
71.一个具体实施例中,根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识之前,容器保存方法还包括:将第一标识作为标签,绑定在目标容器所在的第一pod。根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,包括:根据第一标识,通过标签选择器查找到第一pod;根据第一pod,获取第二标识和节点标识。
72.其中,目标节点在容器集群管理平台内部,第一pod在目标节点内部,目标容器在第一pod内部。
73.pod是k8s创建或部署的最小的基本单位,一个pod代表k8s集群上正在运行的一个进程,pod是k8s中单个应用的实例,是由单个容器或多个容器共享组成的资源。一个pod封装一个容器或多个容器。
74.第一标识是指目标容器的uuid,将目标容器的uuid作为标签,绑定在目标容器所
在的第一pod上之后,可以根据目标容器的uuid通过标签选择器(labelselector)查找到第一pod。
75.由于第一pod中只有一个containerid,第一pod在目标节点内部,所以根据第一pod,能够唯一确定目标容器的containerid和目标节点的nodename。
76.一个具体实施例中,根据第一标识,通过标签选择器查找到第一pod之前,容器保存方法还包括:获取目标容器所在的命名空间的标识。根据第一标识,通过标签选择器查找到第一pod,包括:根据第一标识,在命名空间中通过标签选择器查找到第一pod。
77.命名空间(namespace),实现对不同全局资源的隔离,各个命名空间中的资源是相互隔离的。通过命名空间实现容器的虚拟化隔离。
78.命名空间的标识,可以是租户id,也可以是其他形式的标识,能够唯一标识命名空间即可。
79.一个具体实施例中,获取目标容器所在的命名空间的标识,包括:根据第一标识和命名空间的标识之间的映射关系,获取命名空间的标识。
80.第一标识是指目标容器的uuid,命名空间的标识可以是租户id,也可以是其他形式的标识,本技术实施例中以命名空间的标识为租户id进行解释说明,但并不对命名空间的标识的具体形式作出限制。
81.服务层可以将目标容器的uuid和租户id之间的映射关系存储在mysql(数据库)中。能够根据目标容器的uuid,在mysql中查找到租户id。
82.步骤103,根据第二标识和节点标识,将目标容器创建为目标镜像。
83.一个具体实施例中,如图2所示,根据第二标识和节点标识,将目标容器创建为目标镜像,包括:
84.步骤201,根据节点标识,获取目标节点中的第二pod的标识,和第二pod中的容器标识。
85.节点标识是指目标节点的nodename。目标节点在容器集群管理平台内部,第一pod和第二pod在目标节点内部,目标容器在第一pod内部。第一pod和第二pod是目标节点中两个不同的pod。第二pod是在目标节点中新创建的pod。
86.第二pod可以是daemonset创建的,也可以是通过其他方式创建的,例如,deployment,deployment是用户来制定要创建多少个pod,daemonset用来确保每个node都运行一个pod。本技术实施例中以第二pod是daemonset创建的为例进行解释说明,但并不对第二pod的创建方式作出限制。
87.首先需要在k8s集群中部署daemonset,命名空间可以任意,但是需要保证该daemonset的名称在该命名空间下是唯一的。daemonset可以保证在指定节点上运行一个容器副本,该容器副本主要是挂载上宿主机的docker命令,启动docker命令只要确保可以在后台一直运行不退出即可,比如一直sleep(休眠)。通过daemonset创建第二pod可以在k8s集群中随时有新节点加入或删除时,不需要关注节点的变化,就可确保每个节点都会有对应的第二pod可以执行docker命令。
88.docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
89.第二pod的标识,是指podname,用于在容器集群管理平台中唯一标识第二pod。第二pod中的容器标识,是指第二pod中的容器的标识conname,用于在容器集群管理平台中唯一标识第二pod中的容器。
90.步骤202,根据第二pod的标识、容器标识和第二标识,将目标容器创建为目标镜像。
91.镜像是多个只读层的集合,容器是多个只读层加最上面一个可读写层。镜像为一个能够在docker中运行的一组静态程序文件,镜像不包含任何动态数据,镜像中的内容在构建之后也不会被改变,即镜像在创建之后不能直接进行更改以及编辑。容器是镜像的一个运行实例。镜像仓库是用于保存镜像的。
92.第二pod的标识,是指podname。容器标识,是指第二pod中的容器的标识conname。第二标识是指目标容器的containerid。
93.一个具体实施例中,根据第二pod的标识、容器标识和第二标识,将目标容器创建为目标镜像,包括:根据第二pod的标识和容器标识,在容器标识对应的容器中执行操作命令,其中,操作命令用于根据第二标识将目标容器创建为目标镜像。
94.其中,操作命令是指docker命令中的docker commit命令,操作命令docker commit{containerid}{imageurl},用于根据第二标识containerid将目标容器创建为目标镜像imageurl。
95.根据第二pod的标识和容器标识,在容器标识对应的容器中执行操作命令,是指kubectl exec podname-c conname-n namespace
‑‑
bash-c'docker commit containerid imageurl',kubectl exec命令,用于在第二pod的容器中执行操作命令,该操作命令是docker commit containerid imageurl,根据第二标识containerid将目标容器创建为目标镜像imageurl。其中,namespace是指第二pod的容器所在的命名空间。
96.由于目标节点在容器集群管理平台内部,第一pod和第二pod在目标节点内部,目标容器在第一pod内部,目标容器和第二pod运行在同一个节点上,因此可以在第二pod中执行操作命令,用于根据第二标识containerid将目标容器创建为目标镜像imageurl。
97.第二pod是在目标节点中新创建的pod,在第二pod中执行操作命令,能够避免在目标容器所在的第一pod中执行操作命令,造成风险,影响目标容器的安全。
98.使用daemonset创建第二pod,可以在k8s集群中随时有新节点加入或删除时,不需要关注节点的变化,就可确保每个节点都会有对应的第二pod可以执行操作命令。
99.一个具体实施例中,根据第二标识和节点标识,将目标容器创建为目标镜像,包括:创建任务,并使用任务,根据第二标识和节点标识,将目标容器创建为目标镜像。
100.其中,任务是指job,job适合处理一次性的任务,任务处理完成后释放资源,因此通过创建一个job来执行根据第二标识和节点标识,将目标容器创建为目标镜像的命令,可以使得在创建镜像时不影响其他功能的使用。
101.步骤104,将目标镜像保存至镜像仓库。
102.一个具体实施例中,如图3所示,为k8s集群的架构示意图。
103.k8s集群中有多个node节点,通过daemonset在k8s集群的每个节点上创建第二pod,目标节点在容器集群管理平台内部,目标容器和第二pod在目标节点内部。通过job,在第二pod的容器中执行操作命令,将目标容器创建为目标镜像。
104.一个具体实施例中,如图4所示,容器保存的方法流程主要包括:
105.步骤401,获取待保存的目标容器在服务层的第一标识uuid。
106.步骤402,将第一标识uuid作为标签,绑定在目标容器所在的第一pod。
107.步骤403,根据第一标识uuid,通过标签选择器labelselector查找到第一pod。
108.步骤404,根据第一pod,获取目标容器在k8s的第二标识containerid和目标容器所在的目标节点的节点标识nodename。
109.步骤405,根据节点标识nodename,获取目标节点中daemonset创建的第二pod的标识podname,和第二pod中的容器标识conname。
110.步骤406,创建job,并使用job,根据第二pod的标识podname和容器标识conname,在容器标识conname对应的容器中执行操作命令,其中,操作命令用于根据第二标识containerid将目标容器创建为目标镜像。
111.步骤407,将目标镜像保存至镜像仓库。
112.综上,本技术实施例提供的该方法,获取待保存的目标容器在服务层的第一标识,根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,其中,目标节点在容器集群管理平台内部,根据第二标识和节点标识,将目标容器创建为目标镜像,将目标镜像保存至镜像仓库。相对于现有技术中,安装容器往往需要安装很多包,有些安装步骤比较繁琐的情况,本技术通过待保存的目标容器在服务层的第一标识,获取到目标容器在容器集群管理平台的第二标识和节点标识,进而实现将目标容器创建为目标镜像,保存至镜像仓库,将目标容器保存下来,能够重复使用,减少复杂的安装步骤,解决了容器安装复杂的问题。
113.基于同一构思,本技术实施例中提供了一种容器保存装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置主要包括:
114.第一获取模块501,用于获取待保存的目标容器在服务层的第一标识;
115.第二获取模块502,用于根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,其中,所述目标节点在所述容器集群管理平台内部;
116.处理模块503,用于根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像;
117.保存模块504,用于将所述目标镜像保存至镜像仓库。
118.可选地,所述容器保存装置还包括绑定模块;
119.所述绑定模块,用于将所述第一标识作为标签,绑定在所述目标容器所在的第一pod;
120.所述第二获取模块包括查找子模块和第一获取子模块;
121.所述查找子模块,用于根据所述第一标识,通过标签选择器查找到所述第一pod;
122.所述第一获取子模块,用于根据所述第一pod,获取所述第二标识和所述节点标识。
123.可选地,所述处理模块包括第二获取子模块和创建子模块;
124.所述第二获取子模块,用于根据所述节点标识,获取所述目标节点中的第二pod的标识,和所述第二pod中的容器标识;
125.所述创建子模块,用于根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像。
126.可选地,所述创建子模块,具体用于根据所述第二pod的标识和所述容器标识,在所述容器标识对应的容器中执行操作命令,其中,所述操作命令用于根据所述第二标识将所述目标容器创建为所述目标镜像。
127.可选地,所述处理模块,具体用于创建任务,并使用所述任务,根据所述第二标识和所述节点标识,将所述目标容器创建为所述目标镜像。
128.可选地,所述容器保存装置还包括第三获取模块;
129.所述第三获取模块,用于获取所述目标容器所在的命名空间的标识;
130.所述查找子模块,具体用于根据所述第一标识,在所述命名空间中通过标签选择器查找到所述第一pod。
131.可选地,所述第三获取模块,具体用于根据所述第一标识和所述命名空间的标识之间的映射关系,获取所述命名空间的标识。
132.基于同一构思,本技术实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、存储器602和通信总线603,其中,处理器601和存储器602通过通信总线603完成相互间的通信。其中,存储器602中存储有可被处理器601执行的程序,处理器601执行存储器602中存储的程序,实现如下步骤:
133.获取待保存的目标容器在服务层的第一标识;根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,其中,目标节点在容器集群管理平台内部;根据第二标识和节点标识,将目标容器创建为目标镜像;将目标镜像保存至镜像仓库。
134.上述电子设备中提到的通信总线603可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
135.存储器602可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
136.上述的处理器601可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
137.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的容器保存方法。
138.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产
品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
139.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
140.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种容器保存方法,其特征在于,包括:获取待保存的目标容器在服务层的第一标识;根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,其中,所述目标节点在所述容器集群管理平台内部;根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像;将所述目标镜像保存至镜像仓库。2.根据权利要求1所述的容器保存方法,其特征在于,所述根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识之前,所述方法还包括:将所述第一标识作为标签,绑定在所述目标容器所在的第一pod;所述根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,包括:根据所述第一标识,通过标签选择器查找到所述第一pod;根据所述第一pod,获取所述第二标识和所述节点标识。3.根据权利要求1所述的容器保存方法,其特征在于,所述根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像,包括:根据所述节点标识,获取所述目标节点中的第二pod的标识,和所述第二pod中的容器标识;根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像。4.根据权利要求3所述的容器保存方法,其特征在于,所述根据所述第二pod的标识、所述容器标识和所述第二标识,将所述目标容器创建为所述目标镜像,包括:根据所述第二pod的标识和所述容器标识,在所述容器标识对应的容器中执行操作命令,其中,所述操作命令用于根据所述第二标识将所述目标容器创建为所述目标镜像。5.根据权利要求1所述的容器保存方法,其特征在于,所述根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像,包括:创建任务,并使用所述任务,根据所述第二标识和所述节点标识,将所述目标容器创建为所述目标镜像。6.根据权利要求2所述的容器保存方法,其特征在于,所述根据所述第一标识,通过标签选择器查找到所述第一pod之前,所述方法还包括:获取所述目标容器所在的命名空间的标识;所述根据所述第一标识,通过标签选择器查找到所述第一pod,包括:根据所述第一标识,在所述命名空间中通过标签选择器查找到所述第一pod。7.根据权利要求6所述的容器保存方法,其特征在于,所述获取所述目标容器所在的命名空间的标识,包括:根据所述第一标识和所述命名空间的标识之间的映射关系,获取所述命名空间的标识。8.一种容器保存装置,其特征在于,包括:第一获取模块,用于获取待保存的目标容器在服务层的第一标识;
第二获取模块,用于根据所述第一标识,获取所述目标容器在容器集群管理平台的第二标识,和所述目标容器所在的目标节点的节点标识,其中,所述目标节点在所述容器集群管理平台内部;处理模块,用于根据所述第二标识和所述节点标识,将所述目标容器创建为目标镜像;保存模块,用于将所述目标镜像保存至镜像仓库。9.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至7任一项所述的容器保存方法。10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的容器保存方法。
技术总结
本申请涉及一种容器保存方法、装置、设备及存储介质,涉及计算机技术领域。该容器保存方法包括:获取待保存的目标容器在服务层的第一标识;根据第一标识,获取目标容器在容器集群管理平台的第二标识,和目标容器所在的目标节点的节点标识,其中,目标节点在容器集群管理平台内部;根据第二标识和节点标识,将目标容器创建为目标镜像;将目标镜像保存至镜像仓库。本申请用以解决容器安装复杂的问题。本申请用以解决容器安装复杂的问题。本申请用以解决容器安装复杂的问题。
技术研发人员:徐雪梅
受保护的技术使用者:北京金山云网络技术有限公司
技术研发日:2022.01.07
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:扫雪装置、控制方法和扫雪机与流程 下一篇:一种按摩椅气囊降噪结构的制作方法