基于可编程容器内核的容器内核升级方法及装置制造方法及图纸

技术编号:35925504 阅读:28 留言:0更新日期:2022-12-10 11:17
本说明书的实施例提供基于可编程容器内核的容器内核升级方法及装置。在该方法中,响应于接收到容器内核升级请求,冻结待升级的第一容器内核所在的应用容器;保存应用容器的当前容器状态数据,当前容器状态数据包括第一容器内核的第一容器内核状态数据以及在应用容器中运行的所有容器应用程序的应用程序状态数据;利用用于容器内核升级的第二容器内核重启应用容器,所述重启后的应用容器的容器状态数据包括在应用容器重启时第二容器内核的第二容器内核状态数据;使用所保存的当前容器状态数据更新重启容器状态数据的数据结构中的对应数据字段;以及响应于容器状态数据更新完成,在重启后的应用容器中恢复运行被冻结的应用容器中的容器应用程序。用容器中的容器应用程序。用容器中的容器应用程序。

【技术实现步骤摘要】
基于可编程容器内核的容器内核升级方法及装置


[0001]本说明书实施例通常涉及操作系统领域,尤其涉及基于可编程容器内核的容器内核升级方法及装置。

技术介绍

[0002]应用容器(也称为安全容器)是一种运行时技术。在应用容器技术中,为每个应用程序提供独立的应用容器内核,该应用容器内核是轻量级操作系统,可以为应用容器中的容器应用程序提供操作系统执行环境,但将容器应用程序的执行与主机操作系统隔离开,由此避免容器应用程序直接访问主机资源,从而可以在应用容器与主机之间或应用容器之间提供隔离保护。在应用容器内核为容器应用程序提供系统服务时,如果应用容器内核出现操作系统漏洞和/或新增新功能,则需要进行应用容器内核升级。

技术实现思路

[0003]鉴于上述,本说明书实施例提供基于可编程容器内核的容器内核升级方法及装置。利用该容器内核升级方法及装置,可以利用可编程容器内核来进行容器内核升级,从而在容器内核升级时实现对容器内核的定制化修改。
[0004]根据本说明书实施例的一个方面,提供一种基于可编程容器内核的容器内核升级方法,包括:响应于接收到容器内核升级请求,冻结待升级的第一容器内核所在的应用容器;保存所述应用容器的当前容器状态数据,所述当前容器状态数据包括所述第一容器内核所对应的第一容器内核状态数据以及在所述应用容器内运行的所有应用程序的应用程序状态数据,并且具有所述第一容器内核所定义的第一数据结构;利用用于容器内核升级的第二容器内核重启所述应用容器,所述重启后的应用容器的重启容器状态数据包括在所述应用容器重启时所述第二容器内核所对应的第二容器内核状态数据,并且具有所述第二容器内核所定义的第二数据结构;使用所保存的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段;以及响应于容器状态数据更新完成,在所述重启后的应用容器中恢复运行所述被冻结的应用容器中的容器应用程序。
[0005]可选地,在上述方面的一个示例中,保存所述应用容器的当前容器状态数据可以包括:将所述当前容器状态数据以容器快照的形式保存在数据文件中,所述容器快照通过对所述当前容器状态数据进行数据序列化而生成,使用所保存的当前容器状态数据更新所述重启容器状态数据包括:对所述数据文件中的容器快照进行数据反序列化以恢复所保存的当前容器状态数据;以及利用所恢复的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段。
[0006]可选地,在上述方面的一个示例中,所述当前容器状态数据和所述重启容器状态数据被组织为数据树。利用所恢复的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段可以包括:自所述重启容器状态数据的数据树的根数据节点起,自上而下逐数据节点执行下述更新过程:确定当前数据节点在所述当前容器状态数据的数据
树中是否存在对应数据节点;响应于所述当前容器状态数据的数据树中不存在对应数据节点,不对所述当前数据节点的数据字段部分进行更新处理,响应于所述当前容器状态数据的数据树中存在对应数据节点,确定所述当前数据节点相对于所述对应数据节点是否发生数据字段变化,响应于所述当前数据节点相对于所述对应数据节点未发生数据字段变化,利用所述对应数据节点的数据字段信息直接更新所述当前数据节点的数据字段信息,响应于所述当前数据节点相对于所述对应数据节点发生数据字段变化,使用所述对应数据节点的数据字段信息来根据指定策略更新所述当前数据节点的数据字段信息。
[0007]可选地,在上述方面的一个示例中,所述数据文件包括内存文件或磁盘文件。
[0008]可选地,在上述方面的一个示例中,在保存所述应用容器的当前容器状态数据之前,所述容器内核升级方法还可以包括:停止所述应用容器的驱动缓存的报文接收功能,并且将所述驱动缓存中的报文上交给所述第一容器内核。
[0009]可选地,在上述方面的一个示例中,在保存所述应用容器的当前容器状态数据保存之前,所述容器内核升级方法还可以包括:丢弃所述应用容器的全部缓存数据。
[0010]可选地,在上述方面的一个示例中,在保存所述应用容器的当前容器状态数据之前,所述容器内核升级方法还可以包括:针对所述应用容器的当前容器状态数据中的每个容器组件所对应的容器状态数据进行异常检测;和/或记录所述应用容器的系统启动时间和当前实时时间。
[0011]可选地,在上述方面的一个示例中,在使用所保存的当前容器状态数据更新所述重启容器状态数据后,所述容器内核升级方法还可以包括:重新打开在所述当前容器状态数据中被设置为打开的主机文件。
[0012]可选地,在上述方面的一个示例中,在使用所保存的当前容器状态数据更新所述重启容器状态数据后,所述容器内核升级方法还可以包括:确定所述应用容器的系统启动时间;和/或启动所述应用容器的硬件收发功能。
[0013]根据本说明书的实施例的另一方面,提供一种基于可编程容器内核的容器内核升级装置,包括:容器冻结单元,响应于接收到容器内核升级请求,冻结待升级的第一容器内核所在的应用容器;容器状态数据保存单元,保存所述应用容器的当前容器状态数据,所述当前容器状态数据包括所述第一容器内核所对应的第一容器内核状态数据以及在所述应用容器内运行的所有应用程序的应用程序状态数据,并且具有所述第一容器内核所规定的第一数据结构;容器重启单元,利用用于容器内核升级的第二容器内核重启所述应用容器,所述重启后的应用容器的重启容器状态数据包括在所述应用容器重启时所述第二容器内核所对应的第二容器内核状态数据,并且具有所述第二容器内核所规定的第二数据结构;容器状态数据更新单元,使用所保存的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段;以及应用程序运行恢复单元,响应于容器状态数据更新完成,在所述重启后的应用容器中恢复运行所述被冻结的应用容器中的容器应用程序。
[0014]可选地,在上述方面的一个示例中,所述容器状态数据保存单元将所述当前容器状态数据以容器快照的形式保存在数据文件中,所述容器快照通过对所述当前容器状态数据进行数据序列化而生成。所述容器状态数据更新单元可以包括:容器状态数据恢复模块,对所述数据文件中的容器快照进行数据反序列化以恢复所述当前容器状态数据;以及容器状态数据更新模块,利用所述当前容器状态数据更新所述重启容器状态数据的数据结构中
的对应数据字段。
[0015]可选地,在上述方面的一个示例中,所述当前容器状态数据和所述重启容器状态数据被组织为数据树。所述容器状态数据更新模块被配置为:自所述重启容器状态数据的数据树的根数据节点起,自上而下逐数据节点执行下述更新过程:确定当前数据节点在所述当前容器状态数据的数据树中是否存在对应数据节点;响应于所述当前容器状态数据的数据树中不存在对应数据节点,不对所述当前数据节点的数据字段部分进行更新处理,响应于所述当前容器状态数据的数据树中存在对应数据节点,确定所述当前数据节点相对于所述对应数据节点是否发生数据字段变化,响应于所述当前数据节点相对于所述对应数据节点未发生数据字段变化,利用所述对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可编程容器内核的容器内核升级方法,包括:响应于接收到容器内核升级请求,冻结待升级的第一容器内核所在的应用容器;保存所述应用容器的当前容器状态数据,所述当前容器状态数据包括所述第一容器内核所对应的第一容器内核状态数据以及在所述应用容器内运行的所有应用程序的应用程序状态数据,并且具有所述第一容器内核所定义的第一数据结构;利用用于容器内核升级的第二容器内核重启所述应用容器,所述重启后的应用容器的重启容器状态数据包括在所述应用容器重启时所述第二容器内核所对应的第二容器内核状态数据,并且具有所述第二容器内核所定义的第二数据结构;使用所保存的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段;以及响应于容器状态数据更新完成,在所述重启后的应用容器中恢复运行所述被冻结的应用容器中的容器应用程序。2.如权利要求1所述的容器内核升级方法,其中,保存所述应用容器的当前容器状态数据包括:将所述当前容器状态数据以容器快照的形式保存在数据文件中,所述容器快照通过对所述当前容器状态数据进行数据序列化而生成,使用所保存的当前容器状态数据更新所述重启容器状态数据包括:对所述数据文件中的容器快照进行数据反序列化以恢复所保存的当前容器状态数据;以及利用所恢复的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段。3.如权利要求2所述的容器内核升级方法,其中,所述当前容器状态数据和所述重启容器状态数据被组织为数据树,利用所恢复的当前容器状态数据更新所述重启容器状态数据的数据结构中的对应数据字段包括:自所述重启容器状态数据的数据树的根数据节点起,自上而下逐数据节点执行下述更新过程:确定当前数据节点在所述当前容器状态数据的数据树中是否存在对应数据节点;响应于所述当前容器状态数据的数据树中不存在对应数据节点,不对所述当前数据节点的数据字段部分进行更新处理,响应于所述当前容器状态数据的数据树中存在对应数据节点,确定所述当前数据节点相对于所述对应数据节点是否发生数据字段变化,响应于所述当前数据节点相对于所述对应数据节点未发生数据字段变化,利用所述对应数据节点的数据字段信息直接更新所述当前数据节点的数据字段信息,响应于所述当前数据节点相对于所述对应数据节点发生数据字段变化,使用所述对应数据节点的数据字段信息来根据指定策略更新所述当前数据节点的数据字段信息。4.如权利要求2所述的容器内核升级方法,其中,所述数据文件包括内存文件或磁盘文件。5.如权利要求1所述的容器内核升级方法,其中,在保存所述应用容器的当前容器状态数据之前,所述容器内核升级方法还包括:
停止所述应用容器的驱动缓存的报文接收功能,并且将所述驱动缓存中的报文上交给所述第一容器内核。6.如权利要求5所述的容器内核升级方法,其中,在保存所述应用容器的当前容器状态数据保存之前,所述容器内核升级方法还包括:丢弃所述应用容器的全部缓存数据。7.如权利要求1所述的容器内核升级方法,其中,在保存所述应用容器的当前容器状态数据之前,所述容器内核升级方法还包括:针对所述应用容器的当前容器状态数据中的每个容器组件所对应的容器状态数据进行异常检测;和/或记录所述应用容器的系统启动时间和当前实时时间。8.如权利要求1所述的容器内核升级方法,其中,在使用所保存的当前容器状态数据更新所述重启容器状态数据后,所述容器内核升级方法还包括:重新打开在所述当前容器状态数据中被设置为打开的主机文件。9.如权利要求8所述的容器内核升级方法,其中,在使用所保存的当前容器状态数据更新所述重启容器状态数据后,所述容器内核升级方法还包括:确定所述应用容器...

【专利技术属性】
技术研发人员:贺勇谈鉴锋黄家琦别体伟周天昱沈安琪陈歆晏艳
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1