当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于制造技术

技术编号:39579122 阅读:4 留言:0更新日期:2023-12-03 19:29
一种基于

【技术实现步骤摘要】
一种基于Kubernetes的文件主动分发方法及系统


[0001]本专利技术涉及计算机
,具体而言,本专利技术涉及一种基于
Kubernetes
的文件主动分发方法及系统


技术介绍

[0002]随着互联网技术的持续演进和全球数字化进程的加速,
Kubernetes
已经成为了众多企业

乃至政府机构的容器编排平台
。Kubernetes
,是用于自动部署

扩缩和管理容器化应用程序的开源系统

[0003]在特定场景中,特对是对于数据驱动的应用和大数据处理中,经常会有从后端系统拉取文件的需求

这使得如何高效

稳定地处理文件拉取问题也成为了待解决的问题

[0004]现有技术通常的解决方案是将文件保存在对象存储或远程文件系统中,在需要时通过调用
API
接口进行实时拉取

将文件存储在服务器上,使用时实时拉取,能够有效的解决文件拉取问题,但
Kubernetes
中多个
Pod
同时尝试拉取文件时,可能会使得服务器承受大量压力,同时突然的网络流量激增导致网络拥塞影响其他的服务

这虽然可以通过限制文件下载速度解决,但仍然不够灵活

此外,实时的文件拉取策略也意味着,任何后续处理或计算操作都需要等待文件完全下载后才能开始,这种延迟可能会为用户带来不良体验

[0005]因此,现有技术还有待改进和提高


技术实现思路

[0006]本专利技术要解决现有技术的上述缺陷,提出一种基于
Kubernetes
的文件主动分发方法及系统,用以解决现有技术中存在的拉取文件会导致网络流量突增,执行拉取操作后需要等待的问题

[0007]为了解决上述技术问题,本专利技术采用的技术方案如下:
[0008]第一方面,本专利技术提供一种基于
Kubernetes
的文件主动分发方法,其中,所述方法包括:
[0009]S1.
服务端获取下载任务资源,并通过子下载任务生成模块将下载任务资源分解成多个子下载任务资源,将子下载任务资源分派给各个节点的客户端;同时,服务端执行主动监控方法,并及时做出反应;
[0010]S2.
客户端接收到子下载任务资源,任务生成模块根据子下载任务资源创建下载任务,并将其加入下载任务队列;任务选择模块根据任务的任务优先级和创建时间对下载任务队列中的任务进行打分;
[0011]S3.
客户端的任务执行模块在空闲时,从下载任务队列取出分数最高的下载任务,执行限速下载操作,将文件下载到本地;在下载失败的情况下,如果该下载任务的执行次数没有超出配置,则被重新加入下载任务队列,否则,任务执行模块修改子下载任务资源的状态为下载失败状态;在文件下载成功的情况下,任务执行模块修改子下载任务资源的状态为下载成功状态;
[0012]S4.
服务端获取到被客户端修改的子下载任务资源,根据子下载任务资源的更新而更新下载任务资源,并通知用户下载任务执行失败
/
执行成功

[0013]进一步,步骤
S1
所述服务端主动监控方法,包括:
[0014]下载任务资源根据其配置的选择器寻找需要该文件的工作负载或者节点;服务端的集群监视模块通过
Kubernetes

ListAndWatch
功能监控节点和工作负载的创建更新;当新的节点或新的工作负载存在特定标签,即下载任务资源的选择器指定的标签,集群监控模块将判断节点或工作负载所在的节点是否存在已下载成功的子下载任务资源,若不存在,则会为该节点创建子下载任务资源

[0015]进一步,步骤
S2
所述的客户端的任务选择模块根据任务优先级和创建时间为任务进行打分,包括:
[0016]首先,任务选择模块根据任务优先级为每个下载任务打分,下载任务的分数等于其优先级,每个任务的分数计算完成后,对所有下载任务的优先级分数进行归一化操作映射到0到
100
分中;
[0017]其次,任务选择模块根据下载任务创建时长为每个下载任务打分,下载任务的分数等于任务已创建的时间,每个任务的分数计算完成后,对所有下载任务的时间分数进行归一化操作映射到0到
100
分中;
[0018]最后,对优先级分数和时间分数计算加权和,为最终得分;
[0019]任务选择模块会根据最终最终得分为下载任务进行排序,以实现优先级越高分数越高,任务已创建时间越长优先级越高,保证高优先级和持续时间长的任务会被优先下载

[0020]进一步,步骤
S3
所述的客户端限速下载文件方法,包括:
[0021]在进行下载任务时,客户端根据配置对下载文件任务设置一个总下载限速,所有下载任务速度之和小于总下载限速;对于客户端上同时执行的多个下载任务,每个下载任务的速度由任务执行模块根据当前下载任务的优先级进行分配

[0022]第二方面,本专利技术还提供一种基于
Kubernetes
的主动分发文件系统,包括运行在主节点上的服务端和运行在全部节点上的客户端;所述服务端包括:
[0023]集群监视模块:用于监视工作负载和节点的创建和更新,当工作负载或节点发生创建或更新操作时,集群监控模块根据标签寻找符合条件的下载任务资源,通知对应的下载任务资源更新模块;
[0024]子下载任务生成模块:使用下载任务资源的标签选择器寻找需要下载文件的节点,根据下载任务资源为需要但缺少子下载任务资源的节点生成子下载任务资源;
[0025]下载任务资源更新模块:用于子任务下载资源的状态发生变化时,根据子下载任务资源更新下载任务资源,并将子下载任务资源的变化通知用户,以使用户可以尽快执行其他操作;
[0026]所述客户端包括:
[0027]任务生成模块:根据主服务器生成的自定义资源,生成下载任务,加载到队列中;
[0028]任务选择模块:用于将队列中所有任务进行打分,用于选择分数最高的任务执行下载操作;
[0029]任务执行模块:用于执行下载操作,会从头或者上次下载的断点开始下载,并根据设置对下载进行限速,若下载成功,则修改子下载任务任务资源的状态为成功;若下载失
[0044]AI
模型管理流行的做法是将模型当作一个文件存放在对象存储中,当需要运行该模型时,修改模型配置,再从后端拉取模型文件

这种方式的弊端,一是当多个节点同时修改模型配置时,可能会导致多个节点同时拉取模型文件,导致网络流量突增,二是,修改了配置文件后,需要等待模型文件下载成功后,才能使用模型文件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
Kubernetes
的文件主动分发方法,其特征在于,包括:
S1.
服务端获取下载任务资源,并通过子下载任务生成模块将下载任务资源分解成多个子下载任务资源,将子下载任务资源分派给各个节点的客户端;同时,服务端执行监控方法,并及时做出反应;
S2.
客户端接收到子下载任务资源,任务生成模块根据子下载任务资源创建下载任务,并将其加入下载任务队列;任务选择模块根据任务的任务优先级和创建时间对下载任务队列中的任务进行打分;
S3.
客户端的任务执行模块在空闲时,从下载任务队列取出分数最高的下载任务,执行限速下载操作,将文件下载到本地;在下载失败的情况下,如果该下载任务的执行次数没有超出配置,则被重新加入下载任务队列,否则,任务执行模块修改子下载任务资源的状态为下载失败状态;在文件下载成功的情况下,任务执行模块修改子下载任务资源的状态为下载成功状态;
S4.
服务端获取到被客户端修改的子下载任务资源,根据子下载任务资源的更新而更新下载任务资源,并通知用户下载任务执行失败
/
执行成功
。2.
根据权利要求1所述的一种基于
Kubernetes
的文件主动分发方法,其特征在于,
S1
所述的监控方法包括:对于要求持久下载的下载任务,服务端持续监控符合要求的节点的增加更新,具体包括:下载任务资源根据其配置的选择器寻找需要该文件的工作负载或者节点;服务端的集群监视模块通过
Kubernetes

ListAndWatch
功能监控节点和工作负载的创建更新;当新的节点或新的工作负载存在特定标签,即下载任务资源的选择器指定的标签,集群监控模块将判断节点或工作负载所在的节点是否存在已下载成功的子下载任务资源,若不存在,则会为该节点创建子下载任务资源
。3.
根据权利要求1所述的一种基于
Kubernetes
的文件主动分发方法,其特征在于,
S2
所述的客户端的任务选择模块根据任务优先级和创建时间为任务进行打分,具体包括:首先,任务选择模块根据任务优先级为每个下载任务打分,下载任务的分数等于其优先级,每个任务的分数计算完成后,对所有下载任务的优先级分数进行归一化操作映射到0到
100
分中;其次,任务...

【专利技术属性】
技术研发人员:陈雨菲
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1