一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种容器操作方法、系统及存储介质和服务器与流程

2021-11-03 14:37:00 来源:中国专利 TAG:


1.本发明涉及信息处理技术领域,特别涉及一种容器操作方法、系统及存储介质和服务器。


背景技术:

2.现有技术中一般采用对容器的操作,以达到资源的部署和扩容等目的,可以广泛应用于物联、银行、政府、交通、工业和教育等实际场景中。
3.其中,容器是指至少一个程序和其所有依赖项打包形成的文件,将一个或多个容器封装到一个结构中形成一个pod,这里pod是容器编排的最小调度单位,含有容器的各项参数配置用来指导启动容器的各种启动参数。现有的一个容器编排的资源调度管理平台kubernetes会提供用户交互接口,用户可以通过该用户交互接口发起对pod操作的任务;kubernetes会根据用户触发的任务会用对应的容器操作平台即docker进行相应操作,比如创建、启动、停止或删除容器等操作。
4.但是用户通过kubernetes发起的任务所覆盖的容器参数只有少量的一些参数,然而有很多参数并没有涵盖在内,但这些参数实际上是有使用场景以及有用户诉求的,现有技术中为了扩展kubernetes的容器参数,一般都需要修改kubernete的代码,这种方式不利于推广,也不能兼容其它云厂商的kubernetes平台,后期维护成本高,尤其是kubernetes在快速地升级迭代。


技术实现要素:

5.本发明实施例提供一种容器操作方法、系统及存储介质和服务器,实现了一种简单的容器参数的扩展。
6.本发明实施例一方面提供一种容器操作方法,包括:
7.拦截容器调度节点向容器操作平台发起的容器操作请求;
8.根据所述容器操作请求确定基于相应容器的扩展参数进行处理的处理时机;
9.若所述处理时机为在所述容器操作平台对所述容器操作请求进行相应操作之后,将所述容器操作请求转发给所述容器操作平台;
10.当接收到所述容器操作平台根据所述容器操作请求返回的容器操作结果,基于所述容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果;
11.将所述处理后容器操作结果返回给所述容器调度节点。
12.本发明实施例另一方面提供一种容器操作系统,包括:
13.拦截单元,用于拦截容器调度节点向容器操作平台发起的容器操作请求;
14.处理时机单元,用于根据所述容器操作请求确定基于相应容器的扩展参数进行处理的处理时机;
15.请求转发单元,用于若所述处理时机为在所述容器操作平台对所述容器操作请求进行相应操作之后,将所述容器操作请求转发给所述容器操作平台;
16.扩展处理单元,用于当接收到所述容器操作平台根据所述容器操作请求返回的容器操作结果,基于所述容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果;
17.结果返回单元,用于将所述处理后容器操作结果返回给所述容器调度节点。
18.本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如本发明实施例一方面所述的容器操作方法。
19.本发明实施例另一方面还提供一种服务器,包括处理器和存储器;
20.所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如本发明实施例一方面所述的容器操作方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
21.可见,在本实施例的方法中,在容器调度节点向容器操作平台发起容器操作请求的过程中,通过拦截处理装置来拦截该容器操作请求,并确定基于相应容器的扩展参数进行处理的处理时机,然后在处理时机到来时,基于相应容器的扩展参数进行相应处理。这样,当用户通过容器调度平台触发的容器的操作任务所覆盖的容器参数较少时,为了在扩展容器参数时,适应性地实现基于扩展参数的容器处理时,可以通过容器调度节点与容器操作平台之间部署的拦截处理装置实现基于扩展参数的容器处理,而不需要对容器调度平台的代码进行修改,简化了容器参数扩展的成本,扩展性比较强。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1是本发明实施例提供的一种容器操作方法的示意图;
24.图2是本发明一个实施例提供的一种容器操作方法的流程图;
25.图3是本发明一个实施例提供的另一种容器操作方法的流程图;
26.图4是本发明一个应用实施例中容器操作方法所应用的系统的示意图;
27.图5是本发明一个应用实施例中提供的一种容器操作方法的示意图;
28.图6是本发明另一个应用实施例中提供的一种容器操作方法的示意图;
29.图7是本发明另一应用实施例中容器操作方法所应用于的分布式系统的示意图;
30.图8是本发明另一应用实施例中区块结构的示意图;
31.图9是本发明实施例提供的一种容器操作系统的逻辑结构示意图;
32.图10是本发明实施例提供的一种服务器的逻辑结构示意图。
具体实施方式
33.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
34.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
35.本发明实施例提供一种容器操作方法,主要应用于如图1所示的系统中,在该系统中包括容器调度平台10、多个(图中以n个为例来说明)容器调度节点11、容器操作平台12、拦截处理装置13和扩展参数处理装置14,其中:
36.容器调度平台10可以提供用户交互接口,这样用户可以通过该用户交互接口触发容器的操作任务,而容器调度平台10会根据用户触发的操作任务所涉及的容器,来调用相应的一个容器调度节点11,以实现对容器的操作。
37.任一容器调度节点11用于调度和管理一个或多个容器的操作,可以向容器操作平台12发起容器操作请求,在容器调度节点11中还会储存所管理的容器的参数信息。多个容器调度节点11是以集群方式部署。
38.容器操作平台12用于当接收到容器操作请求后,根据容器操作请求进行相应的操作,比如启动容器、遍历容器、创建容器或删除容器。一个容器操作平台12可以对应一个或多个容器调度节点11。
39.拦截处理装置13具体用于在容器调度节点11调用容器操作平台12进行容器操作的过程中,拦截容器调度平台发起的容器操作请求,并触发扩展参数处理装置14对容器操作请求所涉及的容器的扩展参数进行一定的处理,这里拦截处理装置13可以对应连接一个或多个扩展参数处理装置14(图中只画出一个)。在实际应用中,拦截处理装置13和扩展参数处理装置14所实现的功能可以部署到同一物理装置中,即拦截容器操作请求和对容器的扩展参数进行一定的处理都是由该物理装置来实现。
40.进一步地,用户还可以通过容器调度平台10发起创建容器封装结构的流程,通过该流程可以对容器的参数进行扩展,具体地,容器调度平台10会显示容器封装结构的创建界面,用户在容器封装结构的创建界面输入待创建的容器封装结构的设置参数并通过容器封装结构的创建界面发起容器封装结构的创建请求,而容器调度平台10会根据容器封装结构的创建请求选择某一个容器调度节点11,并将用户输入的待创建的容器封装结构的设置参数储存到选择的容器调度节点11中。这样,用户可以通过容器调度平台10提供的用户交互接口触发对创建的容器封装结构中封装的容器的操作任务。
41.其中,容器封装结构用于封装一个或多个容器,而用户可以输入到创建界面的设置参数可以包括待创建的容器封装结构中封装的容器的参数,比如容器的已有参数和扩展参数等。
42.在一种具体的实现中,若容器调度平台10具体为kubernetes平台,则容器调度节点11具体为kubelet节点,该kubelet节点是负责启动运行一个或多个pod的管理组件,其中,pod是容器编排的最小调度单位,里面含有容器的各项参数配置用来指导启动容器的各
种启动参数,而一个pod内封装有一个或多个容器;容器操作平台12具体为docker,该docker具体为管理容器生命周期的组件,如创建容器、启动容器、停止容器、删除容器等;扩展参数处理装置14具体为plugin,该plugin是对扩展参数进行设置的组件。
43.在这种情况下,用户还可以通过容器调度平台10发起创建pod的流程,其中,pod为容器封装结构,是kubernetes平台进行容器编排的最小调度单位,可以封装容器的各项参数,具体地,容器调度平台10会显示pod创建界面,用户在pod创建界面输入待创建的pod的设置参数并通过pod创建界面发起pod创建请求,而容器调度平台10会根据pod创建请求选择某一个容器调度节点11,并将用户输入的待创建的pod的设置参数储存到选择的容器调度节点11中。这样,用户可以通过容器调度平台10提供的用户交互接口触发对创建的pod封装的容器的操作任务。
44.具体地,上述拦截处理装置13具体可以通过如下的步骤实现容器操作过程:
45.拦截容器调度节点向容器操作平台发起的容器操作请求;根据所述容器操作请求确定基于相应容器的扩展参数进行处理的处理时机;若所述处理时机为在所述容器操作平台对所述容器操作请求进行相应操作之后,将所述容器操作请求转发给所述容器操作平台;当接收到所述容器操作平台根据所述容器操作请求返回的容器操作结果,基于所述容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果;将所述处理后容器操作结果返回给所述容器调度节点。
46.这样,当用户通过容器调度平台触发的容器的操作任务所覆盖的容器参数较少时,为了在扩展容器参数时,适应性地实现基于扩展参数的容器处理时,可以通过容器调度节点与容器操作平台之间部署的拦截处理装置实现基于扩展参数的容器处理,而不需要对容器调度平台的代码进行修改,简化了容器参数扩展的成本,扩展性比较强。
47.需要说明的是,本发明实施例中的容器操作方法可以应用于基于云技术的服务器部署场景中,可以在云服务器中部署相应的容器。其中,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。主要是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
48.本发明一个实施例提供一种容器操作方法,主要是由上述的拦截处理装置所执行的方法,流程图如图2所示,包括:
49.步骤101,拦截容器调度节点向容器操作平台发起的容器操作请求。
50.可以理解,用户可以通过容器调度平台在任一容器调度节点中创建容器,并储存容器的参数信息,这样用户即可通过容器调度平台提供的用户交互接口发起容器的操作任务。其中,在任一容器调度节点中储存的容器的参数信息可以包括:用户通过容器调度平台触发的容器的操作任务所覆盖的容器参数信息,及容器的操作任务所不能支持的容器参数信息即扩展参数信息。
51.进一步地,当用户通过容器调度平台提供的用户交互接口触发容器的操作任务,
容器调度平台会调用操作任务所涉及容器对应的容器调度节点会根据操作任务的实际需要,向容器操作平台发起容器操作请求。而本发明实施例的拦截处理装置会在容器调度节点向容器操作平台发起容器操作请求的过程中,拦截容器操作请求。
52.这里容器操作请求可以为创建容器请求、启动容器请求、停止容器请求、删除容器请求或遍历容器请求等,且上述用户触发的容器的一个操作任务可以对应一个或多个容器操作请求,也就是说,当用户触发了容器的操作任务后,容器调度节点会根据需要向容器操作平台发起一个或多个容器操作请求。例如:用户触发的容器的操作任务是删除满足某些条件的容器,则容器调度节点会先向容器操作平台发起容器遍历请求,以请求容器操作平台遍历至少一个容器调度节点所管理的所有容器,查找到满足某些条件的容器;然后容器调度节点会发起删除容器请求,以请求容器操作平台删除之前查找到的容器。
53.在容器操作请求中可以包括待操作容器的标识信息等信息。
54.步骤102,根据容器操作请求确定基于相应容器的扩展参数进行处理的处理时机。
55.这里容器的扩展参数是指用户通过容器调度平台触发的容器的操作任务所不能覆盖的容器参数信息。
56.而基于容器的扩展参数进行处理的处理时机可以包括:在容器操作平台对容器操作请求进行相应操作之后,及在容器操作平台对容器操作请求进行相应操作之前,具体可以根据容器操作请求的请求类型来确定处理时机,例如:若请求类型为遍历容器请求,则处理时机为在容器操作平台对容器操作请求进行相应操作之后,若请求类型为启动容器请求或停止容器请求,则处理时机为在容器操作平台对容器操作请求进行相应操作之前。
57.步骤103,若处理时机为在容器操作平台对容器操作请求进行相应操作之后,先将容器操作请求转发给容器操作平台,由容器操作平台先根据容器操作请求进行相应操作,得到容器操作结果。
58.步骤104,当接收到容器操作平台根据容器操作请求返回的容器操作结果,基于容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果。
59.具体地,拦截处理装置可以直接基于容器操作结果相关容器的扩展参数进行相应处理;或者,拦截处理装置可以将容器操作结果传送给扩展参数处理装置,由扩展参数处理装置基于相关容器的扩展参数进行相应处理。
60.具体地,在基于容器操作结果相关容器的扩展参数进行相应处理时,需要先获取容器操作结果相关容器的第一参数信息,若在获取的第一参数信息中包括扩展参数,则根据第一参数信息中扩展参数的第一参数值对容器操作结果进行相应处理,其中,这里的相应处理主要是对容器操作结果所涉及的容器进行一定处理,比如修改容器的属性值等,且具体是哪种处理方法需要根据第一参数信息来决定;若获取的第一参数信息中不包括扩展参数,或者,根据获取的第一参数信息的第一参数值确定不对容器操作结果进行处理,说明不需要对容器操作结果进行进一步地处理,可以直接将容器操作结果返回给容器调度节点。
61.其中,在获取第一参数信息时,具体可以向容器操作结果相关容器所属的容器调度节点获取封装相关容器的容器封装结构(比如上述的pod)的信息,其中可以包括该第一参数信息。这里容器封装结构中封装的容器的各项参数信息(包括用户通过容器调度平台触发容器的操作任务所覆盖的参数和未覆盖的扩展参数)是通过容器调度平台设置的。
62.例如,容器操作请求为遍历容器请求,而容器操作结果包括遍历的多个容器的信息,若多个容器中一容器的扩展参数的第一参数值包括隐藏,从容器操作结果中过滤该容器,得到的处理后容器操作结果包括过滤后剩余容器的信息;若多个容器中另一容器的扩展参数为另一容器的至少一个属性已修改,而另一容器的扩展参数的第一参数值包括另一容器的至少一个属性(比如容器名称和标签信息等)的修改后属性值,则将容器操作结果中另一容器的相应至少一个属性的属性值替换为修改后属性值。
63.步骤105,将处理后容器操作结果返回给容器调度节点。
64.进一步地,步骤103到105是在一种处理时机的情况下的处理方法,在另一种情况下,如图3所示,拦截处理装置在执行了步骤102后,可以执行如下步骤:
65.步骤201,若处理时机为在容器操作平台对容器操作请求进行相应操作之前,根据容器操作请求相应容器的扩展参数修改容器操作请求,得到修改后容器操作请求。
66.具体地,拦截处理装置可以先获取相应容器的第二参数信息,若第二参数信息中包括扩展参数,根据第二参数信息中扩展参数的第二参数值对容器操作请求进行修改;若第二参数信息中不包括扩展参数,或者,根据第二参数信息中扩展参数的第二参数值确定不对容器操作请求进行修改,将容器操作请求发送给容器操作平台,以使得容器操作平台根据容器操作请求进行容器操作。
67.其中,在获取第二参数信息时,具体可以向与容器操作请求相应容器所属的容器调度节点获取封装相关容器的容器封装结构(比如上述的pod)的信息,其中可以包括该第二参数信息。这里容器封装结构中封装的容器的各项参数信息(包括用户通过容器调度平台触发容器的操作任务所覆盖的参数和未覆盖的扩展参数)是通过容器调度平台设置的,具体可以如上述实施例中所述,在此不进行赘述。
68.例如,容器操作请求为创建容器请求,若扩展参数的第二参数值包括相应容器的一扩展属性值,比如增加的共享内容为128m、设置文件的最大打开数、设置容器控制组(control groups,cgroup)路径等,在创建容器请求中增加创建相应容器的一扩展属性值的字段。这里cgroup是指一种可以限制、记录隔离进程组(process groups)所使用的物理资源的机制。
69.步骤202,将修改后容器操作请求发送给容器操作平台,以使得容器操作平台根据修改后容器操作请求进行容器操作。
70.可见,在本实施例的方法中,在容器调度节点向容器操作平台发起容器操作请求的过程中,通过拦截处理装置来拦截该容器操作请求,并确定基于相应容器的扩展参数进行处理的处理时机,然后在处理时机到来时,基于相应容器的扩展参数进行相应处理。这样,当用户通过容器调度平台触发的容器的操作任务所覆盖的容器参数较少时,为了在扩展容器参数时,适应性地实现基于扩展参数的容器处理时,可以通过容器调度节点与容器操作平台之间部署的拦截处理装置实现基于扩展参数的容器处理,而不需要对容器调度平台的代码进行修改,简化了容器参数扩展的成本,扩展性比较强。
71.以下以一个具体的应用实例来说明本发明实施例的容器操作方法,具体可以应用如图4所示的系统中,包括:kubernetes平台(即上述的容器调度平台)、多个kubelet节点(即上述的容器调度节点)、docker(即上述的容器操作平台)、拦截处理装置及plugin(即上述的扩展参数处理装置)。为了实现本发明职工的容器操作方法,需要先部署拦截处理装置
和扩展参数处理装置,具体地,可以进行如下几个方面的配置:
72.(1)需要在拦截处理装置中预置配置文件,具体地,该配置文件中可以包括拦截处理装置在执行本发明实施例中容器操作方法所用到的参数,具体可以包括如下配置参数的参数值:配置文件的版本号、配置文件的类型、监听地址及扩展参数处理装置的信息,扩展参数处理装置的信息可以包括连接配置、名称、连接地址及基于扩展参数进行处理的处理时机等。
73.在具体实现时,配置文件可以包括如下表1中所示的配置参数的参数值:
[0074][0075]
表1
[0076]
(2)配置kubelet节点和plugin,具体地,使用者需要将kubelet节点连接docker的连接地址参数的参数值配置为拦截处理装置的监听地址即listenaddress的参数值,同时需要将对应的plugin启动。
[0077]
在一种具体实现中,如图5所示,本实施例的系统可以采用如下步骤实现容器操作:
[0078]
步骤301,用户通过kubernetes平台提供的用户交互接口触发对某一pod中封装容器的操作任务。
[0079]
其中,由于kubelet节点中储存的容器都是封装在pod中的,即pod是容器操作的最小单位,则用户触发的对某一容器的操作任务具体为对某一pod中封装容器的操作任务。
[0080]
步骤302,kubernetes平台根据操作任务确定对应pod属于某一kubelet节点管理和调度,kubernetes平台会调用该kubelet节点实现对容器的操作,具体地,可以将操作任务发送给该kubelet节点。
[0081]
步骤303,kubelet节点根据操作任务确定需要向对应的docker发起容器操作请求,本实施例中以创建容器请求为例说明,具体地,kubelet节点会发起一个post且统一资
源定位符(uniform resource locator,url)为/container/create的请求。
[0082]
由于在kubelet节点发起创建容器请求之前,在kubelet节点中已经创建了pod即容器封装结构,并设置了各项参数信息,包括容器的扩展参数和kubernetes平台发起容器的操作任务所支持的参数,则kubelet节点在本步骤303中发起创建容器请求时,需要指定kubelet节点中的一pod,作为创建容器的封装结构,且发起的创建容器请求中不会涉及容器的扩展参数,而在之后的步骤306中再对创建容器请求进行修改。
[0083]
步骤304,拦截处理装置会拦截到该创建容器请求,确定基于相应容器的扩展参数进行处理的处理时机,具体为prehook阶段,即docker在对创建容器请求进行相应操作之前,则将创建容器请求发送给plugin处理。
[0084]
步骤305,plugin接收到创建容器请求后,会获取该创建容器请求相应容器的第二参数信息,具体可以为容器所封装的pod的annotations,其中,kubernetes的pod上的一个注释参数,可以给pod增加一些信息,用来帮助识别pod或者提供额外信息。
[0085]
步骤306,若第二参数信息中包括相应容器的扩展参数的第二参数值,plugin根据第二参数值修改创建容器请求,比如在创建容器请求中增加字段或删除字段,或修改已有字段等,得到修改后创建容器请求并返回给拦截处理装置,由拦截处理装置将修改后创建容器请求发送给docker,docker在对修改后创建容器请求进行相应操作后,可以将基于修改后创建容器请求得到的第一操作结果通过拦截处理装置返回给kubelet节点。
[0086]
步骤307(图中以虚线箭头表示),若第二参数信息中不包括相应容器的扩展参数的第二参数值,或者根据第二参数值确定不需要修改启创建容器请求,则plugin将原来的创建容器请求返回给拦截处理装置,由拦截处理装置将启动容器请求发送给docker,docker在对创建容器请求进行相应操作后,可以将根据创建容器请求得到的第二操作结果通过拦截处理装置返回给kubelet节点。
[0087]
在另一种具体实现中,如图6所示,本实施例的系统可以采用如下步骤实现容器操作:
[0088]
步骤401,用户通过kubernetes平台提供的用户交互接口触发对某一pod中封装容器的操作任务。
[0089]
步骤402,kubernetes平台根据操作任务确定对应pod属于某一kubelet节点管理和调度,kubernetes平台会调用该kubelet节点实现对容器的操作,具体地,可以将操作任务发送给该kubelet节点。
[0090]
步骤403,kubelet节点根据操作任务确定需要向对应的docker发起容器操作请求,本实施例中以遍历容器请求为例说明,具体地,kubelet节点会发起一个get且url为/containers/json的请求。
[0091]
步骤404,拦截处理装置会拦截到该遍历容器请求,确定基于相应容器的扩展参数进行处理的处理时机,具体为posthook阶段,即docker在对遍历容器请求进行相应操作之后,则将遍历容器请求发送给docker。
[0092]
步骤405,docker根据遍历容器请求得到的容器操作结果包括多个pod封装容器的信息,且将容器操作结果返回给拦截处理装置,拦截处理装置将容器操作结果发送给plugin。
[0093]
步骤406,plugin接收到容器操作结果后,会获取该容器操作结果相应容器的第一
参数信息,具体可以为容器所封装的pod的annotations。
[0094]
步骤407,若第一参数信息中包括相应容器的扩展参数的第一参数值,plugin根据第一参数值进行相应处理,比如过滤容器操作结果中某一pod封装的容器,得到处理后容器操作结果并返回给拦截处理装置,由拦截处理装置将处理后容器操作结果返回给kubelet节点。
[0095]
步骤408(图中以虚线箭头表示),若第一参数信息中不包括相应容器的扩展参数的第一参数值,或者根据第一参数值确定不需要对容器操作结果进行进一步地处理,plugin会直接将容器操作结果并返回给拦截处理装置,由拦截处理装置将容器操作结果返回给kubelet节点。
[0096]
可见,本实施例中的容器操作方法主要是基于kubernetes的容器云场景,通过一种旁路拦截转发的机制,即上述拦截处理装置的实现,解决kubernetes不同迭代周期无法支持底层容器操作平台即docker的高级参数特性。且本实施例中,在扩展pod中封装容器的参数时,无需通过入侵kubernetes的内部代码逻辑,即可实现基于扩展参数的容器操作,扩展性较强,且用户还可以根据自己的需要灵活的配置拦截处理装置的配置文件及插件即上述的plugin,以提供更多的参数功能。
[0097]
以下以另一具体的应用实例来说明本发明中容器操作方法,本发明实施例中的容器操作系统主要为分布式系统100,该分布式系统可以包括客户端300及多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端),客户端300与节点200之间通过网络通信的形式连接。
[0098]
以分布式系统为区块链系统为例,参见图7是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
[0099]
参见图7示出的区块链系统中各节点的功能,涉及的功能包括:
[0100]
1)路由,节点具有的基本功能,用于支持节点之间的通信。
[0101]
节点除具有路由功能外,还可以具有以下功能:
[0102]
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其它节点,供其它节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
[0103]
例如,应用实现的业务包括实现容器操作功能的代码,该容器操作功能主要包括:
[0104]
拦截容器调度节点向容器操作平台发起的容器操作请求;根据所述容器操作请求确定基于相应容器的扩展参数进行处理的处理时机;若所述处理时机为在所述容器操作平台对所述容器操作请求进行相应操作之后,将所述容器操作请求转发给所述容器操作平台;当接收到所述容器操作平台根据所述容器操作请求返回的容器操作结果,基于所述容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果;将所述处理后容器操作结果返回给所述容器调度节点。
[0105]
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
[0106]
参见图8为本发明实施例提供的区块结构(block structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
[0107]
本发明实施例还提供一种容器操作系统,其结构示意图如图9所示,具体可以包括:
[0108]
拦截单元20,用于拦截容器调度节点向容器操作平台发起的容器操作请求。
[0109]
处理时机单元21,用于根据所述拦截单元20拦截的容器操作请求确定基于相应容器的扩展参数进行处理的处理时机。
[0110]
该处理时机单元21,具体用于根据所述容器操作请求的请求类型,确定基于相应容器的扩展参数进行处理的处理时机。
[0111]
请求转发单元22,用于若所述处理时机单元21确定的处理时机为在所述容器操作平台对所述容器操作请求进行相应操作之后,将所述容器操作请求转发给所述容器操作平台。
[0112]
扩展处理单元23,用于当接收到所述容器操作平台根据所述请求转发单元22转发的容器操作请求返回的容器操作结果,基于所述容器操作结果相关容器的扩展参数进行相应处理,得到处理后容器操作结果。
[0113]
该扩展处理单元23,具体用于获取所述容器操作结果相关容器的第一参数信息;若所述第一参数信息中包括扩展参数,则根据所述第一参数信息中扩展参数的第一参数值对所述容器操作结果进行相应处理。其中,扩展处理单元23在获取第一参数信息时,具体用于向所述容器操作结果相关容器所属的容器调度节点获取封装所述相关容器的容器封装结构的参数信息,所述容器封装结构的参数信息包括所述第一参数信息;其中,所述容器封装结构中封装的容器的各项参数信息是通过容器调度平台设置的。
[0114]
进一步地,该扩展处理单元23,还用于若所述第一参数信息中不包括扩展参数,或者,根据所述第一参数信息中扩展参数的第一参数值确定不对所述容器操作结果进行处理,通知结果返回单元24将所述容器操作结果返回给所述容器操作平台。
[0115]
例如:所述容器操作请求为遍历容器请求,所述容器操作结果包括遍历的多个容器的信息;扩展处理单元23在根据所述第一参数信息中扩展参数的第一参数值对所述容器操作结果进行相应处理时,具体用于若所述多个容器中一容器的扩展参数的第一参数值为隐藏,从所述容器操作结果中过滤所述一容器;若所述多个容器中另一容器的扩展参数的第一参数值包括所述另一容器的至少一个属性的修改后属性值,将所述容器操作结果中另一容器的相应至少一个属性值替换为所述修改后属性值。
[0116]
结果返回单元24,用于将所述扩展处理单元23得到的处理后容器操作结果返回给所述容器调度节点。
[0117]
进一步地,本实施例的容器操作系统还可以包括:
servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0126]
上述方法实施例中所述的由拦截处理装置所执行的步骤可以基于该图10所示的服务器的结构。
[0127]
本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如上述拦截处理装置所执行的容器操作方法。
[0128]
本发明实施例另一方面还提供一种服务器,包括处理器和存储器;
[0129]
所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如上述拦截处理装置所执行的容器操作方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
[0130]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的容器操作方法。
[0131]
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom)、随机存取存储器(ram)、磁盘或光盘等。
[0132]
以上对本发明实施例所提供的一种容器操作方法、系统及存储介质和服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献