【技术实现步骤摘要】
基于kubernetes的GPU设备资源分配方法及系统
[0001]本专利技术涉及计算机软件领域,尤其涉及一种基于kubernetes的GPU设备资源分配方法及系统。
技术介绍
[0002]kubernetes是目前最常用的容器编排系统,容器化的应用更是复杂多样,某些应用容器需要使用GPU、FPGA、网卡等设备,对此,Kubernetes提供了设备资源管理机制来将设备的资源化。对于设备资源的注册与分配是由kubelet Device Manager(kubelet设备管理器)模块与设备插件之间进行交互,以获取计算节点的设备清单并申请设备资源,之后同步到Kubernetes中的API Server,当一个使用该设备的应用被部署时由调度器模块分配到相关计算节点。其中API Server是Kubernetes的核心模块,这里负责设备资源的统计与记录;调度器模块也是Kubernetes中的一部分,主要负责Pod的调度。
[0003]Pod是Kubernetes中调度的基本单位,一个Pod中可以包含多个GPU应用容器,但是目前 ...
【技术保护点】
【技术特征摘要】
1.一种基于kubernetes的GPU设备资源分配方法,其特征在于,应用于kubernetes中的GPU计算节点,所述GPU计算节点包括至少2个真实GPU设备,以及GPU设备插件和kubelet设备管理器模块,所述kubelet设备管理器模块通过GPU设备插件和每个真实GPU设备连接,所述方法包括以下步骤:S1)GPU设备插件获取每个真实GPU设备的设备信息,根据每个真实GPU设备的显存大小,为每个真实GPU设备生成至少两个逻辑设备;S2)GPU设备插件获取每个真实GPU设备的负载情况和健康状况,将每个逻辑设备的设备ID和对应真实GPU设备的健康状况上报kubelet设备管理器模块,随后kubelet设备管理器模块将所述真实GPU设备和逻辑设备的信息发送到Kubernetes中的API Server;S3)若含有GPU应用容器的Pod被调度到GPU计算节点,kubelet设备管理器模块获取对应的Pod ID、容器ID和绑定标记,及已分配的目标逻辑设备的设备ID,并一同发送给GPU设备插件;S4)若目标逻辑设备的设备ID为一个,且绑定标记为第一值,GPU设备插件选择负载率最低的真实GPU设备,将目标逻辑设备分配给被选择的真实GPU设备,然后分配给对应的GPU应用容器,并调整其余逻辑设备和各真实GPU设备的对应关系,返回步骤S2)直到结束;否则执行步骤S5);S5)若目标逻辑设备的设备ID为一个,且绑定标记为第二值,GPU设备插件根据Pod ID匹配真实GPU设备,若存在匹配结果,将所述目标逻辑设备分配给匹配到的真实GPU设备,然后分配给对应的GPU应用容器,并调整其余逻辑设备和各真实GPU设备的对应关系,返回步骤S2)直到结束。2.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法,其特征在于,步骤S1)之前还包括配置kubelet设备管理模块和GPU设备插件的步骤,具体包括:在kubernetes的设备管理协议中增加包含设备ID、Pod ID、容器ID和绑定标记的字段,根据修改后的设备管理协议配置kubelet设备管理模块和GPU设备插件,将GPU设备插件容器化部署到kubernetes中,将宿主机的所有GPU设备映射至所述GPU设备插件的容器。3.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法,其特征在于,步骤S4)具体包括以下步骤:S41)根据目标逻辑设备的设备ID匹配到对应的原始真实GPU设备,获取原始真实GPU设备的负载率,若原始真实GPU设备的负载率在所有空余真实GPU设备中不是最小则执行步骤S42);若原始真实GPU设备的负载率在所有空余真实GPU设备中最小,将所述目标逻辑设备分配给原始真实GPU设备,然后分配给对应的GPU应用容器,将原始真实GPU设备的实际路径和权限反馈给kubelet设备管理器模块,返回步骤S2),所述空余真实GPU设备为存在未分配逻辑设备的真实GPU设备;S42)选取所有空余真实GPU设备中负载率最小的真实GPU设备作为当前真实GPU设备,选取当前真实GPU设备的一个未分配逻辑设备,与目标逻辑设备交换,并将目标逻辑设备分配给当前真实GPU设备,然后分配给对应的GPU应用容器,将当前真实GPU设备的实际路径和权限反馈给kubelet设备管理器模块。4.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法,其特征在于,步骤S5)具体包括以下步骤:
S51)根据目标逻辑设备的设备ID对应的Pod ID匹配所有真实GPU设备,若存在匹配结果,且匹配到的真实GPU设备存在未分配逻辑设备,将匹配到的真实GPU设备作为当前真实GPU设备;S52)根据目标逻辑设备的设备ID匹配到对应的原始真实GPU设备,若原始真实GPU设备不为当前真实GPU设备,选取当前真实GPU设备的一个未分配逻辑设备,与目标逻辑设备交换,将目标逻辑设备分配给当前真实GPU设备,然后分配给对应的GPU应用容器,将当前真实GPU设备的实际路径和权限反馈给kubelet设备管理器模块;若原始真实GPU设备为当前真实GPU设备,将目标逻辑设备分配给原始真实GPU设备,然后分配给对应的GPU应用容器,将原始真实GPU设备的实际路径和权限反馈给kubelet设备管理器模块。5.根据权利要求4所述的基于kubernetes的GPU设备资源分配方法,其特征在于,步骤S51)中还包括不存在匹配结果,或者匹配到的真实GPU设备不存在未分配逻辑设备的处理步骤,具体包括:S51a)若不存在匹配结果,或者匹配到的真实GPU设备不存在未分配逻辑设备,根据目标逻辑设备的设备ID匹配到对应的原始真实GPU设备,获取原始真实GPU设备的负载率,若原始真实GPU设备的负载率在所有空余真实GPU设备中不是最小则执行步骤S51b);若原始真实GPU设备的负载率在所有空余真实GPU设备中最小,将所述目标逻辑设备分配给原始真实GPU设备,然后分配给对应的GPU应用容器,将原始真实GPU设备的实际路径和权限反馈给kubelet设备管理器模块,保存所述目标逻辑设备的设备ID对应的Pod ID作为原始真实GPU设备对应的Pod ID,所述空余真实GPU设备为存在未分配逻辑设备的真实GPU设备,返回步骤S2);S51b)选取所有空余真实GPU设备中负载率最小的真实GPU设备作为当前真实GPU设备,选取当前真实GPU设备的一个未分配逻辑设备,与目标逻辑设备交换,将所述目标逻辑设备分配给当前真实GPU设备,然后分配给对应的GPU应用...
【专利技术属性】
技术研发人员:马春雨,吴春光,张远航,李钰磊,张里阳,刘晓敏,张玉,
申请(专利权)人:银河麒麟软件长沙有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。