本技术涉及计算机技术的领域,尤其是涉及一种基于容器的gpu分配方法、装置、电子设备和介质。
背景技术:
1、kubernetes集群是一组运行容器化应用程序的节点,容器化应用程序将应用程序与其依赖项以及一些必要的服务配置打包在一起。kubernetes集群允许容器跨多台机器和环境运行,包括但不限于虚拟机、物理机、云平台和本地。kubernetes提供了nvidia gpu容器调度能力,kubernetes集群中gpu资源作为一种外部资源,部署nvidia官方提供的插件(k8s-device-plugin)后,gpu资源在节点上是以个数暴露给kubernetes集群来进行调度的。
2、相关技术中,在容器内使用gpu的方式为在容器启动时直接执行相应的任务,该类任务一般为预先编写好的,所以仅在模型训练和模型预测的场景下较为适用。然而由于在容器内无法实现信息交互,所以对于模型开发场景并不适用。因此,如何在容器内实现模型开发是亟待解决的问题。
技术实现思路
1、为了在容器内实现模型开发,本技术提供尤其是涉及一种基于容器的gpu分配方法、装置、电子设备和介质。
2、第一方面,本技术提供一种基于容器的gpu分配方法,采用如下的技术方案:
3、一种基于容器的gpu分配方法,包括获取目标容器管理工具,所述目标容器管理工具为可实现gpu资源共享的容器管理工具;
4、在所述目标容器管理工具内创建代理服务,所述代理服务用于代理外部对前端界面的访问;
5、获取应用镜像,所述应用镜像中包括网页应用镜像、gpu镜像以及环境配置;
6、获取容器调度信息,所述容器调度信息包括若干个资源类型以及每个资源类型的需求参数;
7、基于所述目标容器管理工具、所述代理服务、所述应用镜像以及所述容器调度信息,确定网页应用容器。
8、通过采用上述技术方案,获取目标容器管理工具,目标容器管理工具为可实现gpu资源共享的容器管理工具;在目标容器管理工具内创建代理服务;获取应用镜像,应用镜像中包括网页应用镜像、gpu镜像以及环境配置;获取容器调度信息,容器调度信息包括若干个资源类型以及每个资源类型的需求参数。目标容器管理工具根据容器调度信息,结合应用镜像以及代理服务创建网页应用容器,使得网页应用容器可通过代理服务将外部请求动态转发至容器内,实现信息交互,进而在容器内实现模型开发。
9、在一种可能实现的方式中,获取目标容器管理工具,包括:
10、获取初始容器编排工具,所述初始容器编排工具用于管理多个物理机上的容器;
11、确定所述初始容器编排工具中的管理节点和工作节点;
12、确定所述管理节点的调度组件,所述调度组件用于判断所述工作节点中的gpu资源是否满足调度需求;
13、确定所述工作节点中的上报组件,所述上报组件用于上报现有gpu资源;
14、基于所述调度组件以及所述上报组件,对所述初始容器编排工具进行配置,获取目标容器管理工具。
15、通过采用上述技术方案,获取初始容器编排工具,初始容器编排工具用于管理多个物理机上的容器;确定初始容器编排工具中的管理节点和工作节点;确定管理节点的调度组件,调度组件用于判断所述工作节点中的gpu资源是否满足调度需求;确定工作节点中的上报组件,上报组件用于上报现有gpu资源;基于调度组件以及上报组件,对初始容器编排工具进行配置,获取目标容器管理工具。使得目标容器管理工具可以让多个容器共享一块gpu资源,进而降低了gpu资源的浪费。
16、在一种可能实现的方式中,一种基于容器的gpu分配方法,还包括:获取gpu调度策略,所述gpu调度策略包括统一分配请求和分散分配请求;
17、基于所述gpu调度策略以及所述容器调度信息,将网页应用容器调度至对应的物理机中,确定目标物理机。
18、通过采用上述技术方案,获取gpu调度策略,gpu调度策略包括统一分配请求和分散分配请求;基于gpu调度策略以及所述容器调度信息,将网页应用容器调度至对应的物理机中,确定目标物理机。根据申请显存的大小以及gpu调度策略将容器调度至有足够资源的物理机,可让多个容器共享一块gpu资源。
19、在一种可能实现的方式中,获取应用镜像,包括:
20、获取基础镜像;
21、基于所述基础镜像,确定基础容器;
22、获取环境配置需求,所述环境配置需求包括网页应用所需的环境配置;
23、基于所述环境配置需求,在所述基础容器中创建并配置网页应用,确定环境容器;
24、基于所述环境容器,获取应用镜像。
25、通过采用上述技术方案,获取基础镜像,基于基础镜像,确定基础容器;获取环境配置需求,环境配置需求包括网页应用所需的环境配置;基于环境配置需求,在基础容器中创建并配置网页应用,确定环境容器;基于环境容器,获取应用镜像。通过在基础镜像创建的容器内配置网页应用所需的容器,并将配置好的容器导出成新的镜像,使用户后续使用时直接获得配置好的环境,无需进行其他环境配置,提高了容器的实用性和便利性。
26、在一种可能实现的方式中,一种基于容器的gpu分配方法,还包括:
27、基于所述目标容器管理工具,确定网页应用容器的访问id和ip地址;
28、基于所述代理服务,将所述访问id以及所述ip地址写入代理数据库中,确定代理数据;
29、基于所述代理数据,确定代理返回定位,所述代理返回定位用于使前端界面的访问请求转发至代理服务中。
30、通过采用上述技术方案,基于目标容器管理工具,确定网页应用容器的访问id和ip地址;基于代理服务,将访问id以及ip地址写入代理数据库中,确定代理数据;基于代理数据,确定代理返回定位,代理返回定位用于使前端界面的访问请求转发至代理服务中。通过代理返回定位将前端界面对容器的访问请求转发至代理服务中,进而实现动态转发的功能。
31、在一种可能实现的方式中,一种基于容器的gpu分配方法,还包括:
32、获取前端请求,所述前端请求为前端界面发出的访问请求,包括访问id;
33、基于所述前端请求、所述代理返回定位以及所述代理数据,确定目标ip;
34、基于所述目标ip,确定目标网页应用容器;
35、基于所述目标网页应用容器以及所述前端请求,确定请求结果。
36、通过采用上述技术方案,获取前端请求,前端请求为前端界面发出的访问请求,包括访问id;基于前端请求、代理返回定位以及代理数据,确定目标ip;基于目标ip,确定目标网页应用容器;基于目标网页应用容器以及所述前端请求,确定请求结果。前端页面在请求时无法直接找到对应的ip地址,通过代理服务区分请求,并将访问请求转发至对应的容器内处理,实现了信息动态转发的功能。
37、在一种可能实现的方式中,基于所述前端请求、所述代理返回定位以及所述代理数据,确定目标ip,包括:
38、基于所述代理返回定位,将所述前端请求转发至代理服务;
39、基于所述前端请求以及所述代理服务,从代理数据中确定目标ip。
40、通过采用上述技术方案,基于代理返回定位,将前端请求转发至代理服务;基于前端请求以及代理服务,从代理数据中确定目标ip。通过代理服务确定ip地址,能够提高请求转发的准确性。
41、第二方面,本技术提供一种基于容器的gpu分配装置,采用如下的技术方案:
42、一种基于容器的gpu分配装置,包括一种基于容器的gpu分配装置,包括:
43、目标容器管理工具获取模块,用于获取目标容器管理工具,所述目标容器管理工具为可实现gpu资源共享的容器管理工具;
44、代理服务创建模块,用于在所述目标容器管理工具内创建代理服务,所述代理服务用于代理外部对前端界面的访问;
45、应用镜像获取模块,用于获取应用镜像,所述应用镜像中包括网页应用镜像、gpu镜像以及环境配置;
46、容器调度信息获取模块,用于获取容器调度信息,所述容器调度信息包括若干个资源类型以及每个资源类型的需求参数;
47、网页应用容器确定模块,用于基于所述目标容器管理工具、所述代理服务、所述应用镜像以及所述容器调度信息,确定网页应用容器。
48、在一种可能实现的方式中,当目标容器管理工具获取模块获取目标容器管理工具时,具体用于:
49、获取初始容器编排工具,所述初始容器编排工具用于管理多个物理机上的容器;
50、确定所述初始容器编排工具中的管理节点和工作节点;
51、确定所述管理节点的调度组件,所述调度组件用于判断所述工作节点中的gpu资源是否满足调度需求;
52、确定所述工作节点中的上报组件,所述上报组件用于上报现有gpu资源;
53、基于所述调度组件以及所述上报组件,对所述初始容器编排工具进行配置,获取目标容器管理工具。
54、在一种可能实现的方式中,一种基于容器的gpu分配装置,还包括:
55、gpu调度策略获取模块,用于获取gpu调度策略,所述gpu调度策略包括统一分配请求和分散分配请求;
56、目标物理机确定模块,用于基于所述gpu调度策略以及所述容器调度信息,将网页应用容器调度至对应的物理机中,确定目标物理机。
57、在一种可能实现的方式中,当应用镜像获取模块获取应用镜像时,具体用于:
58、获取基础镜像;
59、基于所述基础镜像,确定基础容器;
60、获取环境配置需求,所述环境配置需求包括网页应用所需的环境配置;
61、基于所述环境配置需求,在所述基础容器中创建并配置网页应用,确定环境容器;
62、基于所述环境容器,获取应用镜像。
63、在一种可能实现的方式中,一种基于容器的gpu分配装置,还包括:
64、容器id及ip确定模块,用于基于所述目标容器管理工具,确定网页应用容器的访问id和ip地址;
65、代理数据确定模块,用于基于所述代理服务,将所述访问id以及所述ip地址写入代理数据库中,确定代理数据;
66、代理返回定位确定模块,用于基于所述代理数据,确定代理返回定位,所述代理返回定位用于使前端界面的访问请求转发至代理服务中。
67、在一种可能实现的方式中,一种基于容器的gpu分配装置,还包括:
68、确定请求获取模块,用于获取前端请求,所述前端请求为前端界面发出的访问请求,包括访问id;
69、目标ip确定模块,用于基于所述前端请求、所述代理返回定位以及所述代理数据,确定目标ip;
70、目标网页应用容器确定模块,用于基于所述目标ip,确定目标网页应用容器;
71、请求结果确定模块,用于基于所述目标网页应用容器以及所述前端请求,确定请求结果。
72、在一种可能实现的方式中,当目标ip确定模块基于所述前端请求、所述代理返回定位以及所述代理数据,确定目标ip时,具体用于:
73、基于所述代理返回定位,将所述前端请求转发至代理服务;
74、基于所述前端请求以及所述代理服务,从代理数据中确定目标ip。
75、通过采用上述技术方案,获取目标容器管理工具,目标容器管理工具为可实现gpu资源共享的容器管理工具;在目标容器管理工具内创建代理服务;获取应用镜像,应用镜像中包括网页应用镜像、gpu镜像以及环境配置;获取容器调度信息,容器调度信息包括若干个资源类型以及每个资源类型的需求参数。目标容器管理工具根据容器调度信息,结合应用镜像以及代理服务创建网页应用容器,使得网页应用容器可通过代理服务将外部请求动态转发至容器内,实现信息交互,进而在容器内实现模型开发。
76、第三方面,本技术提供一种电子设备,采用如下的技术方案:
77、一种电子设备,该电子设备包括:
78、至少一个处理器;
79、存储器;
80、至少一个应用程序,其中所述至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述基于容器的gpu分配方法。
81、第四方面,本技术提供一种计算机可读存储介质,采用如下的技术方案:
82、一种计算机可读存储介质,包括:存储有能够被处理器加载并执行上述基于容器的gpu分配方法的计算机程序。
83、综上所述,本技术包括以下至少一种有益技术效果:
84、1.获取目标容器管理工具,目标容器管理工具为可实现gpu资源共享的容器管理工具;在目标容器管理工具内创建代理服务;获取应用镜像,应用镜像中包括网页应用镜像、gpu镜像以及环境配置;获取容器调度信息,容器调度信息包括若干个资源类型以及每个资源类型的需求参数。目标容器管理工具根据容器调度信息,结合应用镜像以及代理服务创建网页应用容器,使得网页应用容器可通过代理服务将外部请求动态转发至容器内,实现信息交互,进而在容器内实现模型开发。
85、2.获取初始容器编排工具,初始容器编排工具用于管理多个物理机上的容器;确定初始容器编排工具中的管理节点和工作节点;确定管理节点的调度组件,调度组件用于判断所述工作节点中的gpu资源是否满足调度需求;确定工作节点中的上报组件,上报组件用于上报现有gpu资源;基于调度组件以及上报组件,对初始容器编排工具进行配置,获取目标容器管理工具。使得目标容器管理工具可以让多个容器共享一块gpu资源,进而降低了gpu资源的浪费。
86、3.获取前端请求,前端请求为前端界面发出的访问请求,包括访问id;基于前端请求、代理返回定位以及代理数据,确定目标ip;基于目标ip,确定目标网页应用容器;基于目标网页应用容器以及所述前端请求,确定请求结果。前端页面在请求时无法直接找到对应的ip地址,通过代理服务区分请求,并将访问请求转发至对应的容器内处理,实现了信息动态转发的功能。