本发明涉及一种调度方法及系统,尤其是一种适于kubernetes的多核组加速卡的调度方法及系统。
背景技术:
1、kubernetes是目前最火热的容器编排技术,其默认支持容器使用时对cpu、内存资源的调度,但对异构设备在kubernetes中的调度使用,需要设备厂商基于kubernetes的device plugin接口进行插件的开发。
2、目前,基于device plugin接口插件开发的调度技术,都是单独调度一个操作系统层面的独立设备进容器,但由于多核组加速卡的特性,其在物理层面是一张加速卡,但在操作系统层面的表现为多个设备,因此,需要将在操作系统层面表现的同属于一个物理加速卡的多个设备(device)组合绑定调度,才能在容器中正常使用当前的多核组加速卡。
3、由上述说明可知,现有技术中,在kubernetes中调度时,都是以单个device为单位进行的,在容器内也是以单个device出现,但对于物理上是一个独立设备,但在操作系统中,是以多个device来运行的多核组加速卡,单独调度一个device进容器,将会发生存在于不同容器内的设备在接受用户命令时会互相干扰,进而会造成用户任务失败,也即目前在kubernetes中调度时,无法满足对多核组加速度的调度。
技术实现思路
1、本发明的目的是克服现有技术中存在的不足,提供一种适于kubernetes的多核组加速卡的调度方法及系统,其能有效实现多核组加速卡在kubernetes中的调度。
2、按照本发明提供的技术方案,一种适于kubernetes的多核组加速卡的调度方法,所述调度方法包括:
3、在kubernetes中,配置适于多核组加速卡的device plugin接口插件,以利用所述device plugin接口插件获取对应多核组加速卡内所有核组的物理卡id,并将服务器节点上的所有多核组加速卡相应的物理卡id注册到kubernetes的一节点node内;
4、获取并解析用户pod配置文件,当所解析的用户pod配置文件包含加速卡资源需求时,kubernetes基于用户pod配置文件中加速卡资源需求从节点node内已注册的加速卡资源池内取出等量未分配加速卡id,并将所取出未分配加速卡id传递给device plugin接口插件;
5、基于所接收加速卡id,device plugin接口插件查询对应所接收加速卡id的index信息,并将所述查询所有的index信息传递给所述节点node的kubelet;
6、所述节点node的kubelet将index信息以环境变量形式传递至与所述deviceplugin接口插件适配的docker runtime组件,docker runtime组件接收到环境变量及其对应的index信息时,docker runtime组件在创建容器时,把index信息中序号对应的device挂载到容器内的/dev下,同时docker runtime组件将device所需的driverapi同时映射进容器。
7、对多核组加速卡内所有核组的物理卡id,所述device plugin接口插件通过管理库获取。
8、对用户pod配置文件包含加速卡资源需求,所述加速卡资源需求包括加速卡的数量,其中,所述加速卡的数量为不小于1的整数倍。
9、对接收加速卡id的index信息,device plugin接口插件通过管理库查询获取。
10、一种适于kubernetes的多核组加速卡的调度系统,包括调度处理器,其中,对多核组加速卡,调度处理器采用上述所述的调度方法调度,以在kubernetes中支持对所述多核组加速卡的调度使用。
11、本发明的优点:能有效实现多核组加速卡在kubernetes中的调度,避免造成用户任务的失败;同时,对多核组加速卡调度时,可降低用户在描述kubernetes资源时的配置复杂性,用户只需在用户pod配置文件内描述所需的加速卡数即可,无需计算所需的device数。
1.一种适于kubernetes的多核组加速卡的调度方法,其特征是,所述调度方法包括:
2.根据权利要求1所述的适于kubernetes的多核组加速卡的调度方法,其特征是:对多核组加速卡内所有核组的物理卡id,所述device plugin接口插件通过管理库获取。
3.根据权利要求1所述的适于kubernetes的多核组加速卡的调度方法,其特征是:对用户pod配置文件包含加速卡资源需求,所述加速卡资源需求包括加速卡的数量,其中,所述加速卡的数量为不小于1的整数倍。
4.根据权利要求1所述的适于kubernetes的多核组加速卡的调度方法,其特征是:对接收加速卡id的index信息,device plugin接口插件通过管理库查询获取。
5.一种适于kubernetes的多核组加速卡的调度系统,其特征是,包括调度处理器,其中,对多核组加速卡,调度处理器采用上述权利要求1~权利要求4中任一项所述的调度方法调度,以在kubernetes中支持对所述多核组加速卡的调度使用。