CN114546591A - 镜像文件共享方法、容器集群管理系统及相关设备 - Google Patents

镜像文件共享方法、容器集群管理系统及相关设备 Download PDF

Info

Publication number
CN114546591A
CN114546591A CN202210150929.7A CN202210150929A CN114546591A CN 114546591 A CN114546591 A CN 114546591A CN 202210150929 A CN202210150929 A CN 202210150929A CN 114546591 A CN114546591 A CN 114546591A
Authority
CN
China
Prior art keywords
image file
sub
node
file
mirror image
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
Application number
CN202210150929.7A
Other languages
English (en)
Inventor
郭庆萍
初阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202210150929.7A priority Critical patent/CN114546591A/zh
Publication of CN114546591A publication Critical patent/CN114546591A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种镜像文件共享方法、容器集群管理系统及相关设备,该方法应用于容器集群管理系统中的运行节点,容器集群管理系统包括控制节点和至少一个运行节点,该方法包括:从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点;基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件;基于至少一个子镜像文件启动容器。

Description

镜像文件共享方法、容器集群管理系统及相关设备
技术领域
本申请涉及计算机技术领域,特别涉及一种镜像文件共享方法、容器集群管理系统及相关设备。
背景技术
目前,在容器集群管理系统中,运行节点若需要启动容器,其只能使用该运行节点本地存储的镜像启动容器,而,运行节点本地存储镜像会导致运行节点的存储空间占用过大。
发明内容
本申请提供如下技术方案:
本申请一方面提供一种镜像文件共享方法,应用于容器集群管理系统中的运行节点,所述容器集群管理系统包括控制节点和至少一个所述运行节点,该方法包括:
从所述控制节点获得镜像文件的文件分布信息,所述镜像文件包括至少一个子镜像文件,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息,所述存储节点属于至少一个所述运行节点;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件;
基于所述至少一个子镜像文件启动容器。
若至少一个所述运行节点的个数不小于至少一个所述子镜像文件的个数,不同所述子镜像文件对应的存储节点不同。
所述方法还包括:
将所述文件分布信息更新到所述运行节点的数据库中;
所述基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,包括:
从所述运行节点的数据库中,获取所述文件分布信息;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件。
所述方法还包括:
响应于第一触发事件,若各所述子镜像文件对应的存储节点不包含所述运行节点,从所述运行节点中删除至少一个所述子镜像文件,所述第一触发事件与在启动所述容器之后,执行与所述容器关联的操作相关。
所述方法还包括:
响应于第二触发事件,若各所述子镜像文件对应的存储节点包含所述运行节点,从所述运行节点中删除至少一个所述第二子镜像文件;
其中,至少一个第一子镜像文件存储在所述运行节点中,至少一个所述第二子镜像文件存储在不同于所述运行节点的第一运行节点中,至少一个所述第一子镜像文件和至少一个所述第二子镜像文件组成所述镜像文件。
本申请另一方面提供一种镜像文件共享方法,应用于容器集群管理系统中的控制节点,所述容器集群管理系统包括:所述控制节点和至少一个运行节点,该方法包括:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
从至少一个所述运行节点中确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
从至少一个所述运行节点中确定出目标运行节点,以使得所述目标运行节点从所述控制节点获得所述镜像文件的文件分布信息,基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,基于所述至少一个子镜像文件启动容器。
所述获取镜像文件,包括:
在确定所述控制节点的镜像文件数据库中包含镜像文件的情况下,从所述镜像文件数据库中获取镜像文件;
在确定所述控制节点的镜像文件数据库中不包含镜像文件,且在确定至少一个第二运行节点中包含所述镜像文件的情况下,从至少一个所述第二运行节点中获取所述镜像文件,所述第二运行节点为至少一个所述运行节点中的任意一个运行节点;
在确定至少一个所述第二运行节点中不包含所述镜像文件的情况下,从镜像容器仓库中获取所述镜像文件。
本申请第三方面提供一种运行节点,包括:
处理组件和存储组件;
所述存储组件,用于至少存储一组指令集;
所述处理组件,用于调用并执行所述第一存储组件中的所述指令集,通过执行所述指令集执行上述任意一项所述的镜像文件共享方法。
本申请第四方面提供一种控制节点,包括:
控制组件,用于:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
调度组件,用于从至少一个所述运行节点中确定出目标运行节点,以使得所述目标运行节点从所述控制节点获得镜像文件的文件分布信息,基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,基于所述至少一个子镜像文件启动容器。
本申请第五方面提供一种容器集群管理系统,包括:控制节点和至少一个运行节点;
所述控制节点,用于:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
从至少一个所述运行节点中确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
从至少一个所述运行节点中确定出目标运行节点;
所述目标运行节点,用于:
从所述控制节点获得镜像文件的文件分布信息,所述镜像文件包括至少一个子镜像文件,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息,所述存储节点属于至少一个所述运行节点;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件;
基于所述至少一个子镜像文件启动容器。
在本申请中,容器集群管理系统中的运行节点可以从控制节点获得镜像文件的文件分布信息,在文件分布信息包括镜像文件包括的各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点的基础上,可以基于文件分布信息,从子镜像文件对应的存储节点获取子镜像文件,得到至少一个子镜像文件,实现运行节点之间共享子镜像文件,不需要每个运行节点均本地存储镜像文件,可以节省运行节点本地的存储空间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例1提供的一种镜像文件共享方法的流程示意图;
图2是本申请提供的一种子镜像文件的存储节点分布场景示意图;
图3是本申请提供的另一种子镜像文件的存储节点分布场景示意图;
图4是本申请提供的一种镜像文件共享方法的效果对比示意图;
图5是本申请实施例2提供的一种镜像文件共享方法的流程示意图;
图6是本申请实施例3提供的一种镜像文件共享方法的流程示意图;
图7是本申请实施例4提供的一种镜像文件共享方法的流程示意图;
图8是本申请实施例5提供的一种镜像文件共享方法的流程示意图;
图9是本申请提供的一种Kubernetes的结构示意图;
图10是本申请提供的一种运行节点的结构示意图;
图11是本申请提供的一种控制节点的结构示意图;
图12是本申请提供的一种容器集群管理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,为本申请实施例1提供的一种镜像文件共享方法的流程示意图,该方法可以应用于容器集群管理系统中的运行节点,容器集群管理系统可以包括控制节点和至少一个运行节点,如图1所示,该方法可以包括但并不局限于以下步骤:
步骤S101、从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点。
控制节点可以获取镜像文件,镜像文件包括至少一个子镜像文件,并从至少一个运行节点中确定各子镜像文件对应的存储节点,存储节点属于至少一个运行节点。
可以理解的是,每个运行节点能够存储的子镜像文件的个数在本申请中并不做限制。例如,运行节点可以存储0个、1个或多个子镜像文件。
本实施例中,各子镜像文件对应的存储节点可以全部相同。例如,如图2所示,若一个镜像文件包括10个子镜像文件,分别为layer1、layer2、…layer10,容器集群管理系统包括控制节点和10个运行节点,分别为Node1、Node2、…Node10,可以从10个运行节点中选取运行节点Node1,作为10个子镜像文件对应的存储节点,即运行节点Node1存储10个子镜像文件。
当然,各子镜像文件对应的存储节点也可以部分相同。例如,若一个镜像文件包括10个子镜像文件,容器集群管理系统包括8个运行节点,可以从8个运行节点中选取5个目标运行节点,作为10个子镜像文件对应的存储节点,每个存储节点存储的子镜像文件的个数不限,只需保证10个子镜像文件全部存储在该5个存储节点中即可。
另外,若容器集群管理系统包括的至少一个运行节点的个数不小于镜像文件包括的至少一个子镜像文件的个数,不同子镜像文件对应的存储节点可以不同。例如,如图3所示,若一个镜像文件包括10个子镜像文件,分别为layer1、layer2、…layer10,容器集群管理系统包括11个运行节点,分别为Node1、Node2、…Node11。可以从11个运行节点中选取10个目标运行节点Node1-Node10,分别确定为各子镜像文件对应的存储节点,每个存储节点存储的子镜像文件不同。
需要说明的是,图2或图3仅为其中一种场景示例,其并不作为对子镜像文件及子镜像文件对应的存储节点的限制。
在确定各子镜像文件对应的存储节点的基础上,控制节点至少可以记录镜像文件的文件分布信息,文件分布信息包括:各子镜像文件对应的存储节点的信息。存储节点的信息至少可以用于运行节点基于存储节点的信息访问到存储子镜像文件的存储节点。
存储节点的信息可以包括但不局限于:存储节点的标识信息;或,存储节点的标识信息及存储节点中子镜像文件的存储路径信息。
本实施例中,运行节点可以但不局限于响应于控制节点的调度指令,从控制节点获得镜像文件的文件分布信息,其中,调度指令用于指示运行节点执行目标任务。
当然,运行节点也可以基于控制节点的调度策略,在需要本运行节点执行目标任务的情况下,从控制节点获得镜像文件的文件分布信息。
步骤S102、基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
对应存储节点的信息包括:存储节点的标识信息的实施方式,本步骤可以包括但不局限于:
S1021、基于存储节点的标识信息,向子镜像文件对应的存储节点传输子镜像文件获取请求,以使得子镜像文件对应的存储节点响应子镜像文件获取请求,将其存储的子镜像文件传输给运行节点。
可以理解的是,在存储节点的信息包括存储节点的标识信息的情况下,运行节点不能直接访问子镜像文件,可以保证子镜像文件存储的安全性。
对应存储节点的信息包括:存储节点的标识信息及存储节点中子镜像文件的存储路径信息的实施方式,本步骤可以包括但不局限于:
S1022、基于存储节点的标识信息,访问子镜像文件对应的存储节点;
S1023、基于存储节点中子镜像文件的存储路径信息,访问子镜像文件对应的存储节点中对应的存储空间,从存储空间中获取子镜像文件。
可以理解的是,在存储节点的信息包括:存储节点的标识信息及存储节点中子镜像文件的存储路径信息的情况下,运行节点可以不经过与存储节点之间进行交互,即可获取子镜像文件,可以提高获取子镜像文件的效率。
至少一个子镜像文件可以作为临时文件或永久文件存储在运行节点中。其中,至少一个子镜像文件作为临时文件的存储位置和其作为永久文件的存储位置有所不同。
步骤S103、基于至少一个子镜像文件启动容器。
本实施例中,容器集群管理系统中的运行节点可以从控制节点获得镜像文件的文件分布信息,在文件分布信息包括镜像文件包括的各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点的基础上,可以基于文件分布信息,从子镜像文件对应的存储节点获取子镜像文件,得到至少一个子镜像文件,实现运行节点之间共享子镜像文件,不需要每个运行节点均本地存储镜像文件,可以节省运行节点本地的存储空间。
并且,在项目开发环境中,每个运行节点可以分别基于文件分布信息,获取至少一个子镜像文件,分别基于至少一个子镜像文件启动容器,完成项目测试,保证每个运行节点可以不需要分别本地存储镜像文件,进而不需要复制镜像文件到各个运行节点本地的工作流程,提高了开发效率。同时,也可以避免因运行节点没有存储镜像文件,导致的镜像拉取错误问题。例如,如图4中(a)部分所示,基于现有技术的方式,镜像文件只存储在Node1中,Node1中可以成功拉取镜像文件,基于镜像文件启动容器,由于Node2中没有存储镜像文件,Node2则会拉取镜像文件失败,无法启动容器;如图4中(b)部分所示,镜像文件包含的子镜像文件layer1和layer2可以存储在Node1和Node3中,Node1在只存储有layer1的情况下,仍可以基于文件分布信息,从Node3中获取layer2,并基于layer1和layer2启动容器,Node2在未存储镜像文件的情况下,可以基于文件分布信息,从Node1中获取layer1,从Node3中获取layer2,基于layer1和layer2启动容器,可以避免因未存储镜像文件导致的镜像文件拉取错误问题。
作为本申请另一可选实施例,参照图5,为本申请实施例2提供的一种镜像文件共享方法的流程示意图,本实施例主要是对上述实施例1描述的镜像文件共享方法的扩展方案,如图5所示,该方法可以包括但并不局限于以下步骤:
步骤S201、从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点。
本实施例中,可以由运行节点的代理组件(如,Kubelet),从控制节点获得镜像文件的文件分布信息。
步骤S201的详细过程可以参见实施例1中步骤S101的相关介绍,在此不再赘述。
步骤S202、将文件分布信息更新到运行节点的数据库中。
本实施例中,运行节点的代理组件可以调用运行节点的应用容器引擎(如,Docker),以使得应用容器引擎将文件分布信息更新到运行节点的数据库中。
步骤S203、从运行节点的数据库中,获取文件分布信息。
本实施例中,可以由应用容器引擎从运行节点的数据库中,获取文件分布信息。
步骤S204、基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
本实施例中,同样可以由应用容器引擎基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
本步骤的详细过程可以参见实施例1中步骤S1021或步骤S1022-S1023的相关介绍,在此不再赘述。
步骤S203-S204为实施例1中步骤S102的一种具体实施方式。
步骤S205、基于至少一个子镜像文件启动容器。
本实施例中,可以由应用容器引擎基于至少一个子镜像文件启动容器。
本实施例中,从控制节点获得镜像文件的文件分布信息,将文件分布信息更新到运行节点的数据库中,从运行节点的数据库中获取文件分布信息,在文件分布信息包括镜像文件包括的各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点的基础上,可以基于文件分布信息,从子镜像文件对应的存储节点获取子镜像文件,得到至少一个子镜像文件,实现运行节点之间共享子镜像文件,不需要每个运行节点均本地存储镜像文件,可以节省运行节点本地的存储空间。
作为本申请另一可选实施例,参照图6,为本申请实施例3提供的一种镜像文件共享方法的流程示意图,本实施例主要是对上述实施例1描述的镜像文件共享方法的扩展方案,如图6所示,该方法可以包括但并不局限于以下步骤:
步骤S301、从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点。
步骤S302、基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
运行节点可以基于文件分布信息,确定子镜像文件对应的存储节点中是否包含该运行节点。
若确定子镜像文件对应的存储节点中不包含该运行节点,则可以从从子镜像文件对应的存储节点,获得至少一个子镜像文件。
步骤S303、基于至少一个子镜像文件启动容器。
基于至少一个子镜像文件启动容器,可以包括但不局限于:
S3031、将至少一个子镜像文件确定为临时文件,并将至少一个子镜像文件存储到运行节点的临时文件夹。
S3032、基于临时文件夹存储的至少一个子镜像文件启动容器。
步骤S304、响应于第一触发事件,若各子镜像文件对应的存储节点不包含运行节点,从运行节点中删除至少一个子镜像文件。
本实施例中,第一触发事件可以为但不局限于与在启动容器之后,执行与容器关联的操作相关的事件。
第一触发事件,可以包括但不局限于:删除容器事件;或,驱逐容器事件;或,容器被重新调度到其它运行节点启动的事件。
可以理解的是,若运行节点确定各子镜像文件对应的存储节点不包含该运行节点,则可以从运行节点中删除至少一个子镜像文件。
对应步骤S303的实施方式,从运行节点中删除至少一个子镜像文件,可以包括但不局限于:
从运行节点的临时文件夹中删除至少一个子镜像文件。
本实施例中,容器集群管理系统中的运行节点可以从控制节点获得镜像文件的文件分布信息,在文件分布信息包括镜像文件包括的各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点的基础上,可以基于文件分布信息,从子镜像文件对应的存储节点获取子镜像文件,得到至少一个子镜像文件,实现运行节点之间共享子镜像文件,不需要每个运行节点均本地存储镜像文件,可以节省运行节点本地的存储空间。
并且,响应于第一触发事件,若各子镜像文件对应的存储节点不包含运行节点,从运行节点中删除至少一个子镜像文件,可以节省运行节点本地的存储空间。
作为本申请另一可选实施例,参照图7,为本申请实施例4提供的一种镜像文件共享方法的流程示意图,本实施例主要是对上述实施例1描述的镜像文件共享方法的扩展方案,如图7所示,该方法可以包括但并不局限于以下步骤:
步骤S401、从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点。
步骤S402、基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
运行节点可以基于文件分布信息,确定子镜像文件对应的存储节点中是否包含该运行节点。
若确定子镜像文件对应的存储节点中包含该运行节点,则可以从该运行节点中获得至少一个第一子镜像文件,从子镜像文件对应的存储节点中不同于该运行节点的第一运行节点中,获得至少一个第二子镜像文件,其中,至少一个第一子镜像文件和至少一个第二子镜像文件组成镜像文件。
步骤S403、基于至少一个子镜像文件启动容器。
基于至少一个子镜像文件启动容器,可以包括但不局限于:
S4031、将至少一个第二子镜像文件确定为临时文件,并将至少一个第二子镜像文件存储到运行节点的临时文件夹。
S4032、基于运行节点存储的至少一个第一子镜像文件和临时文件夹存储的至少一个第二子镜像文件启动容器。
步骤S404、响应于第二触发事件,若各子镜像文件对应的存储节点包含运行节点,从运行节点中删除至少一个第二子镜像文件。
本实施例中,第二触发事件可以为但不局限于与在启动容器之后,执行与容器关联的操作相关的事件。
第二触发事件,可以包括但不局限于:删除容器事件;或,驱逐容器事件;或,容器被重新调度到其它运行节点启动的事件。
可以理解的是,若运行节点确定各子镜像文件对应的存储节点包含该运行节点,则可以从运行节点中删除至少一个第二子镜像文件。
对应步骤S403的实施方式,从运行节点中删除至少一个第二子镜像文件,可以包括但不局限于:
从运行节点的临时文件夹中删除至少一个第二子镜像文件。
本实施例中,容器集群管理系统中的运行节点可以从控制节点获得镜像文件的文件分布信息,在文件分布信息包括镜像文件包括的各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点的基础上,可以基于文件分布信息,从子镜像文件对应的存储节点获取子镜像文件,得到至少一个子镜像文件,实现运行节点之间共享子镜像文件,不需要每个运行节点均本地存储镜像文件,可以节省运行节点本地的存储空间。
并且,响应于第二触发事件,若各子镜像文件对应的存储节点包含运行节点,从运行节点中删除至少一个第二子镜像文件,可以节省运行节点本地的存储空间,并且该运行节点保留运行节点存储的至少一个第一子镜像文件,保证其它运行节点可以从该运行节点获得至少一个第一子镜像文件,保证至少一个第一子镜像文件共享的可靠性。
作为本申请另一可选实施例,参照图8,为本申请提供的一种镜像文件共享方法实施例5的流程示意图,该方法应用于容器集群管理系统中的控制节点,容器集群管理系统包括:控制节点和至少一个运行节点,该方法可以包括但不局限于以下步骤:
步骤S501、获取镜像文件,镜像文件包括至少一个子镜像文件。
获取镜像文件,可以包括但不局限于:
S5011、确定控制节点的镜像文件数据库中是否包含镜像文件。
若包含,则执行步骤S5012;若不包含,则执行步骤S5013。
S5012、从镜像文件数据库中获取镜像文件。
S5013、确定至少一个第二运行节点是否包含镜像文件。
第二运行节点为至少一个运行节点中的任意一个运行节点。
若包含,则执行步骤S5014;若不包含,则执行步骤S5015。
S5014、从至少一个第二运行节点中获取镜像文件。
S5015、从镜像容器仓库中获取镜像文件。
步骤S502、从至少一个运行节点中确定各子镜像文件对应的存储节点,存储节点属于至少一个运行节点。
本实施例中,从至少一个运行节点中确定各子镜像文件对应的存储节点,可以包括但不局限于:
S5021、基于各运行节点的状态信息,从至少一个运行节点中选取满足设定条件的运行节点,将选取出的运行节点确定为子镜像文件对应的存储节点。
运行节点的状态信息可以包括但不局限于:运行节点的可用存储空间大小,和/或,运行节点的运行性能信息。
具体地,步骤S5021可以包括但不局限于:
S50211、基于各运行节点的可用存储空间大小,从至少一个运行节点中选取可用存储空间大小满足子镜像文件存储要求的运行节点,将选取出的运行节点确定为子镜像文件对应的存储节点。
步骤S5021也可以包括但不局限于:
S50212、基于各运行节点的可用存储空间大小及运行性能信息,从至少一个运行节点中选取可用存储空间大小满足子镜像文件存储要求,且运行性能信息超过运行性能阈值的运行节点,将选取出的运行节点确定为子镜像文件对应的存储节点。
步骤S503、记录镜像注册表信息,镜像注册表信息中至少包含镜像文件的文件分布信息,文件分布信息包括:各子镜像文件对应的存储节点的信息。
本实施例中,存储节点的信息至少可以用于运行节点基于存储节点的信息访问到存储子镜像文件的存储节点。
存储节点的信息可以包括但不局限于:存储节点的标识信息;或,存储节点的标识信息及存储节点中子镜像文件的存储路径信息。
镜像注册表信息还可以包括但不局限于:镜像文件的标识信息。镜像文件的标识信息可以用于查询到镜像文件。
步骤S504、从至少一个运行节点中确定出目标运行节点,以使得目标运行节点从控制节点获得镜像文件的文件分布信息,基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件,基于至少一个子镜像文件启动容器。
目标运行节点从控制节点获得镜像文件的文件分布信息,基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件,基于至少一个子镜像文件启动容器的详细过程可以参见实施例1-5中任意一个实施例中的相关介绍,在此不再赘述。
本实施例中,容器集群管理系统可以为但不局限于:Kubernetes,如图9所示,Kubernetes可以包括:scheduler(调度组件)、Image Controller(控制组件)、API Server(接口组件)和ETCD Image table(镜像注册表信息),scheduler可以提供调度服务,具体可以调用获取镜像文件;Image Controller可以调用API Server,从至少一个运行节点中确定各子镜像文件对应的存储节点,并记录ETCD Image table;schedule可以从至少一个运行节点(如图9中Node1、Node2、Node3和Node4)中确定出目标运行节点(如图9中Node4),并调用API Server向目标运行节点发送调度指令。
如图9所示,对应Kubernetes,目标运行节点可以包括Kubelet、Docker和ImageRepository(本地数据库),Kubelet可以响应控制节点的调度指令,调用目标运行节点的接口组件从控制节点的ETCD Image table中获取镜像文件的文件分布信息,将镜像文件的文件分布信息更新到目标运行节点的Image Repository中,Kubelet调用docker从ImageRepository中获取文件分布信息,以及基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件,及基于至少一个子镜像文件启动Pod(即,一个容器或一组容器)。具体地,文件分布信息包括Node1、Node2和Node3的信息,Node4基于Node1、Node2的信息和Node3的信息,从Node1、Node2和Node3获得子镜像文件,得到至少一个子镜像文件,并基于至少一个子镜像文件启动Pod。
需要说明的是,Kubernetes中每个运行节点均包括Kubelet、Docker和ImageRepository,如图9中Node1、Node2、Node3和Node4中均包括Kubelet、Docker和ImageRepository。
接下来对本申请提供的运行节点进行介绍,下文介绍的运行节点与上文介绍的镜像文件共享方法可相互对应参照。
请参见图10,运行节点可以包括:处理组件100和存储组件200。
存储组件,用于至少存储一组指令集;
处理组件,用于调用并执行第一存储组件中的指令集,通过执行指令集执行如实施例1-4中任意一个实施例所介绍的镜像文件共享方法。
在本申请的另一个实施例中,提供一种控制节点,请参见图11,控制节点包括:控制组件300和调度组件400。
控制组件300,可以用于:
获取镜像文件,镜像文件包括至少一个子镜像文件;
确定各子镜像文件对应的存储节点,存储节点属于至少一个运行节点;
记录镜像注册表信息,镜像注册表信息中至少包含镜像文件的文件分布信息,文件分布信息包括:各子镜像文件对应的存储节点的信息;
调度组件400,可以用于从至少一个运行节点中确定出目标运行节点,以使得目标运行节点从控制节点获得镜像文件的文件分布信息,基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件,基于至少一个子镜像文件启动容器。
在本申请的另一个实施例中,提供一种容器集群管理系统,请参见图12,容器集群管理系统包括:控制节点10和至少一个运行节点20。
控制节点10,可以用于:
获取镜像文件,镜像文件包括至少一个子镜像文件;
从至少一个运行节点20中确定各子镜像文件对应的存储节点,存储节点属于至少一个运行节点20;
记录镜像注册表信息,镜像注册表信息中至少包含镜像文件的文件分布信息,文件分布信息包括:各子镜像文件对应的存储节点的信息;
从至少一个运行节点20中确定出目标运行节点;
目标运行节点,可以用于:
从控制节点获得镜像文件的文件分布信息,镜像文件包括至少一个子镜像文件,文件分布信息包括:各子镜像文件对应的存储节点的信息,存储节点属于至少一个运行节点;
基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件;
基于至少一个子镜像文件启动容器。
本实施例中,若至少一个运行节点的个数不小于至少一个子镜像文件的个数,不同子镜像文件对应的存储节点不同。
本实施例中,目标运行节点还可以用于:
将文件分布信息更新到运行节点的数据库中;
相应地,目标运行节点基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件的过程,具体可以包括:
从运行节点的数据库中,获取文件分布信息;
基于文件分布信息,从子镜像文件对应的存储节点获得子镜像文件,得到至少一个子镜像文件。
本实施例中,目标运行节点,还可以用于:
响应于第一触发事件,若各子镜像文件对应的存储节点不包含运行节点,从运行节点中删除至少一个所述子镜像文件,第一触发事件与在启动容器之后,执行与容器关联的操作相关。
本实施例中,目标运行节点,还可以用于:
响应于第二触发事件,若各子镜像文件对应的存储节点包含运行节点,从运行节点中删除至少一个第二子镜像文件;
其中,至少一个第一子镜像文件存储在运行节点中,至少一个第二子镜像文件存储在不同于运行节点的第一运行节点中,至少一个第一子镜像文件和至少一个第二子镜像文件组成镜像文件。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种镜像文件共享方法、容器集群管理系统及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种镜像文件共享方法,应用于容器集群管理系统中的运行节点,所述容器集群管理系统包括控制节点和至少一个所述运行节点,该方法包括:
从所述控制节点获得镜像文件的文件分布信息,所述镜像文件包括至少一个子镜像文件,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息,所述存储节点属于至少一个所述运行节点;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件;
基于所述至少一个子镜像文件启动容器。
2.根据权利要求1所述的方法,若至少一个所述运行节点的个数不小于至少一个所述子镜像文件的个数,不同所述子镜像文件对应的存储节点不同。
3.根据权利要求1所述的方法,所述方法还包括:
将所述文件分布信息更新到所述运行节点的数据库中;
所述基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,包括:
从所述运行节点的数据库中,获取所述文件分布信息;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件。
4.根据权利要求1所述的方法,所述方法还包括:
响应于第一触发事件,若各所述子镜像文件对应的存储节点不包含所述运行节点,从所述运行节点中删除至少一个所述子镜像文件,所述第一触发事件与在启动所述容器之后,执行与所述容器关联的操作相关。
5.根据权利要求1所述的方法,所述方法还包括:
响应于第二触发事件,若各所述子镜像文件对应的存储节点包含所述运行节点,从所述运行节点中删除至少一个所述第二子镜像文件;
其中,至少一个第一子镜像文件存储在所述运行节点中,至少一个所述第二子镜像文件存储在不同于所述运行节点的第一运行节点中,至少一个所述第一子镜像文件和至少一个所述第二子镜像文件组成所述镜像文件。
6.一种镜像文件共享方法,应用于容器集群管理系统中的控制节点,所述容器集群管理系统包括:所述控制节点和至少一个运行节点,该方法包括:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
从至少一个所述运行节点中确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
从至少一个所述运行节点中确定出目标运行节点,以使得所述目标运行节点从所述控制节点获得所述镜像文件的文件分布信息,基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,基于所述至少一个子镜像文件启动容器。
7.根据权利要求6所述的方法,所述获取镜像文件,包括:
在确定所述控制节点的镜像文件数据库中包含镜像文件的情况下,从所述镜像文件数据库中获取镜像文件;
在确定所述控制节点的镜像文件数据库中不包含镜像文件,且在确定至少一个第二运行节点中包含所述镜像文件的情况下,从至少一个所述第二运行节点中获取所述镜像文件,所述第二运行节点为至少一个所述运行节点中的任意一个运行节点;
在确定至少一个所述第二运行节点中不包含所述镜像文件的情况下,从镜像容器仓库中获取所述镜像文件。
8.一种运行节点,包括:
处理组件和存储组件;
所述存储组件,用于至少存储一组指令集;
所述处理组件,用于调用并执行所述第一存储组件中的所述指令集,通过执行所述指令集执行如权利要求1-5任意一项所述的镜像文件共享方法。
9.一种控制节点,包括:
控制组件,用于:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
调度组件,用于从至少一个所述运行节点中确定出目标运行节点,以使得所述目标运行节点从所述控制节点获得镜像文件的文件分布信息,基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件,基于所述至少一个子镜像文件启动容器。
10.一种容器集群管理系统,包括:控制节点和至少一个运行节点;
所述控制节点,用于:
获取镜像文件,所述镜像文件包括至少一个子镜像文件;
从至少一个所述运行节点中确定各所述子镜像文件对应的存储节点,所述存储节点属于至少一个所述运行节点;
记录镜像注册表信息,所述镜像注册表信息中至少包含所述镜像文件的文件分布信息,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息;
从至少一个所述运行节点中确定出目标运行节点;
所述目标运行节点,用于:
从所述控制节点获得镜像文件的文件分布信息,所述镜像文件包括至少一个子镜像文件,所述文件分布信息包括:各所述子镜像文件对应的存储节点的信息,所述存储节点属于至少一个所述运行节点;
基于所述文件分布信息,从所述子镜像文件对应的存储节点获得所述子镜像文件,得到至少一个所述子镜像文件;
基于所述至少一个子镜像文件启动容器。
CN202210150929.7A 2022-02-18 2022-02-18 镜像文件共享方法、容器集群管理系统及相关设备 Pending CN114546591A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210150929.7A CN114546591A (zh) 2022-02-18 2022-02-18 镜像文件共享方法、容器集群管理系统及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210150929.7A CN114546591A (zh) 2022-02-18 2022-02-18 镜像文件共享方法、容器集群管理系统及相关设备

Publications (1)

Publication Number Publication Date
CN114546591A true CN114546591A (zh) 2022-05-27

Family

ID=81676257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210150929.7A Pending CN114546591A (zh) 2022-02-18 2022-02-18 镜像文件共享方法、容器集群管理系统及相关设备

Country Status (1)

Country Link
CN (1) CN114546591A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302335A (zh) * 2023-02-22 2023-06-23 阿里云计算有限公司 数据处理方法以及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302335A (zh) * 2023-02-22 2023-06-23 阿里云计算有限公司 数据处理方法以及装置

Similar Documents

Publication Publication Date Title
CN112000348B (zh) 服务灰度发布的控制方法、装置、计算机设备
EP3200393B1 (en) Method and device for virtual network function management
CN107391758B (zh) 数据库切换方法、装置及设备
CN106936899B (zh) 分布式统计分析系统的配置方法及分布式统计分析系统
CN107741852B (zh) 一种基于集群软件的服务部署方法
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US11182406B2 (en) Increased data availability during replication
CN111464603B (zh) 一种服务器扩容方法及扩容系统
US11397632B2 (en) Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
US10466991B1 (en) Computing instance software package installation
EP2674868A1 (en) Database update notification method
CN111240892A (zh) 数据备份方法及装置
WO2020211362A1 (zh) 提高集群系统可用性的方法、装置和计算机设备
CN111143023A (zh) 一种资源变更的方法及装置、设备、存储介质
CN114546591A (zh) 镜像文件共享方法、容器集群管理系统及相关设备
CN111966466A (zh) 一种容器管理方法、设备以及介质
CN110471906B (zh) 数据库切换方法、装置及设备
US11233747B2 (en) Systems and methods for acquiring server resources at schedule time
CN112506590A (zh) 接口调用方法、装置及电子设备
US20220407838A1 (en) Service discovery and renaming
CN113010600B (zh) 一种基于区块链的数据管理系统、方法、相关设备及介质
CN115914404A (zh) 集群流量管理方法、装置、计算机设备和存储介质
CN112925852B (zh) 一种分布式数据库指定节点缩容方法
CN114615263A (zh) 集群在线迁移方法、装置、设备及存储介质
US10684840B1 (en) Software package installation and monitoring

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