容器调度方法、装置、电子设备及可读存储介质与流程

文档序号:19250042发布日期:2019-11-27 20:05阅读:170来源:国知局
容器调度方法、装置、电子设备及可读存储介质与流程

本申请涉及容器集群技术,尤其涉及一种容器调度方法、装置、电子设备及可读存储介质。



背景技术:

加密锁是为软件开发商提供的一种智能型的具有软件保护功能的工具,它包含一个安装在计算机并行口或usb(universalserialbus,通用串行总线)口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。

目前,在容器集群中使用加密锁时,需要用户(如管理员)手动根据集群中主机的加密锁插入情况为插有加密锁的主机添加对应的标签(该标签用于标识该主机插有加密锁以及标识加密锁的型号),以便能够根据各主机的标签选择容器运行的主机,其实现效率较低,且容易出现错误。



技术实现要素:

有鉴于此,本申请提供一种容器调度方法、装置、电子设备及可读存储介质。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种容器调度方法,包括:

获取主机集群中各主机的加密锁状态;其中,主机集群中各主机的加密锁状态由各主机上部署的加密锁检测程序检测确定;

当需要进行容器调度时,根据待调度容器申请的加密锁型号以及所述主机集群中各主机的加密锁状态,将所述待调度容器调度到对应的主机上运行。

可选的,所述获取主机集群中各主机的加密锁状态,包括:

接收所述主机集群中各主机上报的加密锁状态。

可选的,所述获取主机集群中各主机的加密锁状态,包括:

读取所述主机集群中各主机的加密锁状态。

可选的,所述方法还包括:

对于所述主机集群中的目标主机中的目标加密锁,当所述目标主机由插有目标加密锁状态变为未插有目标加密锁状态时,将所述目标主机上运行的申请的加密锁型号为所述目标加密锁的型号的目标容器调度到插有所述目标加密锁的其它主机上运行。

可选的,所述方法还包括:

当检测到所述主机集群中存在主机退出时,根据该退出的主机上运行的容器申请的加密锁型号以及所述主机集群中其它主机的加密锁状态,将该退出的主机上运行的容器重新调度到对应的其它主机上运行。

根据本申请实施例的第二方面,提供一种容器调度装置,包括:

获取单元,用于获取主机集群中各主机的加密锁状态;其中,主机集群中各主机的加密锁状态由各主机上部署的加密锁检测程序检测确定;

调度单元,用于当需要进行容器调度时,根据待调度容器申请的加密锁型号以及所述主机集群中各主机的加密锁状态,将所述待调度容器调度到对应的主机上运行。

可选的,所述获取单元,具体用于接收所述主机集群中各主机上报的加密锁状态。

可选的,所述获取单元,具体用于读取所述主机集群中各主机的加密锁状态。

可选的,所述调度单元,还用于对于所述主机集群中的目标主机中的目标加密锁,当所述目标主机由插有目标加密锁状态变为未插有目标加密锁状态时,将所述目标主机上运行的申请的加密锁型号为所述目标加密锁的型号的目标容器调度到插有所述目标加密锁的其它主机上运行。

可选的,所述装置还包括:

检测单元,用于检测所述主机集群中是否存在主机退出;

所述调度单元,还用于当所述检测单元检测到所述主机集群中存在主机退出时,根据该退出的主机上运行的容器申请的加密锁型号以及所述主机集群中其它主机的加密锁状态,将该退出的主机上运行的容器重新调度到对应的其它主机上运行。

根据本申请实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述容器调度方法。

根据本申请实施例的第四方面,提供一种机器可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述容器调度方法。

本申请实施例的容器调度方法,通过在主机集群中各主机上部署加密锁检测程序,各主机通过加密锁检测程序检测确定本主机的加密锁状态;调度设备通过获取主机集群中各主机的加密锁状态,并在需要进行容器调度时,根据待调度容器申请的加密锁型号以及主机集群中各主机的加密锁状态,将待调度容器调度到对应的主机上运行,提高了容器调度的效率和准确性。

附图说明

图1是本申请一示例性实施例示出的一种主机集群的架构示意图;

图2是本申请一示例性实施例示出的一种容器调度方法的流程图;

图3是本申请一示例性实施例示出的一种具体应用场景的架构示意图;

图4a~4c是本申请示例性示出的容器调度的示意图;

图5是本申请一示例性实施例示出的一种容器调度装置的结构示意图;

图6是本申请又一示例性实施例示出的一种容器调度装置的结构示意图;

图7是本申请一示例性实施例示出的一种容器调度装置的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对本申请实施例提供的技术方案适用的系统架构进行简单说明。

请参见图1,为本申请实施例提供的一种主机集群的架构示意图,如图1所示,该主机集群可以包括调度设备和多个主机,其中:

主机集群中各主机部署有加密锁检测程序,该加密锁检测程序可以检测本主机的加密锁状态;其中,加密锁状态可以包括未插有加密锁或插有加密锁,当加密锁状态为插有加密锁状态时,还记录有插有的加密锁的型号。

调度设备可以获取主机集群中各主机的加密锁状态,并当需要进行容器调度时,根据待调度容器申请的加密锁型号以及主机集群中各主机的加密锁状态,将待调度容器调度到对应的主机上运行。

可见,在图1所示的容器调度系统中,通过在主机集群中各主机上部署加密锁检测程序,由加密锁检测程序检测确定本主机的加密状态,进而调度设备可以获取主机集群中各主机的加密锁状态,并根据各主机的加密锁状态进行容器调度,与手动为插有加密锁的主机设置标签的方式相比,提高了容器调度的效率和准确性。

为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

请参见图2,为本申请实施例提供的一种容器调度方法的流程示意图,其中,该容器调度方法可以应用于容器调度系统中的调度设备,如应用于图1中的调度设备,如图2所示,该容器调度方法可以包括以下步骤:

步骤s200、获取主机集群中各主机的加密锁状态;其中,主机集群中各主机的加密锁状态由各主机部署的加密锁检测程序检测确定。

本申请实施例中,为了实现自动获取主机集群中各主机的加密锁状态,可以在主机集群中各主机上部署加密锁检测程序,该加密锁检测程序可以用于检测主机上是否插有加密锁,以及在主机上插有加密锁时,确定加密锁的型号,生成加密锁状态。

相应地,调度设备可以获取主机集群中各主机的加密锁状态,以便在需要进行容器调度时,可以根据各主机的加密锁状态进行容器调度。

在本申请其中一个实施例中,上述获取主机集群中各主机的加密锁状态,可以包括:

接收主机集群中各主机上报的加密锁状态。

在该实施例中,为了保证调度设备可以及时获取到主机集群中各主机的加密锁状态,主机集群中各主机可以主动向调度设备上报自身的加密锁状态。

举例来说,当主机集群初始化完成时,主机集群中各主机可以通过本主机部署的加密锁检测程序检测确定本主机的加密锁状态,并将其上报给调度设备。在后续流程中,当主机检测到本主机的加密锁状态发生变化时,如检测到加密锁插拔事件时,主机可以更新本主机的加密锁状态,并将更新后的加密锁状态上报给调度设备,以使调度设备能及时获知主机集群中各主机准确地加密锁状态。

在本申请另一个实施例中,上述获取主机集群中各主机的加密锁状态,可以包括:

读取主机集群中各主机的加密锁状态。

在该实施例中,为了提高加密锁状态获取的可控性,调度设备可以主动读取主机集群中各主机的加密锁状态。

举例来说,调度设备可以定时读取主机集群中各主机的加密锁状态,即调度设备可以定时向主机集群中各主机发送加密锁状态读取指令,以读取主机集群中各主机的加密锁状态。

又举例来说,调度设备可以在需要进行容器调度时,读取主机集群中各主机的加密锁状态,即调度设备可以在需要进行容器调度时向主机集群中各主机发送加密锁状态读取指令,以读取主机集群中各主机的加密锁状态。

需要说明的是,在本申请实施例中,当调度设备在进行容器调度时读取主机集群中各主机的加密锁状态时,调度设备可以根据待调度容器申请的加密锁型号,读取主机集群中对应该加密锁型号的加密锁状态为插有加密锁的主机的加密锁状态。

举例来说,假设待调度容器申请的加密锁型号为a,则调度设备可以向主机集群中各主机发送携带有加密锁型号a的加密锁状态读取指令;主机集群中各主机接收到该加密锁状态读取指令时,可以确定本主机是否插有加密锁型号为a的加密锁,若是,则将本主机的加密锁状态发送给调度设备;否则,不对该加密锁状态读取指令进行响应。

此外,在本申请实施例中,主机集群中各主机主动上报本主机的加密锁状态的加密锁状态获取策略与调度设备主动读取主机集群中各主机的加密锁状态的加密锁状态获取策略也可以同时使用,例如,调度设备可以定时读取主机集群中各主机的加密锁状态,且当主机集群中任意主机的加密锁状态发生变化时,该主机可以主动向调度设备上报本主机更新后的加密锁状态。

步骤s210、当需要进行容器调度时,根据待调度容器申请的加密锁型号以及主机集群中各主机的加密锁状态,并待调度容器调度到对应的主机上运行。

本申请实施例中,当需要进行容器调度时,调度设备可以确定待调度容器申请的加密锁型号,并根据该加密锁型号查询所获取到的主机集群中各主机的加密锁状态,确定插有该加密锁型号对应的加密锁的主机,进而,将待调度容器调度到所确定的主机中。

其中,当存在多个插有该加密锁型号对应的加密锁的主机时,调度设备可以按照随机选择的策略或其它策略选择运行该待调度容器的主机,并将该待调度容器调度到所选择的主机上运行,其具体实现本申请实施例不做限定。

可见,在图2所示方法流程中,通过在主机集群中各主机上部署加密锁检测程序,由加密锁检测程序检测确定本主机的加密状态,进而调度设备可以获取主机集群中各主机的加密锁状态,并根据各主机的加密锁状态进行容器调度,与手动为插有加密锁的主机设置标签的方式相比,提高了容器调度的效率和准确性。

进一步地,在本申请实施例中,考虑到实际应用中,可能会出现加密锁被误拔出的情况,当主机集群中主机数量较多时,被误拔出的加密锁可能会难以被插回原主机,进而,可能会导致原主机中运行的申请该被拔出的加密锁对应的加密锁型号的容器无法正常运行。

为了避免上述情况导致的容器无法正常运行,在本申请其中一个实施例中,本申请实施例提供的容器调度方案还可以包括:

对于主机集群中的目标主机中的目标加密锁,当目标主机由插有目标加密锁状态变为未插有目标加密锁状态时,将目标主机上运行的申请的加密锁型号为目标加密锁的型号的目标容器调度到其它插有目标加密锁的主机。

值得说明的是,在该实施例中,目标主机并特指某一固定的主机,而是可以指代主机集群中任一主机。

同理,目标加密锁并不特指某一固定加密锁,而是可以指代目标主机上的任一型号的加密锁,本申请实施例后续对此不再复述。

在该实施例中,当主机集群中的目标主机中的目标加密锁被拔出时,目标主机对应该目标加密锁的加密锁状态会由插有目标加密锁状态变为未插有目标加密锁状态。

举例来说,假设目标主机为主机1,目标加密锁为主机1上的加密锁a,且主机1上未插有其它加密锁,则当主机1上的加密锁a被拔出时,主机1的加密锁状态由原先的插有加密锁(加密锁型号为a)变为未插有加密锁,调度设备检测到主机1的该加密锁状态变化时,可以确定主机1由插有加密锁a状态变为未插有加密锁a状态,即可以确定主机1上加密锁a被拔出。

又举例来说,假设目标主机为主机1,目标加密锁为主机1上的加密锁a,主机1上还插有加密锁b,则当主机1上的加密锁a被拔出时,主机1的加密锁状态由插有加密锁(加密锁型号为a和b)变为插有加密锁(加密锁型号为b),调度设备检测到主机1的该加密锁状态变化时,可以确定主机1由插有加密锁a状态变为未插有加密锁a状态,即可以确定主机1上加密锁a被拔出。

在该实施例中,调度设备检测到目标主机由插有目标加密锁状态变为未插有目标加密锁状态时,调度设备可以进一步确定目标主机中是否运行有申请的加密锁型号为目标加密锁的型号的容器(本文中称为目标容器),若运行有目标容器,则调度设备可以进一步确定主机集群中是否存在有其它主机插有目标加密锁(与目标主机上被拔出的目标加密锁的型号相同的加密锁),并当存在时,将该目标容器重新调度到该插有目标加密锁的其它主机上运行。

需要说明的是,在该实施例中,当目标主机上不存在目标容器时,调度设备可以不需要进行特殊处理。

此外,当目标主机上存在目标容器,但主机集群中不存在其它主机插有目标加密锁的其它主机时,调度设备可以按照其它策略进行处理,本申请实施例对此不做限定。

可见,在该实施例中,可以保证主机集群中某主机上的任一加密锁被误拔出且被插入到其它主机的情况下,调度设备仍然能在主机集群中检测到插有该加密锁的主机,保证主机集群中运行的申请的加密锁型号为该被拔出的加密锁的型号的容器仍然能够在主机集群中正常运行,提高了容器集群的可靠性。

进一步地,在本申请实施例中,考虑到实际应用中,主机集群中可能会出现主机由于硬件异常或设备更新而退出主机集群的情况,在该情况下,该退出的主机上运行的容器需要重新调度。

相应地,在本申请其中一个实施例中,本申请实施例提供的容器调度方案还可以包括:

当检测到主机集群中存在主机退出时,根据该退出的主机上运行的容器申请的加密锁型号以及主机集群中其它主机的加密锁状态,将该退出的主机上运行的容器重新调度到对应的其它主机上运行。

在该实施例中,当调度设备检测到主机集群中存在主机退出时,调度设备可以获取该退出的主机上运行的容器申请的加密锁型号,并根据获取到的主机集群中其它主机的加密锁状态确定主机集群中是否存在其它主机插有该加密锁型号的加密锁。

若存在,则调度设备可以将该退出的主机上运行的容器重新调度到该插有该加密锁型号的加密锁的其它主机上运行。

需要说明的是,在该实施例中,当主机集群中不存在其它主机插有该加密锁型号的加密锁时,调度设备可以按照其它策略进行处理,本申请实施例对此不做限定。

可见,在该实施例中,可以保证主机集群中某主机退出,且主机上运行的容器可以继续在主机集群中加密锁状态满足要求的其它主机上运行,提高了容器集群的可靠性。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供的技术方案进行说明。

请参见图3,为本申请实施例提供的一种具体应用场景的架构示意图,如图3所示,在该应用场景中,主机集群中包括n个主机(分别为节点1~节点n)。其中,主机集群中各主机均部署有加密锁检测程序。

基于图3所示应用场景,本申请实施例提供的容器调度方案实现流程如下:

1、主机集群中各主机运行加密锁检测程序,定时检测并上报本主机的加密锁状态。

在该实施例中,假设节点1上插有加密锁b(加密锁类型为b),节点2上插有加密锁a(加密锁类型为a),节点n上插有加密锁c(加密锁类型为c),则节点1向调度设备上报的加锁状态为插有加密锁(加密锁型号为b),节点2向调度设备上报的加锁状态为插有加密锁(加密锁型号为a),节点n向调度设备上报的加锁状态为插有加密锁(加密锁型号为c),其余节点向调度设备上报的加锁状态为未插有加密锁。

2、调度设备接收并存储各主机上报的加密锁状态。

其中,调度设备首次接收到各主机上报的加密锁状态时,直接存储所接收到的各主机的加密锁状态;调度设备非首次接收到各主机上报的加密锁状态时,使用当前接收到的各主机的加密锁状态覆盖之前存储的各主机的加密锁状态。

3、当需要进行容器调度时,调度设备根据待调度容器申请的加密锁型号以及自身存储的各主机的加密锁状态,将待调度容器调度到对应的主机上运行。

在该实施例中,假设需要调度的容器为容器a,其申请的加密锁型号为a,则调度设备可以根据容器a申请的加密锁型号查询自身存储的各主机的加密锁状态,确定插有加密锁型号为a的加密锁的主机,发现节点2的加密锁状态为插有加密锁(加密锁型号为a),因此,将容器a调度到节点2上运行,其示意图可以如图4a所示。

4、当节点2上的加密锁a被拔出,并被插入到节点3时,节点2的加密锁状态由插有加密锁(加密锁型号为a)更新为未插有加密锁;节点3的加密锁状态由未插有加密锁更新为插有加密锁(加密锁型号为a)。

此时,节点2和节点3可以向调度设备上报更新后的加密锁状态。

5、调度设备更新本地存储的节点2和节点3的加密锁状态;其中,节点2的加密锁状态由插有加密锁(加密锁型号为a)更新为未插有加密锁;节点3的加密锁状态由未插有加密锁更新为插有加密锁(加密锁型号为a)。

6、调度设备检测节点2是否运行有申请的加密锁型号为a的容器,并当存在申请的加密锁型号为a的容器时,将其调度到插有加密锁a的主机。

在该实施例中,由于节点2上运行有容器a,且容器a申请的加密锁型号为a,则调度设备确定节点a上运行有申请的加密锁型号为a的容器(即容器a),由于节点a上的加密锁a被拔出,因此,需要对容器a进行重新调度。

此时,调度设备可以根据自身存储的各主机的加密锁状态确定是否存在插有加密锁型号为a的加密锁(即加密锁a)的主机,发现节点3上插有加密锁a,进而,调度设备可以将容器a重新调度到节点3上运行,其示意图可以如图4b所示。

7、当节点1由于硬件异常或设备更新从主机集群中退出时,调度设备可以确定节点1上是否运行有申请的加密锁型号为b的容器;若存在,则进一步确定主机集群中是否存在插有加密锁型号为b的加密锁(即加密锁b)的其它主机;若存在,则将节点1上运行的申请的加密锁型号为b的容器重新调度到该插有加密锁b的其它主机上运行。

在该实施例中,假设节点1(假设节点1上运行有容器b,其申请的加密锁型号为b)由于设备更新从主机集群中退出时,用户(网管人员)将节点1上的加密锁b拔插到节点4上,此时,节点4的加密锁状态由未插有加密锁更新为插有加密锁(加密锁型号为b)。

节点4上报更新后的加密锁状态,由调度设备更新自身存储的节点4的加密锁状态,即由未插有加密锁更新为插有加密锁(加密锁型号为b)。

调度设备检测到节点1退出主机集群,并确定节点1上运行有申请的加密锁型号为b的容器b,则调度设备可以根据自身存储的加密锁状态确定是否存在插有加密锁b的其它主机,发现节点4插有加密锁b,因此,调度设备将将容器b重新调度到节点4上运行,其示意图可以如图4c所示。

本申请实施例中,通过在主机集群中各主机上部署加密锁检测程序,各主机通过加密锁检测程序检测确定本主机的加密锁状态;调度设备通过获取主机集群中各主机的加密锁状态,并在需要进行容器调度时,根据待调度容器申请的加密锁型号以及主机集群中各主机的加密锁状态,将待调度容器调度到对应的主机上运行,提高了容器调度的效率和准确性。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图5,为本申请实施例提供的一种容器调度装置的结构示意图,其中,该容器调度装置可以应用于上述方法实施例中的调度设备,如图5所示,该容器调度装置可以包括:

获取单元510,用于获取主机集群中各主机的加密锁状态;其中,主机集群中各主机的加密锁状态由各主机上部署的加密锁检测程序检测确定;

调度单元520,用于当需要进行容器调度时,根据待调度容器申请的加密锁型号以及所述主机集群中各主机的加密锁状态,将所述待调度容器调度到对应的主机上运行。

在一种可选的实施方式中,所述获取单元510,具体用于接收所述主机集群中各主机上报的加密锁状态。

在一种可选的实施方式中,所述获取单元510,具体用于读取所述主机集群中各主机的加密锁状态。

在一种可选的实施方式中,所述调度单元520,还用于对于所述主机集群中的目标主机中的目标加密锁,当所述目标主机由插有目标加密锁状态变为未插有目标加密锁状态时,将所述目标主机上运行的申请的加密锁型号为所述目标加密锁的型号的目标容器调度到插有所述目标加密锁的其它主机上运行。

请一并参见图6,为本申请实施例提供的另一种容器调度装置的结构示意图,如图6所示,在图5所示容器调度装置的基础上,图6所示容器调度装置还可以包括:

检测单元530,用于检测所述主机集群中是否存在主机退出;

所述调度单元520,还用于当所述检测单元530检测到所述主机集群中存在主机退出时,根据该退出的主机上运行的容器申请的加密锁型号以及所述主机集群中其它主机的加密锁状态,将该退出的主机上运行的容器重新调度到对应的其它主机上运行。

请参见图7,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器701、通信接口702、存储器703和通信总线704。处理器701、通信接口702以及存储器703通过通信总线704完成相互间的通信。其中,存储器703上存放有计算机程序;处理器701可以通过执行存储器703上所存放的程序,执行上文描述的容器调度方法。

本文中提到的存储器703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器702可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图7中的存储器703,所述计算机程序可由图7所示电子设备中的处理器701执行以实现上文描述的容器调度方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1