CN113342461B - 一种设备挂载方法、装置、计算机设备及可读存储介质 - Google Patents
一种设备挂载方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN113342461B CN113342461B CN202110598938.8A CN202110598938A CN113342461B CN 113342461 B CN113342461 B CN 113342461B CN 202110598938 A CN202110598938 A CN 202110598938A CN 113342461 B CN113342461 B CN 113342461B
- Authority
- CN
- China
- Prior art keywords
- equipment
- mounting
- service
- container
- user
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种设备挂载方法、装置、计算机设备及可读存储介质,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
Description
技术领域
本公开涉及互联网技术领域,具体而言,涉及一种设备挂载方法、装置、计算机设备及可读存储介质。
背景技术
随着科学技术的不断进步,互联网技术也得到了长足的发展,用户使用可以通过互联网可以了解到更多的知识,接触到更多的内容,同时也可以实现更多的功能,给用户的生活和学习带来了极大的便利。目前互联网企业生产环境的应用部署所经历的过程,大致可分三个阶段:物理机部署、虚拟机部署和容器化部署,其中容器化部署由于消耗小、许可成本低、可移植性、部署快速、容器管理和自动化越来越好等优点,已经得到了广泛的应用。
企业生产环境的应用部署,其中主要需要通过设备挂载最终实现应用部署,以Kubernetes环境下设备挂载为例,大多是通过配置特权容器,以挂载宿主主机下的所有设备,或者是通过Volume Mount(卷装载)的方式直接挂载设备,或者是通过Device Plugin(设备插件)的方式告知Container Runtime(容器运行时)需要挂载的设备标识(Identitydocument,ID),Container Runtime配置相关设备权限并挂载设备,但是,上述方式中,特权容器权限过大,并且容器内无法做到设备使用隔离,大部分挂载设备会有权限问题,并且挂载设备是随机指定的,设备及服务间存在亲缘性的问题,易造成极大的性能损耗。
发明内容
本公开实施例至少提供一种设备挂载方法、装置、计算机设备及可读存储介质。
第一方面,本公开实施例提供了一种设备挂载方法,所述方法包括:
拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;
根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备;
将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;
基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
这样,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
一种可选的实施方式中,在所述拦截响应于服务部署请求的服务容器创建请求之前,所述方法包括:
获取用户设置有自定义设备参数的服务部署请求。
一种可选的实施方式中,所述将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中,包括:
初始化所述服务容器创建请求中的配置映射文件;
将所述至少一个挂载设备的设备信息添加至初始化后的配置映射文件中。
这样,通过在初始化的配置映射文件中添加设备信息,可以添加自定义的设备调度规则,避免随机选择挂载设备,提高设备及服务间的亲缘性。
一种可选的实施方式中,所述方法还包括:
创建新的包括至少一个容器的容器组;
对所述容器组添加设备挂载的环境变量,其中,所述环境变量指向所述配置映射文件。
这样,通过为容器组添加指向添加有挂载设备信息的配置映射文件,可以按需扩展自定义场景的设备调度使用策略,提高资源利用率。
一种可选的实施方式中,所述基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中,包括:
基于添加设备信息后的配置映射文件和所述环境变量,将每个挂载设备挂载到新创建的容器组中对应的容器中。
一种可选的实施方式中,所述方法还包括:
通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息;
根据更新的每个设备的状态信息和监听到的已有容器组对设备的使用情况,确定处于可用状态的至少一个可用在线设备。
一种可选的实施方式中,所述通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息,包括:
对各设备进行注册;
通过设备管理器与设备的软件开发工具包之间的连接,监测每个设备的上线事件和/或下线事件;
根据监测到的上线事件和/或下线事件,更新存储的、对应设备的设备状态信息。
这样,通过设备软件开发工具包之间的连接,可在设备重新上线时自动感知并更新设备状态,实现对设备的实时监控和实时状态热更新。
第二方面,本公开实施例还提供一种设备挂载装置,所述装置包括:
请求拦截模块,用于拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;
设备确定模块,用于根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备;
文件配置模块,用于将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;
设备挂载模块,用于基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
一种可选的实施方式中,所述装置还包括:
请求获取模块,用于获取用户设置有自定义设备参数的服务部署请求。
一种可选的实施方式中,所述文件配置模块具体用于:
初始化所述服务容器创建请求中的配置映射文件;
将所述至少一个挂载设备的设备信息添加至初始化后的配置映射文件中。
一种可选的实施方式中,所述装置还包括变量添加模块,所述变量添加模块用于:
创建新的包括至少一个容器的容器组;
对所述容器组添加设备挂载的环境变量,其中,所述环境变量指向所述配置映射文件。
一种可选的实施方式中,所述设备挂载模块具体用于:
基于添加设备信息后的配置映射文件和所述环境变量,将每个挂载设备挂载到新创建的容器组中对应的容器中。
一种可选的实施方式中,所述装置还包括设备监测模块,所述设备监测模块用于:
通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息;
根据更新的每个设备的状态信息和监听到的已有容器组对设备的使用情况,确定处于可用状态的至少一个可用在线设备。
一种可选的实施方式中,所述设备监测模块在用于通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息时,具体用于:
对各设备进行注册;
通过设备管理器与设备的软件开发工具包之间的连接,监测每个设备的上线事件和/或下线事件;
根据监测到的上线事件和/或下线事件,更新存储的、对应设备的设备状态信息。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时可以执行上述的设备挂载方法的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行上述得设备挂载方法的步骤。
本公开实施例提供的设备挂载方法、装置、计算机设备及可读存储介质,通过拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备;将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
这样,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开实施例提供的一种设备挂载方法的流程图;
图2为本公开实施例提供的设备调度机制示意图;
图3为本公开实施例提供的另一种设备挂载方法的流程图;
图4为本公开实施例提供的设备注册及实时动态更新机制的示意图;
图5为本公开实施例提供的一种设备挂载装置的示意图之一;
图6为本公开实施例提供的一种设备挂载装置的示意图之二;
图7示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,目前在企业生产环境的应用部署中,其主要需要通过设备挂载最终实现应用部署,以Kubernetes环境下设备挂载为例,大多是通过配置特权容器,以挂载宿主主机下的所有设备,或者是通过Volume Mount(卷装载)的方式直接挂载设备,或者是通过Device Plugin(设备插件)的方式告知Container Runtime(容器运行时)需要挂载的设备ID,Container Runtime配置相关设备权限并挂载设备,但是,上述方式中,特权容器权限过大,并且容器内无法做到设备使用隔离,大部分挂载设备会有权限问题,并且挂载设备是随机指定的,设备及服务间存在亲缘性的问题,易造成极大的性能损耗。
基于上述研究,本公开提供了一种设备挂载方法,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种设备挂载方法进行详细介绍,本公开实施例所提供的设备挂载方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该设备挂载方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为服务器为例对本公开实施例提供的设备挂载方法加以说明。
请参阅图1,图1为本公开实施例提供的一种设备挂载方法的流程图。如图1中所示,所述方法包括:
S101:拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数。
该步骤中,在用户需要进行服务部署时,可以根据服务需要发送服务部署请求,从而生成对应服务容器创建请求,以根据所述服务部署请求进行服务容器的创建,以便后续进行设备挂载并实现服务部署,但生成的所述服务容器创建请求中,大多是随机选取设备ID挂载到服务,因此,为避免随机挂载的现象,本公开实时方式可以对所述服务容器创建请求进行拦截。
示例性的,请参阅图2,图2为本公开实施例提供的设备调度机制示意图,如图2中所示,以Kubernetes环境下设备挂载为例,可以通过准入控制器Admission Controller中的变异准入网络钩子Mutating Admission Webhook拦截所述服务容器创建请求。
其中,所述服务部署请求中包括用户设置的自定义设备参数,在具体实施例中,用户可以通过添加注解annotations的形式,来为此次服务部署选择需要部署的设备,如通过选择分布式的集群管理系统kubelet各节点中设备编号的形式来选择设备。
S102:根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备。
该步骤中,在拦截到所述服务容器创建请求后,可以通过获取监测到的至少一个可用在线设备,结合所述自定义设备参数,来从所述至少一个可用在线设备中选择符合此次服务部署需求,以及用户需求的至少一个挂载设备。
其中,监测的至少一个可用在线设备,可以是通过实时对kubelet各节点中注册的设备进行监测,以确定的在线设备,例如在线状态的设备、未使用的设备、重新上线的设备。
S103:将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中。
该步骤中,在确定出所述至少一个挂载设备后,即可以认为所述至少一个挂载设备才是针对此次服务部署请求所对应的服务部署所合适的设备,因此,可以将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中。
其中,所述服务容器创建请求的配置映射文件,可以是响应于服务部署请求时,生成的所述服务容器创建请求中所配置的配置映射文件,这样,添加设备信息可以是对配置映射文件中原有的随机配置的设备信息进行更新,还是可以重新为所述服务容器创建请求配置一个配置映射文件,在新配置的配置映射文件添加设备信息即可。
示例性的,如图2中所示,在Kubernetes环境下,可以根据调用调度程序扩展器Scheduler Extender,Scheduler Extender可以将根据annotations选择的设备及监测的设备使用情况,来综合选择出至少一个挂载设备,从而将至少一个挂载设备的设备信息,例如设备编号,注入到配置映射文件configmap里。
S104:基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
该步骤中,在得到添加设备信息后的配置映射文件后,即可结合所述服务容器创建请求,进行设备挂载。
其中,所述服务容器创建请求,可以是拦截的服务容器创建请求,也可以是针对此次服务部署,根据拦截的服务容器创建请求的和重新部署的信息所生成的新的服务容器创建请求。
示例性的,如图2中所示,以Kubernetes环境下设备挂载为例,在Kubelet感知到节点有新的容器pod需要部署需求时,可以启动docker(一个开源的应用容器引擎)容器,使用设备相关的容器运行时Container Runtime注入prehook到runc spec,然后启动runc,通过Runc在prehook过程调用设备相关的容器运行时挂钩Container Runtime Hook,ContainerRuntime Hook调用设备挂载服务Container Runtime Cli,将对应的至少一个挂载设备挂载到相应的容器里。
本公开实施例提供的设备挂载方法,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
请参阅图3,图3为本公开实施例提供的另一种设备挂载方法的流程图。如图3中所示,所述方法包括:
S301:获取用户设置有自定义设备参数的服务部署请求。
该步骤中,在用户发送配置有自定义设备参数的服务部署请求后,可以接收该请求。
其中,自定义设备参数,可以包括在布式的集群管理系统kubelet中已经注册的设备的编号等信息,也可以是用户希望配置的需要使用的设备一些技术参数,例如频率、内存、算力等性能参数。
S302:拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数。
S303:根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备。
S304:将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中。
S305:基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
其中,步骤S302至步骤S305的描述可以参考步骤S101至步骤S104的描述,并且可以达到相同的技术效果和解决相同的技术问题,在此不再赘述。
在一些可能的实施例中,步骤S304包括:
初始化所述服务容器创建请求中的配置映射文件;将所述至少一个挂载设备的设备信息添加至初始化后的配置映射文件中。
该步骤中,无论是使用拦截的所述服务容器创建请求中的原有的配置映射文件,还是为所述服务容器创建请求新配置的配置映射文件,可以将该配置映射文件初始化,例如配置映射文件中的设备ID等,然后将选择出的挂载设备的设备信息添加至初始化后的配置映射文件中。
示例性的,如图2中所示,在Kubernetes环境下,可以通过调用的MutatingAdmission Webhook初始化配置映射文件,以初始化配置映射文件中记录的、随机选取的设备ID,然后可以通过Scheduler Extender将选择的至少一个挂载设备,的设备信息,例如设备编号等,注入到配置映射文件configmap里。
在一些可能的实施例中,所述方法还包括:
创建新的包括至少一个容器的容器组;对所述容器组添加设备挂载的环境变量,其中,所述环境变量指向所述配置映射文件。
该步骤中,在感知到须有进行服务部署后,即有容器需要部署时,可以新建容器组,并对所述容器组添加用来指定操作系统运行环境的一些参数,如临时文件夹位置和系统文件夹位置等,并且所述环境变量指向所述配置映射文件,例如文件或者文件夹的路径是所述配置映射文件,以供在使用时可以调用所述配置映射文件。
示例性的,如图2中所示,在Kubernetes环境下,Kubelet感知到节点有新的容器pod需要部署,可以根据服务部署需要,来创建包括至少一个容器的容器组,例如容器的数量和需要的挂载设备相同,通过调用的Mutating Admission Webhook来给pod添加设备挂载的环境变量,并指向配置映射文件configmap。
相应的,在一些可能的实施例中,步骤S305包括:
基于添加设备信息后的配置映射文件和所述环境变量,将每个挂载设备挂载到新创建的容器组中对应的容器中。
该步骤中,根据添加设备信息后的配置映射文件和指向该配置文件的所述环境变量,可以为每个挂载设备对应的容器设置对应参数,并进行设备挂载。
在一些可能的实施例中,所述方法还包括:
通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息;根据更新的每个设备的状态信息和监听到的已有容器组对设备的使用情况,确定处于可用状态的至少一个可用在线设备。
该步骤中,为了实现动态的监测可用设备,可以通过设备管理器与设备的软件开发工具包之间的连接,直接以底层数据包的形式对设备进行监测,以感知设备的上线事件和/或下线事件,并通过对应的设备状态信息和已有设备的使用情况,来更新已注册设备的状态,从而确定出处于可用状态的至少一个可用在线设备。
进一步的,在一些可能的实施例中,所述通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息,包括:
对各设备进行注册;通过设备管理器与设备的软件开发工具包之间的连接,监测每个设备的上线事件和/或下线事件;根据监测到的上线事件和/或下线事件,更新存储的、对应设备的设备状态信息。
示例性的,请参阅图4,图4为本公开实施例提供的设备注册及实时动态更新机制的示意图,如图4中所示,在Kubernetes环境下,可以调用设备管理器Device plugin,Device plugin通过套接字socket连接设备的软件开发工具包SDK的事件服务,实时获取设备的上线事件和/或下线事件,然后通过Device plugin向kubelet注册设备调度资源,并将设备状态信息通过API Server(api服务器接口)更新到kubernetes里,Kubelet向apiserver注册设备调度资源,并通过socket监听device plugin,Scheduler Extender通过资源变化监听工具Informer来监听设备资源变化,同时监听Pod资源,获取Pod对设备的使用情况,将设备实际在线及使用状态实时更新到内存里,等待服务调度时进行分配。
本公开实施例提供的设备挂载方法,通过获取用户的服务部署请求,并拦截与服务部署请求对应的服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与设备挂载方法对应的设备挂载装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述设备挂载方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图5至图6,图5为本公开实施例提供的一种设备挂载装置的示意图之一,图6为本公开实施例提供的一种设备挂载装置的示意图之二。
如图5中所示,本公开实施例提供的设备挂载装置500包括:
请求拦截模块510,用于拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;
设备确定模块520,用于根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备;
文件配置模块530,用于将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;
设备挂载模块540,用于基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中。
一种可选的实施方式中,如图6中所示,设备挂载装置500还包括:
请求获取模块550,用于获取用户设置有自定义设备参数的服务部署请求。
一种可选的实施方式中,所述文件配置模块530具体用于:
初始化所述服务容器创建请求中的配置映射文件;
将所述至少一个挂载设备的设备信息添加至初始化后的配置映射文件中。
一种可选的实施方式中,如图6中所示,设备挂载装置500还包括变量添加模块560,所述变量添加模块560用于:
创建新的包括至少一个容器的容器组;
对所述容器组添加设备挂载的环境变量,其中,所述环境变量指向所述配置映射文件。
一种可选的实施方式中,所述设备挂载模块540具体用于:
基于添加设备信息后的配置映射文件和所述环境变量,将每个挂载设备挂载到新创建的容器组中对应的容器中。
一种可选的实施方式中,如图6中所示,设备挂载装置500还包括设备监测模块570,所述设备监测模块570用于:
通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息;
根据更新的每个设备的状态信息和监听到的已有容器组对设备的使用情况,确定处于可用状态的至少一个可用在线设备。
一种可选的实施方式中,所述设备监测模块570在用于通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息时,具体用于:
对各设备进行注册;
通过设备管理器与设备的软件开发工具包之间的连接,监测每个设备的上线事件和/或下线事件;
根据监测到的上线事件和/或下线事件,更新存储的、对应设备的设备状态信息。
本公开实施例提供的设备挂载装置,通过拦截服务容器创建请求,根据用户的自定义设备参数和可用在线设备选择挂载设备,并使用相应的配置映射文件,来在新创建的容器中挂载选择的挂载设备,可以按需扩展和添加自定义场景的设备调度使用策略和设备调度规则,根据用户自定的参数选择相应的挂载设备,主动避免设备及服务间亲缘性带来的性能问题,极大的降低性能损耗。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1和图3中所示的设备挂载方法,本公开实施例还提供了一种计算机设备700,如图7所示,为本公开实施例提供的计算机设备700结构示意图,包括:处理器710、存储器720、和总线730。所述存储器720存储有所述处理器710可执行的机器可读指令,当计算机设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,所述机器可读指令被所述处理器710执行时可以执行如图1和图3中所示的设备挂载方法的步骤。
上述指令的具体执行过程可以参考本公开实施例中所述的设备挂载方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的设备挂载方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
其中,计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种设备挂载方法,其特征在于,所述方法包括:
拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;
根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备,其中,所述至少一个挂载设备与所述服务部署请求和用户需求相对应;
将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;
基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中,其中,所述服务容器创建请求包括拦截的服务容器创建请求或者针对此次服务部署,根据拦截的服务容器创建请求的和重新部署的信息所生成的新的服务容器创建请求。
2.根据权利要求1所述的方法,其特征在于,在所述拦截响应于服务部署请求的服务容器创建请求之前,所述方法包括:
获取用户设置有自定义设备参数的服务部署请求。
3.根据权利要求1所述的方法,其特征在于,所述将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中,包括:
初始化所述服务容器创建请求中的配置映射文件;
将所述至少一个挂载设备的设备信息添加至初始化后的配置映射文件中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建新的包括至少一个容器的容器组;
对所述容器组添加设备挂载的环境变量,其中,所述环境变量指向所述配置映射文件。
5.根据权利要求4所述的方法,其特征在于,所述基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中,包括:
基于添加设备信息后的配置映射文件和所述环境变量,将每个挂载设备挂载到新创建的容器组中对应的容器中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息;
根据更新的每个设备的状态信息和监听到的已有容器组对设备的使用情况,确定处于可用状态的至少一个可用在线设备。
7.根据权利要求6所述的方法,其特征在于,所述通过设备管理器与设备的软件开发工具包之间的连接,更新注册的每个设备的包括上线事件和/或下线事件的设备状态信息,包括:
对各设备进行注册;
通过设备管理器与设备的软件开发工具包之间的连接,监测每个设备的上线事件和/或下线事件;
根据监测到的上线事件和/或下线事件,更新存储的、对应设备的设备状态信息。
8.一种设备挂载装置,其特征在于,所述装置包括:
请求拦截模块,用于拦截响应于服务部署请求的服务容器创建请求,其中,所述服务部署请求中包括用户设置的自定义设备参数;
设备确定模块,用于根据所述自定义设备参数以及监测的至少一个可用在线设备,确定所述至少一个可用在线设备中待挂载的至少一个挂载设备,其中,所述至少一个挂载设备与所述服务部署请求和用户需求相对应;
文件配置模块,用于将所述至少一个挂载设备的设备信息添加至所述服务容器创建请求的配置映射文件中;
设备挂载模块,用于基于添加设备信息后的配置映射文件和所述服务容器创建请求,将每个挂载设备挂载到新创建的容器组中对应的容器中,其中,所述服务容器创建请求包括拦截的服务容器创建请求或者针对此次服务部署,根据拦截的服务容器创建请求的和重新部署的信息所生成的新的服务容器创建请求。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任意一项所述的设备挂载方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的设备挂载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598938.8A CN113342461B (zh) | 2021-05-31 | 2021-05-31 | 一种设备挂载方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598938.8A CN113342461B (zh) | 2021-05-31 | 2021-05-31 | 一种设备挂载方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342461A CN113342461A (zh) | 2021-09-03 |
CN113342461B true CN113342461B (zh) | 2023-04-07 |
Family
ID=77472338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110598938.8A Active CN113342461B (zh) | 2021-05-31 | 2021-05-31 | 一种设备挂载方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342461B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237626B (zh) * | 2021-12-22 | 2024-06-21 | 四川新网银行股份有限公司 | 一种非侵入式动态编辑jvm参数的方法、系统及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589734A (zh) * | 2015-12-15 | 2016-05-18 | 国云科技股份有限公司 | 一种自定义模板创建应用的方法 |
CN110287029A (zh) * | 2019-06-27 | 2019-09-27 | 中国—东盟信息港股份有限公司 | 一种基于kubernetes容器资源动态调整的方法 |
CN111367615A (zh) * | 2018-12-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 方便容器实例调度的方法、装置、设备及存储介质 |
CN111399855A (zh) * | 2020-03-09 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种基于容器技术的自动化应用实例发布方法 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496987B2 (en) * | 2016-09-13 | 2019-12-03 | Verizon Patent And Licensing Inc. | Containerization of network services |
-
2021
- 2021-05-31 CN CN202110598938.8A patent/CN113342461B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589734A (zh) * | 2015-12-15 | 2016-05-18 | 国云科技股份有限公司 | 一种自定义模板创建应用的方法 |
CN111367615A (zh) * | 2018-12-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 方便容器实例调度的方法、装置、设备及存储介质 |
CN110287029A (zh) * | 2019-06-27 | 2019-09-27 | 中国—东盟信息港股份有限公司 | 一种基于kubernetes容器资源动态调整的方法 |
CN111399855A (zh) * | 2020-03-09 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种基于容器技术的自动化应用实例发布方法 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342461A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Varghese et al. | Challenges and opportunities in edge computing | |
CN109976774B (zh) | 区块链节点部署方法、装置、设备和存储介质 | |
CN105354076B (zh) | 一种应用部署方法及装置 | |
Shiraz et al. | Energy efficient computational offloading framework for mobile cloud computing | |
Shiraz et al. | A review on distributed application processing frameworks in smart mobile devices for mobile cloud computing | |
CN108459911B (zh) | 用于多租户中间件云服务的方法和系统 | |
US20140289413A1 (en) | Automatic resource balancing for multi-device applications | |
US20100287280A1 (en) | System and method for cloud computing based on multiple providers | |
CN111694649A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN108572833A (zh) | 自动应用更新 | |
CN112506669A (zh) | 任务分配方法和装置、存储介质及电子设备 | |
CN111880936A (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
CN106371889B (zh) | 一种调度镜像的高性能集群系统实现方法及装置 | |
CN112231049A (zh) | 基于kubernetes的计算设备共享方法、装置、设备及存储介质 | |
CN110333939B (zh) | 任务混合调度方法、装置、调度服务器及资源服务器 | |
CN112579622B (zh) | 业务数据的处理方法、装置及设备 | |
CN110635944A (zh) | 一种集群网络配置方法、装置及电子设备和存储介质 | |
CN113204428A (zh) | 资源调度方法、装置、电子设备以及计算机可读存储介质 | |
CN108073423A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN107086937B (zh) | 一种监控方法及设备 | |
LiWang et al. | Multi-task offloading over vehicular clouds under graph-based representation | |
CN114615340A (zh) | 一种请求处理方法、装置、计算机设备和存储装置 | |
CN113342461B (zh) | 一种设备挂载方法、装置、计算机设备及可读存储介质 | |
Kim et al. | Adaptive job allocation scheduler based on usage pattern for computing offloading of IoT | |
US20130238673A1 (en) | Information processing apparatus, image file creation method, and storage medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |