一种容器部署方法及装置与流程

文档序号:12270860阅读:187来源:国知局
一种容器部署方法及装置与流程
本发明涉及互联网
技术领域
,具体涉及一种容器部署方法及装置。
背景技术
:Docker是一个开源的应用容器引擎,其基于内核轻量级虚拟化技术,可以实现应用之间的资源隔离、配置与安全保障,并能够满足应用按需分配的资源需求以及应用的隔离性和可用性。使用Docker运行应用之前需要在工作节点上创建对应的容器。目前,在工作节点中部署容器时,会将容器创建在优先级最高的工作节点上。影响容器创建的因素包括资源容量和镜像,资源容量包括CPU容量和内存容量。其中,Docker镜像以层的方式组织,将下一层镜像称为上一层镜像的父镜像,无父镜像的镜像称为基础镜像。但在上述容器部署过程中,只考虑了资源容量对容器创建的影响,从而有可能会导致浪费资源。技术实现要素:本发明实施例公开一种容器部署方法及装置,在部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。本发明实施例第一方面公开一种容器部署方法,包括:接收携带有所需资源容量和所需镜像标识的第一容器创建请求,其中,所述所需镜像标识为所需运行应用对应的镜像的标识;从集群工作节点中选取未使用资源容量大于所述所需资源容量的至少两个第一工作节点;根据所述至少两个第一工作节点存储的镜像以及所述所需镜像标识,从所述至少两个第一工作节点中确定一个工作节点作为目标工作节点;向所述目标工作节点发送携带有所述所需资源容量和所述所需镜像标识的第二容器创建请求。结合本发明实施例第一方面,在本发明实施例第一方面的第一种可能的实现方式中,所述根据所述至少两个第一工作节点存储的镜像以及所述所需镜像标识,从所述至少两个第一工作节点中确定一个工作节点作为目标工作节点包括:分别获取各所述第一工作节点中存储的镜像对应的镜像标识;确定所述存储的镜像对应的镜像标识为所述所需镜像标识的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述从确定的第一工作节点中选取一个第一工作节点作为目标工作节点具体为:当所述确定的第一工作节点的数量为一时,确定所述确定的第一工作节点为目标工作节点;当所述确定的第一工作节点的数量大于一时,从所述确定的第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点。结合本发明实施例第一方面,在本发明实施例第一方面的第三种可能的实现方式中,所述根据所述至少两个第一工作节点存储的镜像以及所述所需镜像标识,从所述至少两个第一工作节点中确定一个工作节点作为目标工作节点包括:分别获取各所述第一工作节点中存储的镜像对应的镜像标识;根据所述存储的镜像对应的镜像标识确定所有所述第一工作节点均未存储有所述所需镜像标识对应的镜像;根据所述所需镜像标识从镜像库获取所述所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;分别获取各所述第一工作节点中存储的镜像层对应的镜像层标识;确定所述存储的镜像层对应的镜像层标识中存在与所述所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,所述从确定的第一工作节点中选取一个第一工作节点作为目标工作节点具体为:当所述确定的第一工作节点的数量为一时,确定所述确定的第一工作节点为目标工作节点;当所述确定的第一工作节点的数量大于一时,从所述确定的第一工作节点中选取所述部分镜像层标识的数量最大的工作节点作为目标工作节点。本发明实施例第二方面公开一种容器部署装置,包括:接收单元,用于接收携带有所需资源容量和所需镜像标识的第一容器创建请求,其中,所述所需镜像标识为所需运行应用对应的镜像的标识;选取单元,用于从集群工作节点中选取未使用资源容量大于所述所需资源容量的至少两个第一工作节点;确定单元,用于根据所述至少两个第一工作节点存储的镜像以及所述所需镜像标识,从所述至少两个第一工作节点中确定一个工作节点作为目标工作节点;发送单元,用于向所述目标工作节点发送携带有所述所需资源容量和所述所需镜像标识的第二容器创建请求。结合本发明实施例第二方面,在本发明实施例第二方面的第一种可能的实现方式中,所述确定单元包括:第一获取子单元,用于分别获取各所述第一工作节点中存储的镜像对应的镜像标识;第一确定子单元,用于确定所述存储的镜像对应的镜像标识为所述所需镜像标识的第一工作节点;第一选取子单元,用于从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述第一选取子单元具体用于:当所述确定的第一工作节点的数量为一时,确定所述确定的第一工作节 点为目标工作节点;当所述确定的第一工作节点的数量大于一时,从所述确定的第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点。结合本发明实施例第一方面,在本发明实施例第一方面的第三种可能的实现方式中,所述确定单元包括:第二获取子单元,用于分别获取各所述第一工作节点中存储的镜像对应的镜像标识;第二确定子单元,用于根据所述存储的镜像对应的镜像标识确定所有所述第一工作节点均未存储有所述所需镜像标识对应的镜像;第三获取子单元,用于根据所述所需镜像标识从镜像库获取所述所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;第四获取子单元,用于分别获取各所述第一工作节点中存储的镜像层对应的镜像层标识;第三确定子单元,用于确定所述存储的镜像层对应的镜像层标识中存在与所述所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;第二选取子单元,用于从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述第二选取子单元具体用于:当所述确定的第一工作节点的数量为一时,确定所述确定的第一工作节点为目标工作节点;当所述确定的第一工作节点的数量大于一时,从所述确定的第一工作节点中选取所述部分镜像层标识的数量最大的工作节点作为目标工作节点。本发明实施例中,接收到携带有所需资源容量和所需镜像标识的第一容器创建请求之后,从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点,并根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点,之后向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容 器创建请求。由于在工作节点中部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例公开的一种容器部署网络构架的结构图;图2是本发明实施例公开的一种容器部署装置的结构图;图3是本发明实施例公开的一种容器部署方法的流程图;图4是本发明实施例公开的另一种容器部署装置的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开一种容器部署方法及装置,在部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。以下分别进行详细说明。为了更好地理解本发明实施例公开的一种容器部署方法及装置,下面先对本发明实施例使用的容器部署网络架构进行描述。请参阅图1,图1是本发明实施例公开的一种容器部署网络架构的结构图。如图1所示,该容器部署网络架构可以包括客户端101、管理节点102、至少两个工作节点103和镜像库104,其中:客户端101,用于与管理节点102通过网络进行通信,提交容器创建请求。 其中,网络可以为局域网,也可以为互联网,还可以为其它网络,本实施例不作限定。管理节点102,用于与客户端101通过网络进行通信,接收客户端101提交的容器创建请求。管理节点102还为各容器创建请求指定用于创建容器的工作节点103,并与工作节点103通过网络进行通信,通知工作节点103创建容器,以及获取工作节点103存储的镜像对应的镜像标识、工作节点103存储的镜像层对应的镜像层标识、工作节点103的总资源容量和工作节点103的已使用资源容量。此外,管理节点102还可以与镜像库104通过网络进行通信,从镜像库104获取容器创建请求携带的所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;工作节点103,用于与管理节点102通过网络进行通信,根据管理节点102的通知创建容器,以及向管理节点102发送信息;此外,工作节点103与镜像库104通过网络进行通信,从镜像库104中获取创建容器所需的镜像或镜像层。镜像库104,用于存储创建容器所需的镜像,与管理节点102通过网络进行通信,向管理节点102发送镜像层对应的镜像层标识;此外,镜像库104还与工作节点103通过网络进行通信,当工作节点需要创建容器,且工作节点103中未存储有创建容器所需的镜像或只存储有创建容器所需的镜像的部分镜像层时,工作节点103需要从镜像库104获取镜像或镜像层,镜像库104中的镜像由应用开发人员制作,由应用管理员通过相关接口上传至镜像库104;本发明实施例中的集群工作节点是该容器部署网络架构中的所有工作节点103,也是管理节点102管理的所有工作节点103;本发明实施例中的第一工作节点是集群工作节点中未使用资源容量大于创建容器所需资源容量的工作节点103。基于图1所示的容器部署网络架构,请参阅图2,图2是本发明实施例公开的一种容器部署装置的结构图。其中,该容器部署装置可以为管理节点。如图2所示,该容器部署装置200可以包括:至少一个处理器201、例如CPU,存储器202,收发器203,以及至少一个通信总线204。其中,通信总线204用于 实现这些组件之间的连接通信。存储器202可以是高速RAM存储器,还可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器202可选的可以包含至少一个位于远离前述处理器201的存储装置。其中:收发器203,用于接收携带有所需资源容量和所需镜像标识的第一容器创建请求,并将第一容器创建请求发送至处理器201,其中,所需镜像标识为所需运行应用对应的镜像的标识;存储器202中存储有一组程序代码,处理器201用于调用存储器202中存储的程序代码执行以下操作:从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点;根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点;收发器203,还用于向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容器创建请求。作为一种可能的实施方式,处理器201根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点的方式具体为:分别获取各第一工作节点中存储的镜像对应的镜像标识;确定存储的镜像对应的镜像标识为所需镜像标识的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,处理器201从确定的第一工作节点中选取一个第一工作节点作为目标工作节点的方式具体为:当确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,从该确定的第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点。作为一种可能的实施方式,处理器201根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点的方式具体为:分别获取各第一工作节点中存储的镜像对应的镜像标识;根据存储的镜像对应的镜像标识确定所有第一工作节点均未存储有所需镜像标识对应的镜像;根据所需镜像标识从镜像库获取所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;分别获取各第一工作节点中存储的镜像层对应的镜像层标识;确定存储的镜像层对应的镜像层标识中存在与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,处理器201从确定的第一工作节点中选取一个第一工作节点作为目标工作节点的方式具体为:当该确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当该确定的第一工作节点的数量大于一时,从该确定的第一工作节点中选取部分镜像层标识的数量最大的工作节点作为目标工作节点。在图2所描述的容器创建装置中,接收到携带有所需资源容量和所需镜像标识的第一容器创建请求之后,从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点,并根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点,之后向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容器创建请求。由于在工作节点中部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。基于图1所示的容器部署网络架构,本发明实施例公开一种容器部署方法。请参阅图3,图3是本发明实施例公开的一种容器部署方法的流程图。其中,该容器部署方法可以由管理节点执行。如图3所示,该容器部署方法可以包括以下步骤。S301、接收携带有所需资源容量和所需镜像标识的第一容器创建请求,其中,所需镜像标识为所需运行应用对应的镜像的标识。本实施例中,当应用需要在工作节点上运行时,先需要在工作节点上创建对应的容器。因此,当用户需要运行应用时,用户可以通过操作键盘、鼠标、按键等方式向客户端输入包括所需运行应用对应的镜像的标识和创建容器所需资源容量的容器创建指令,客户端接收到容器创建指令之后,将解析该容器创建指令,生成第一容器创建请求并发送至管理节点。或当客户端需要运行应用时,将生成包括所需资源容量和所需镜像标识的第一容器创建请求并发送至管理节点。其中,所需镜像标识为所需运行应用对应的镜像的标识;所需资源容量可以包括所需CPU容量和所需内存(memory)容量。S302、从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点。本实施例中,管理节点接收到携带有所需资源容量和所需镜像标识的第一容器创建请求之后,将从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点。即将集群工作节点中每个工作节点的未使用资源容量与所需资源容量进行比较,当该工作节点的未使用资源容量大于所需资源容量时,表明该工作节点的未使用资源容量能够满足所需资源容量,因此,该工作节点将为第一工作节点。本实施例中,管理节点可以预先通过网络获取集群工作节点中每个工作节点的已使用资源容量和总资源容量;也可以在接收到第一容器创建请求之后,通过网络获取集群工作节点中每个工作节点的已使用资源容量和总资源容量,本实施例不作限定。管理节点获取到集群工作节点中每个工作节点的已使用资源容量和总资源容量之后,将使用该工作节点的总资源容量减去该工作节点的已使用资源容量可以得到该工作节点的未使用资源容量。其中,工作节点的未使用资源容量可以包括未使用CPU容量和未使用内存容量。管理节点接收到第一容器创建请求之后,或得到每个工作节点的未使用资源容量之后,将每个工作节点的未使用CPU容量与所需CPU容量进行比较,以及将该工作节点的未使用内存容量与所需内存容量进行比较,当该工作节点的未使用CPU容量大于所需CPU容量,且该工作节点的未使用内存容量大于所需内存容量时,该工作节点将为第一工作节点。本实施例中,当工作节点的已使用资源容量和总资源容量是管理节点预先获取的时,可以是管理节点主动获取的,也可以是工作节点主动发送给管理节点的,本实施例不作限定。其中,当工作节点的已使用资源容量和总资源容量是管理节点预先获取的时,如果工作节点的已使用资源容量发生变化,管理节点将更新存储的工作节点的未使用资源容量;当工作节点的已使用资源容量和总资源容量是工作节点主动发送给管理节点的时,如果工作节点的已使用资源容量发生变化时,工作节点将更新消息发送给管理节点。当工作节点的已使用资源容量和总资源容量是管理节点在接收到第一容器创建请求之后获取的时,是管理节点主动获取的。本实施例中,管理节点可以通过Http请求方式主动获取工作节点的已使用资源容量和总资源容量。其中,管理节点请求消息的格式可以为:GET/resources响应消息使用JSONoverHTTP承载。Content-Type:application/json定义的JSONsyntax:其中,当工作节点的已使用资源容量和总资源容量是管理节点预先通过网络获取的时,获取到每个工作节点的已使用资源容量和总资源容量之后,将计算得到每个工作节点的未使用资源容量,之后将这些工作节点的资源容量进行保存,并在工作节点的已使用资源容量发生变化时,更新存储的工作节点的资源容量,以便后续调用。其中,管理节点保存这些工作节点的CPU容量和内存容量的表格可以如表1所示:Node1Node2Node3…total_CPU484…total_Memory6412864…表1存储的工作节点的CPU容量和内存容量S303、根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点。作为一种可能的实施方式,根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点的方式具体为:分别获取各第一工作节点中存储的镜像对应的镜像标识;确定存储的镜像对应的镜像标识为所需镜像标识的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,从确定的第一工作节点中选取一个第一工作节点作为目标工作节点的方式具体为:当确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,从该确定的第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点。作为一种可能的实施方式,根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点的方式具体为:分别获取各第一工作节点中存储的镜像对应的镜像标识;根据存储的镜像对应的镜像标识确定所有第一工作节点均未存储有所需镜像标识对应的镜像;根据所需镜像标识从镜像库获取所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;分别获取各第一工作节点中存储的镜像层对应的镜像层标识;确定存储的镜像层对应的镜像层标识中存在与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,从确定的第一工作节点中选取一个第一工作节点作为目标工作节点的方式具体为:当确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,从该确定的第一工作节点中选取部分镜像层标识的数量最大的工作节点作为目标工作节点。本实施例中,管理节点从集群工作节点中选取出未使用资源容量满足所需资源容量的至少两个第一工作节点之后,将分别获取每个第一工作节点中存储的镜像对应的镜像标识,并判断每个第一工作节点中存储的镜像对应的镜像标识中是否存在与所需镜像标识相同的镜像标识,以判断至少两个第一工作节点中是否存在存储有所需镜像标识对应的镜像的第一工作节点,当有第一工作节点中存储的镜像对应的镜像标识中存在与所需镜像标识相同的镜像标识,即存在存储有所需镜像标识对应的镜像的第一工作节点时,从至少两个第一工作节点中确定存储的镜像对应的镜像标识中存在与所需镜像标识相同的镜像标识的第一工作节点,当确定的第一工作的数量为一时,该第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,可以将确定的第一工作节点中未使用资源容量最小的工作节点作为目标工作节点,也可以将确定的第一工作节点中未使用资源容量最大的工作节点作为目标工作节点,还可以根据其他方式从确定的第一工作节点中选取一个工作节点作为目标工作节点,本实施例不作限定。当将确定的第一工作节点中未使用资 源容量最小的工作节点作为目标工作节点时,可以将容器创建在未使用资源容量最小的工作节点上,而未使用资源容量较大的工作节点可以用于后续创建所需资源容量较大的容器。本实施例中,当每个第一工作节点中存储的镜像对应的镜像标识中均不存在与所需镜像标识相同的镜像标识,即不存在存储有所需镜像标识对应的镜像的第一工作节点时,管理节点将向镜像库发送携带有所需镜像标识的镜像层标识获取请求,以便镜像库将所需镜像标识对应的镜像包括的镜像层对应的镜像层标识发送给管理节点;此外,管理节点分别获取每个第一工作节点中存储的镜像层对应的镜像层标识;之后将每个第一工作节点中存储的镜像层对应的镜像层标识与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识进行比较,以判断至少两个第一工作节点中是否存储有所需镜像标识对应的镜像包括的镜像层中的部分镜像层,当有第一工作节点中存储的镜像层对应的镜像层标识中部分镜像层标识与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同,即存在存储有所需镜像标识对应的镜像包括的镜像层中的部分镜像层的第一工作节点时,确定至少两个工作节点中存储的镜像层对应的镜像层标识中部分镜像层标识与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;当确定的第一工作节点的数量为一时,该第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,可以将确定的第一工作节点中部分镜像层标识的数量最大的工作节点作为目标工作节点,也可以将部分镜像层标识对应的镜像层的容量最大的工作节点作为目标工作节点,还可以根据其他方式从确定的第一工作节点中选取一个工作节点作为目标工作节点,本实施例不作限定。其中,当将确定的第一工作节点中部分镜像层标识的数量最大的工作节点作为目标工作节点时,目标工作节点创建容器时需要从镜像库获取的镜像层的数量最少;当将部分镜像层标识对应的镜像层的容量最大的工作节点作为目标工作节点时,目标工作节点创建容器时需要从镜像库获取的镜像层的容量最小,可以提高容器创建速率。本实施例中,当每个第一工作节点均未存储有所需镜像标识对应的镜像,且每个第一工作节点均未存储有所需镜像标识对应的镜像包括的镜像层中的 部分镜像层时,管理节点可以从至少两个第一工作节点中选取未使用资源容量最大的工作节点为目标工作节点,也可以从至少两个第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点,还可以通过其它方式从至少两个第一工作节点中选取一个工作节点为目标工作节点,本实施例不作限定。本实施例中,管理节点可以预先获取至少两个第一工作节点中每个第一工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识;也可以在接收到第一容器创建请求之后,通过网络获取至少两个第一工作节点中部分或全部第一工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识,本实施例不作限定。其中,每个第一工作节点存储的镜像的数量可以为零,也可以为一,还可以为大于一的整数,本实施例不作限定。其中,一个镜像可以包括一个镜像层,也可以包括多个镜像层,本实施例不作限定。因此,每个第一工作节点存储的镜像层的数量可以为零,也可以为一,还可以为大于一的整数,本实施例不作限定。本实施例中,当工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识是管理节点预先获取的时,可以是管理节点主动获取的,也可以是工作节点主动发送给管理节点的,本实施例不作限定。其中,当是管理节点主动获取的时,如果工作节点存储的镜像发生变化时,管理节点将更新存储的工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识;当是工作节点主动发送给管理节点的时,如果工作节点存储的镜像发生变化时,工作节点将更新消息发送给管理节点。当工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识是管理节点在接收到第一容器创建请求之后获取的时,是管理节点主动获取的。本实施例中,当工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识是管理节点在接收到第一容器创建请求之后获取的时,可以是在接收到第一容器创建请求之后立即获取集群工作节点中每个工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识;也可以是在从集群工作节点中选取出未使用资源容量满足所需资源容量的至少两个第一工作节点之后,获取每个第一工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标 识,或先获取每个第一工作节点存储的镜像对应的镜像标识,当存在存储有所需镜像标识对应的镜像的第一工作节点时,将不需要获取每个第一工作节点存储的镜像层对应的镜像层标识,当不存在存储有所需镜像标识对应的镜像的第一工作节点时,将需要获取每个第一工作节点存储的镜像层对应的镜像层标识。其中,管理节点可以通过管理节点中的镜像管理器获取工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识。本实施例中,管理节点可以通过Http请求方式主动获取工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识。其中,Http请求消息的格式可以为:GET/images/all/layers响应消息使用JSONoverHTTP承载:Content-Type:application/json定义的JSONsyntax:本实施例中,当工作节点主动发送存储的镜像对应的镜像标识和镜像层对应的镜像层标识给管理节点时,工作节点可以通过Http方式通知管理节点。其中,Http通知消息的格式可以为:PUT/images/all/layers通知消息使用JSONoverHTTP承载:Content-Type:application/json定义的JSONsyntax:其中,响应消息的格式可以为:HTTP/1.1200其中,当工作节点存储的镜像标识和镜像层标识是管理节点预先通过网络获取的时,管理节点获取到工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识之后,可以将这些镜像标识和镜像层标识进行存储。以及在工作节点存储的镜像发生变化时,更新存储的工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识,以便后续调用。其中,管理节点存储 工作节点存储的镜像对应的镜像标识和镜像层对应的镜像层标识的表格可以如表2所示:表2存储的工作节点的镜像标识和镜像层标识S304、向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容器创建请求,以触发目标工作节点根据所需资源容量和所需镜像标识创建容器。本实施例中,管理节点根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定出一个工作节点作为目标工作节点之后,将向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容量创建请求,以触发目标工作节点根据所需资源容量和所需镜像标识创建 容器,以便所需镜像标识对应的应用在目标工作节点上运行。本实施例中,管理节点可以周期性的从集群工作节点存储的镜像中选取目标镜像,并向存储有目标镜像的部分或全部工作节点发送携带有目标镜像对应的镜像标识的清除指令,以触发接收到清除指令的工作节点清除存储的该镜像标识对应的目标镜像,以便节约工作节点的存储资源。其中,目标镜像为在预设时间长度内未被使用的镜像,或为存储在至少两个工作节点中的镜像。在图3所描述的容器部署方法中,接收到携带有所需资源容量和所需镜像标识的第一容器创建请求之后,从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点,并根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点,之后向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容器创建请求。由于在工作节点中部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。基于图1所示的容器部署网络架构,本发明实施例公开的一种容器部署装置。请参阅图4,图4是本发明实施例公开的另一种容器部署装置的结构图。其中,该容器部署装置可以为管理节点。如图4所示,该容器部署装置400可以包括:接收单元401,用于接收携带有所需资源容量和所需镜像标识的第一容器创建请求,其中,所需镜像标识为所需运行应用对应的镜像的标识;选取单元402,用于从集群工作节点中选取未使用资源容量大于接收单元401接收的第一容器创建请求携带的所需资源容量的至少两个第一工作节点;确定单元403,用于根据选取单元402选取的至少两个第一工作节点存储的镜像以及接收单元401接收的第一容器创建请求携带的所需镜像标识,从选取单元402选取的至少两个第一工作节点中确定一个工作节点作为目标工作节点;发送单元404,用于向确定单元403确定的目标工作节点发送携带有接 收单元401接收的第一容器创建请求携带的所需资源容量和接收单元401接收的第一容器创建请求携带的所需镜像标识的第二容器创建请求,以触发目标工作节点根据所需资源容量和所需镜像标识创建容器。作为一种可能的实施方式,确定单元403可以包括:第一获取子单元,用于分别获取各第一工作节点中存储的镜像对应的镜像标识;第一确定子单元,用于确定存储的镜像对应的镜像标识为所需镜像标识的第一工作节点;第一选取子单元,用于从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,第一选取子单元具体用于:当确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,从确定的第一工作节点中选取未使用资源容量最小的工作节点作为目标工作节点。作为一种可能的实施方式,确定单元403可以包括:第二获取子单元,用于分别获取各第一工作节点中存储的镜像对应的镜像标识;第二确定子单元,用于根据存储的镜像对应的镜像标识确定所有第一工作节点均未存储有所需镜像标识对应的镜像;第三获取子单元,用于根据所需镜像标识从镜像库获取所需镜像标识对应的镜像包括的镜像层对应的镜像层标识;第四获取子单元,用于分别获取各第一工作节点中存储的镜像层对应的镜像层标识;第三确定子单元,用于确定存储的镜像层对应的镜像层标识中存在与所需镜像标识对应的镜像包括的镜像层对应的镜像层标识中部分镜像层标识相同的第一工作节点;第二选取子单元,用于从确定的第一工作节点中选取一个第一工作节点作为目标工作节点。作为一种可能的实施方式,第二选取子单元具体用于:当确定的第一工作节点的数量为一时,确定该确定的第一工作节点为目标工作节点;当确定的第一工作节点的数量大于一时,从确定的第一工作节点中选取部分镜像层标识的数量最大的工作节点作为目标工作节点。在图4所描述的容器创建装置中,接收到携带有所需资源容量和所需镜像标识的第一容器创建请求之后,从集群工作节点中选取未使用资源容量大于所需资源容量的至少两个第一工作节点,并根据至少两个第一工作节点存储的镜像以及所需镜像标识,从至少两个第一工作节点中确定一个工作节点作为目标工作节点,之后向目标工作节点发送携带有所需资源容量和所需镜像标识的第二容器创建请求。由于在工作节点中部署容器时根据已存储的镜像的标识,使得待部署的容器利用已部署的资源,节省资源。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。以上对本发明实施例公开的一种容器部署方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1