掌桥专利:专业的专利平台
掌桥专利
首页

容器部署方法、电子设备及存储介质

文献发布时间:2024-05-31 01:29:11


容器部署方法、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种容器部署方法、电子设备及存储介质。

背景技术

随着网络功能虚拟化逐渐成熟,越来越多的运营商选择在虚拟化平台上搭建自己的网络功能,传统的应用部署方式是通过插件或者脚本安装应用,但是这种方式不利于应用的升级更新以及回滚等操作,因此容器化技术孕育而生,通过部署容器方式实现应用部署,每个容器之间互相隔离,容器之间进程不会相互影响,能区分计算资源,提升资源利用率,但是当各资源节点上存在的资源较少不足以进行容器部署时,容器无法在任一资源节点上进行部署,这些资源节点上的少量资源将无法被利用,存在资源浪费的情况。

发明内容

本申请的主要目的在于提供一种容器部署方法、电子设备及存储介质,旨在解决现有技术中容器部署时资源利用率低的技术问题。

第一方面,提供一种容器部署方法,应用于容器部署协调端。所述容器部署方法包括:响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合;在各所述可迁移容器组合中选取可迁移目标容器进行迁移;在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。这样,在资源节点上虽然存在少量资源,但不足以直接部署目标容器时,通过在资源节点之间协调进行容器迁移,可以实现在资源节点中存在少量资源但不能直接部署目标容器时进行目标容器的部署,因此提升了容器部署时的资源利用率。

第二方面,提供一种容器部署方法,应用于应用端。所述容器部署方法包括:响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。这样,该迁移请求反馈结果可协助容器部署协调端在各所述可迁移容器组合中选取可迁移目标容器进行迁移,使得容器部署协调端迁移容器时不会造成过大的影响,也即降低了在资源节点存在少量资源时,通过迁移容器来部署目标容器对应用端业务的影响,提升了用户体验,同时也在不影响应用端业务前提下提升了容器部署时的资源利用率。

第三方面,提供一种容器部署装置,应用于容器部署协调端。所述容器部署装置包括:

资源节点检测模块,用于响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;

可迁移容器组合确定模块,用于若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,确定各可迁移容器组合;

容器迁移模块,用于在各所述可迁移容器组合中选取可迁移目标容器进行迁移;

容器部署模块,用于在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上

第三方面与第一方面的任意一种实现方式相对应。第三方面所对应的技术效果可参见上述第一方面所对应的技术效果,此处不再赘述。

第四方面,提供一种容器部署装置,应用于应用端。所述容器部署装置包括:

迁移影响评估模块,用于响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;

迁移请求反馈模块,用于根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。

第四方面与第二方面的任意一种实现方式相对应。第四方面所对应的技术效果可参见上述第二方面所对应的技术效果,此处不再赘述。

第五方面,提供一种电子设备,应用于容器部署协调端,。所述电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合;在各所述可迁移容器组合中选取可迁移目标容器进行迁移;在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。

第五方面与第一方面的任意一种实现方式相对应。第五方面所对应的技术效果可参见上述第一方面所对应的技术效果,此处不再赘述。

第六方面,提供一种电子设备,应用于应用端。所述电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器

第六方面与第二方面的任意一种实现方式相对应。第六方面所对应的技术效果可参见上述第二方面所对应的技术效果,此处不再赘述。

第七方面,提供一种计算机可读存储介质,应用于容器部署协调端。该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第一方面中的容器部署方法。

第七方面与第一方面的任意一种实现方式相对应。第七方面所对应的技术效果可参见上述第一方面所对应的技术效果,此处不再赘述。

第八方面,提供一种计算机可读存储介质,应用于应用端。该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第二方面中的容器部署方法。

第八方面与第二方面的任意一种实现方式相对应。第八方面所对应的技术效果可参见上述第二方面所对应的技术效果,此处不再赘述。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请容器部署方法第一实施例的流程示意图;

图2为本申请容器部署方法第二实施例的流程示意图;

图3为本申请容器部署方法第三实施例的流程示意图;

图4本申请容器部署装置应用于容器部署协调端时一实施例中的装置示意图;

图5本申请容器部署装置应用于应用端时一实施例中的装置示意图;

图6为本申请实施例中容器部署方法涉及的硬件运行环境的设备结构示意图。

本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。

参照图1,本申请实施例提供一种容器部署方法,应用于容器部署协调端,在本申请容器部署方法的第一实施例中,所述容器部署方法包括:

步骤S10,响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;

步骤S20,若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合;

步骤S30,在各所述可迁移容器组合中选取可迁移目标容器进行迁移;

步骤S40,在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。

在本实施例中,需要说明的是,在进行容器部署时,通常需要资源节点可以提供足够的资源,这些资源可以为内存资源或者处理器算力资源等,而在各资源节点均不存在足够的资源来部署目标容器时,例如部署容器A需要内存资源为4G,CPU算力资源为2C,而当前存在3个资源节点,资源节点a剩余内存资源3G以及CPU算力资源3C,资源节点b剩余内存资源6G以及CPU算力资源1C,资源节点c剩余内存资源3G以及CPU算力资源4C,此时各资源节点均无法直接部署目标容器,但是各资源节点中仍然存在少量资源,这些资源无法利用起来,则会影响容器部署时的资源利用率。

所述容器部署协调端为用于协调容器部署的客户端,该客户端可以为软件APP,也可以为后台插件,在此不做限定,所述部署请求可以由用户通过云平台发送给容器部署协调端,所述部署请求中包括服务部署模型和目标云平台标识,所述服务部署模型可以包括容器资源request(需求)、容器资源l imit(限制)以及容器资源node se l ecto(定向调度)等信息,所述目标云平台标识为目标云平台的身份标识。

作为一种示例,步骤S10至步骤S50包括:响应于部署目标容器的部署请求,确定目标云平台中的各资源节点,并检测各资源节点中是否存在具备足够的资源的目标资源节点来部署目标容器;若存在,则直接在目标资源节点中部署目标容器;若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合,以及确定各可迁移容器组合中容器的迁出资源节点以及迁入资源节点,其中,所述迁出资源节点为已部署容器当前所在的资源节点,所述迁入资源节点为作为已部署容器的迁移目的地的资源节点;通过与应用端交互,确定迁移可迁移容器组合中容器对应用端业务的影响程度,在各所述可迁移容器组合中选取可迁移目标容器,将可迁移目标容器由对应的迁出资源节点迁移至对应的迁入资源节点;在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。

这样,本申请实施例中容器部署协调端在接收到部署目标容器的部署请求后,若各资源节点中均无足够的资源来直接部署目标容器,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合,以及确定各可迁移容器组合中容器的迁出资源节点以及迁入资源节点,即可通过与应用端交互,确定迁移可迁移容器组合中容器对应用端业务的影响程度,在各所述可迁移容器组合中选取可迁移目标容器,也即选取对应用端业务无影响的容器作为可迁移目标容器,进而将可迁移目标容器由对应的迁出资源节点迁移至对应的迁入资源节点,而在将所述可迁移目标容器迁移出对应的迁出资源节点后,即可在迁出资源节点中腾挪出足够的资源来部署目标容器,实现了在各资源节点均不存在足够的资源来直接部署目标容器时,通过在各资源节点之间迁移已部署的容器,在迁出资源节点中腾挪出资源来部署目标容器,进一步实现在各资源节点只存在少量资源不足以直接部署容器时,对各资源节点中少量资源的合理利用,提升了容器部署时的资源利用率。

其中,所述在各资源节点中检测是否存在可部署所述目标容器的目标资源节点,包括:

步骤S11,获取所述目标容器对应的云平台信息、容器类型标签和容器资源需求量;

步骤S12,根据所述云平台信息,确定所述目标容器所处云平台上各初始资源节点;

步骤S13,根据所述容器类型标签,在各所述初始资源节点中过滤出各资源节点;

步骤S14,检测各所述资源节点的剩余空闲资源量是否满足所述容器资源需求量;

步骤S15,若满足,则判定各资源节点中存在可部署所述目标容器的目标资源节点;

步骤S16,若不满足,则判定各资源节点中不存在可部署所述目标容器的目标资源节点。

在本实施例中,需要说明的是,所述云平台信息可以为云平台的端口地址或者认证密码等信息,所述云平台信息用于登录云平台,所述容器类型标签用于标识容器的类型,不同类型的容器由于容器对应的业务类型不同,通常适配不同的处理器算力资源的资源节点,例如可以设置容器类型标签a适配具备CPU算力资源的资源节点,设置容器类型标签b适配具备GPU算力资源的资源节点,设置容器类型标签c适配具备FPGA算力资源的资源节点。

作为一种示例,步骤S11至步骤S16包括:获取发送部署所述目标容器的部署请求的云平台信息,以及获取目标容器对应的容器类型标签以及容器资源需求量;根据所述云平台信息登录对应的云平台,确定所述目标容器所处云平台的各初始资源节点;根据各初始资源节点的节点标签,其中,所述节点标签为标识资源节点具备的处理器算力资源类型的标签,通过检测各所述节点标签和所述容器类型标签之间是否匹配,在各所述初始资源节点中过滤出各资源节点,也即过滤出与容器类型标签相匹配的节点标签对应的初始资源节点作为所述资源节点;分别检测各所述资源节点的剩余空闲资源量是否满足所述容器资源需求量,若满足,则判定各资源节点中存在可部署所述目标容器的目标资源节点,其中,所述目标资源节点为具备满足所述容器资源需求量的剩余空闲资源量的资源节点;若不满足,判定各资源节点中不存在可部署所述目标容器的目标资源节点。其中,所述容器资源需求量为部署目标容器所需要的资源量。

这样,本申请实施例实现了通过提取云平台信息登录对应的云平台,再根据目标容器的容器类型标签和云平台上个初始资源节点的节点标签,在各初始资源节点中初步筛选出与目标容器相匹配的资源节点,再根据各资源节点的剩余空闲资源量和目标容器的容器资源需求量,在资源节点中确定是否存在可以直接部署目标容器的目标资源节点,从而若存在则可以直接部署目标容器,若不存在则可以在初始筛选出来的各所述资源节点之间协调进行容器迁移,为部署目标容器腾挪出足够的资源,为提升容器部署时的资源利用率奠定基础。

其中,各所述资源节点包括至少一个迁出资源节点和至少一个迁入资源节点,所述容器部署信息包括已部署容器的容器占用资源量以及剩余空闲资源量,所述容器资源需求信息包括容器资源需求量,

所述根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合,包括:

步骤S21,获取所述迁出资源节点的剩余空闲资源量和所述容器资源需求量之间的资源量差值;

步骤S22,根据所述资源量差值和所述迁出资源节点中已部署容器的容器占用资源量,在所述迁出资源节点的已部署容器中选取各容器组合;

步骤S23,根据所述迁入资源节点的剩余空闲资源量,在各所述容器组合中选取各可迁移容器组合。

在本实施例中,需要说明的是,迁出资源节点的已部署容器若需要迁出,则在迁出后需要部署在其它资源节点上,这些其它资源节点为迁入资源节点,而为了迁出已部署容器和目标容器均可以成功部署,则迁出已部署容器后的迁出资源节点的剩余空闲资源量要满足部署目标容器所需的资源量,也即满足容器资源需求量,而迁入资源节点的剩余空闲资源量要满足部署迁出资源节点的已部署容器所需的资源量,其中,从迁出资源节点迁出的已部署容器可以为一个,也可以为多个,而迁入资源节点的数量也可以为一个或者多种,例如,假设目标容器的容器资源需求量为100,则资源节点A的剩余空闲资源量为50,资源节点B的剩余空闲资源量为25,资源节点C的剩余空闲资源量为25,从而若需要从资源节点A迁出已部署器a1和已部署容器a2,其中,已部署器a1占用的资源量为25,已部署器a2占用的资源量也为25,则可以将已部署容器a1由资源节点A迁移至资源节点B,将已部署容器a2由资源节点A迁移至资源节点C,这样资源节点A则空闲出的资源量为100,可直接部署目标容器。

作为一种示例,步骤S21至步骤S23包括:计算所述迁出资源节点的剩余空闲资源量和所述容器资源需求量之间的差值,得到资源量差值;获取所述迁出资源节点中各已部署容器的容器资源占用量,根据所述资源量差值和所述迁出资源节点中已部署容器的容器占用资源量,在所述迁出资源节点的已部署容器中选取各容器组合,其中,所述容器组合中容器所占用的容器占用资源量不低于所述资源量差值,以保证所述迁出资源节点可以腾挪出足够的资源量来部署目标容器;根据所述迁入资源节点的剩余空闲资源量和各所述容器组合中容器所需的迁移容器资源量,在各所述容器组合中过滤因资源不足而无法迁移的容器组合,将过滤剩下的各容器组合作为可迁移容器组合,例如假设存在容器组合A,A中包括容器a1和容器a2,a1需要资源量100来进行部署,a2需要资源量80来进行部署,还存在容器组合B,B中包括容器b1和容器b2,b1需要资源量80来进行部署,b2需要资源量70来进行部署,而目前存在迁入资源节点M,剩余空闲资源量为80,还存在迁入资源节点N,剩余空闲资源量为70,则容器组合A明显因为资源不足而无法进行迁移,对于容器组合B,则可以将容器b1迁移至迁入资源节点M,将容器b2迁移至迁入资源节点N,因此可将容器组合B作为可迁移容器组合。

这样,本申请实施例中先是获取所述迁出资源节点的剩余空闲资源量和所述容器资源需求量之间的资源量差值,再根据所述资源量差值和所述迁出资源节点中已部署容器的容器占用资源量,在所述迁出资源节点的已部署容器中选取各容器组合,可保证迁出资源节点可以腾挪出足够的资源量来成功部署目标容器,然后根据所述迁入资源节点的剩余空闲资源量和各所述容器组合中容器所需的迁移容器资源量,在各所述容器组合中过滤因资源不足而无法迁移的容器组合,保证选取的可迁移容器组合中的容器可以成功迁移至迁入资源节点,保证了在各资源节点存在少量资源而不足以直接部署目标容器时,通过在各资源节点之间迁移容器来部署目标容器的成功率。

其中,所述在各所述可迁移容器组合中选取可迁移目标容器进行迁移,包括:

步骤S31,根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合;

步骤S32,向所述待迁移容器所涉及的应用端发送容器迁移请求,并接收所述应用端反馈的迁移请求反馈结果;

步骤S33,若所述迁移请求反馈结果为同意迁移,则将所述待迁移容器组合中的容器作为可迁移目标容器进行迁移;

步骤S34,若所述迁移请求反馈结果为不同意迁移,则剔除所述待迁移容器组合,并返回执行步骤:基于各所述迁移容器数量,选取迁移容器最少的可迁移容器组合作为待迁移容器组合。

在本实施例中,需要说明的是,所述应用端为在容器上部署了业务进程的一端,例如可以为各类APP等。若容器独立承接了应用端的业务,则一旦迁移该容器,则会导致应用端的业务中断,此时不能迁移该容器,若多个容器共同承接了一个应用端的业务,且对各个容器进行了负载均衡,则迁移其中一个容器,并不会导致应用端的业务中断,此时可以迁移该容器。

另外一方面,若多个容器共同承接了一个应用端的业务,且对各个容器进行了负载均衡,则迁移其中一个容器后会出现2种情况,一种是应用端的业务发生卡顿,此时可以设置为不能迁移容器,另一种是对应用端的业务无影响,此时可以设置为可以迁移容器。

作为一种示例,步骤S31至步骤S34包括:根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,其中,所述迁移优先级信息至少可以为如下之一:待迁移的容器数量、待迁移的容器重要优先级、待迁移的容器所占用的资源量以及待迁移的容器所涉及应用端数量;向所述待迁移容器所涉及的应用端发送容器迁移请求,以供所述应用端评估迁移所述容器迁移请求对应的容器的影响程度,并根据评估得到的影响程度生成迁移请求反馈结果;所述容器部署协调端接收应用端反馈的迁移请求反馈结果,若所述迁移请求反馈结果,则将所述待迁移容器组合中的容器作为可迁移目标容器进行迁移;若所述迁移请求反馈结果为不同意迁移,则在各所述可迁移容器组合中剔除所述待迁移容器组合,并返回执行步骤:基于各所述迁移容器数量,选取迁移容器最少的可迁移容器组合作为待迁移容器组合,直至在各所述可迁移容器组合确定可迁移目标容器。这样,本申请实施例中在进行容器迁移时考虑了在实际业务环境中迁移容器是否会对业务产生影响,可保证在进行容器迁移是不会导致应用端的业务发生中断或者发生卡顿,实现了在用户无感的情况下成功部署目标容器。

其中,所述根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,包括:

步骤A10,获取各所述可迁移容器组合的迁移容器数量作为迁移优先级信息,根据所述迁移优先级信息,选取迁移容器数量最少的可迁移容器组合作为待迁移容器组合;

作为一种示例,步骤A10包括:分别将各所述可迁移容器组合中所有容器的数量作为对应的迁移容器数量;将各所述迁移容器数量作为迁移优先级信息,选取迁移容器数量最少的可迁移容器组合作为待迁移容器组合。这样,本申请实施例在部署目标容器时,可以实现通过迁移最少数量的容器来为目标容器腾挪出足够的资源,保证了迁移容器的效率,从而提升了在资源节点存在少量资源时通过迁移容器来部署目标容器的效率。

其中,所述根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,还包括:

步骤B10,获取各所述可迁移容器组合中容器的重要优先级信息作为迁移优先级信息,根据所述迁移优先级信息,选取容器重要优先级最低的可迁移容器组合作为待迁移容器组合;

作为一种示例,步骤B10包括:获取各所述可迁移容器组合中容器的重要优先级信息作为迁移优先级信息,其中,所述重要优先级信息可以为重要优先级标签,用于标识容器的重要优先级,其中,该重要优先级有容器承接的应用端业务相关,该容器承接的应用端业务越重要,则重要优先级越高,例如可设置充值业务的重要优先级高于浏览器搜索业务重要优先级;根据所述迁移优先级信息,选取容器重要优先级最低的可迁移容器组合作为待迁移容器组合。这样,本申请实施例在部署目标容器时,可尽量避免迁移承接了重要优先级高的应用端业务的容器,降低迁移容器对应用端业务的影响,提升用户体验。

其中,所述根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,还包括:

步骤C10,获取各所述可迁移容器组合中容器所占用的资源量作为迁移优先级信息,根据所述迁移优先级信息,选取占用的资源量最少的可迁移容器组合作为待迁移容器组合;

作为一种示例,步骤C10包括:分别将各所述可迁移容器组合中所有容器所占用的资源量作为迁移优先级信息,根据所述迁移优先级信息,选取占用的资源量最少的可迁移容器组合作为待迁移容器组合。这样,本申请实施例在部署目标容器时,可以实现通过迁移最少资源量所对应的容器来为目标容器腾挪出足够的资源,保证了迁移容器的效率,从而提升了在资源节点存在少量资源时通过迁移容器来部署目标容器的效率。

其中,所述根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,还包括:

步骤D10,获取各所述可迁移容器组合所涉及的应用端数量作为迁移优先级信息,根据所述迁移优先级信息,选取涉及的应用端数量最少的可迁移容器组合作为待迁移容器组合。

作为一种示例,步骤D10包括:分别将各所述可迁移容器组合中容器所涉及的应用端的数量作为迁移优先级信息;根据所述迁移优先级信息,选取涉及的应用端数量最少的可迁移容器组合作为待迁移容器组合。这样,本申请实施例通过在各资源节点之间进行容器迁移来部署目标容器时,可保证迁移容器所影响的应用端数量最少,从而来保证迁移容器对应用端业务所造成的影响最小,提升用户体验。

本申请实施例提供了一种容器部署方法,首先响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;若不存在,则证明资源节点中不存在足够的资源来部署目标容器,进而根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合;在各所述可迁移容器组合中选取可迁移目标容器进行迁移;在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。这样,在资源节点上虽然存在少量资源,但不足以直接部署目标容器时,通过在资源节点之间协调进行容器迁移,实现在资源节点中存在少量资源但不能直接部署目标容器时进行目标容器的部署,因此提升了容器部署时的资源利用率。

进一步地,参照图2,在本申请第二实施例中,与上述实施例相同或相似的内容,可以参考上文介绍,后续不再赘述。所述迁移优先级信息包括迁移优先级评分,所述根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合,包括:

步骤E10,获取各所述可迁移容器组合对应的迁移优先级评估信息,其中,所述迁移优先级评估信息包括至少如下之一:各所述可迁移容器组合的迁移容器数量、各所述可迁移容器组合中容器的重要优先级信息、各所述可迁移容器组合中容器所占用的资源量和各所述可迁移容器组合所涉及的应用端数量;

步骤E20,根据各所述迁移优先级评估信息,分别对各所述可迁移容器组合进行迁移优先级评估,得到各迁移优先级评分;

步骤E30,根据各所述迁移优先级评分,选取迁移优先级评分最高的可迁移容器组合作为待迁移容器组合。

在本实施例中,需要说明的是,在多个容器共同承接了一个应用端的业务,通过进行负载均衡,虽然迁移其中一个容器,不会导致应用端的业务发生中断,但是仍然会对应用端业务产生一定的影响,例如应用端业务发生轻微卡顿,一些功能暂时无法使用等。另一方面,在迁移容器时,应当尽可能迁移数量更少、涉及的资源量更少的容器来实现部署目标容器,这样可以提升容器部署的效率。

在本实施例中,需要说明的是,所述迁移优先级评估信息为用于评估容器迁移优先级的信息,所述迁移优先级评估信息包括至少如下之一:各所述可迁移容器组合的迁移容器数量、各所述可迁移容器组合中容器的重要优先级信息、各所述可迁移容器组合中容器所占用的资源量和各所述可迁移容器组合所涉及的应用端数量,其中,所述迁移容器数量为可迁移容器组合中的容器数量,所述重要优先级信息为表征容器的重要优先级的信息,容器承接的业务越重要,则容器越重要,所述应用端数量为可迁移容器组合中容器承接的业务所涉及的应用端的数量。

作为一种示例,步骤E10至步骤E30包括:获取各所述可迁移容器组合的迁移容器数量,根据各所述迁移容器数量,分别对各所述可迁移容器组合进行迁移优先级评估,得到各可迁移容器组合对应的第一评分,其中迁移容器数量越高,则第一评分越低,迁移容器数量越低,则第一评分越高;获取各所述可迁移容器组合中容器的重要优先级信息,根据各所述重要优先级信息,分别对各所述可迁移容器组合进行迁移优先级评估,得到各可迁移容器组合对应的第二评分,其中,可迁移容器组合中容器的重要优先级越高,则第二评分越低,可迁移容器组合中容器的重要优先级越低,则第二评分越高;获取各所述可迁移容器组合中容器所占用的资源量,根据各所述可迁移容器组合中容器所占用的资源量,分别对各所述可迁移容器组合进行迁移优先级评估,得到各可迁移容器组合对应的第三评分,其中可迁移容器组合中容器所占用的资源量越高,则第三评分越低,可迁移容器组合中容器所占用的资源量越低,则第三评分越高;获取各所述可迁移容器组合所涉及的应用端数量,根据各应用端数量,分别对各所述可迁移容器组合进行迁移优先级评估,得到各可迁移容器组合对应的第四评分,其中,应用端数量越高,则对应的可迁移容器组合的第四评分低,应用端数量越低,则对应的可迁移容器组合的第四评分高;将各可迁移容器组合的第一评分、第二评分、第三评分和第四评分分别进行聚合,得到各可迁移容器组合的迁移优先级评分,其中,迁移优先级分别越高,则可迁移容器组合的迁移优先级越高;根据各所述迁移优先级评分,选取迁移优先级评分最高的可迁移容器组合作为待迁移容器组合。其中,聚合的方式可以为加权平均或者加权求和等。

本申请实施例提供了一种迁移优先级的评估方法,也即基于可迁移容器组合的迁移容器数量、可迁移容器组合中容器的重要优先级信息、各所述可迁移容器组合中容器所占用的资源量和各所述可迁移容器组合所涉及的应用端数量中的至少一种,分别对各可迁移容器组合进行迁移优先级进行评分,得到多个评分,然后将各可迁移容器组合的多个评分分别进行聚合,得到各可迁移容器组合对应的迁移优先级评分,再选取迁移优先级评分最高的可迁移容器组合作为待迁移容器组合。这样,本申请实施例中考虑了可迁移容器组合的迁移容器数量、可迁移容器组合中容器的重要优先级信息、各所述可迁移容器组合中容器所占用的资源量和各所述可迁移容器组合所涉及的应用端数量等多个因素对迁移优先级的影响,提升迁移优先级评估的准确度,可以实现通过迁移数量较少、重要优先级较低、占用资源量较少以及涉及应用端数量较少的容器,来部署目标容器,可保证在资源节点存在少量资源时通过迁移容器来部署目标容器的效率,以及保证迁移容器对应用端业务的影响不会过高,提升了用户体验。

参照图3,本申请实施例提供一种容器部署方法,应用于应用端,在本申请容器部署方法的第三实施例中,所述容器部署方法包括:

步骤F10,响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;

步骤F20,根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。

在本实施例中,需要说明的是,所述应用端为在容器中部署业务进程的一端,可以为各类APP等。

作为一种示例,步骤F10至步骤F20包括:响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果,其中,所述迁移影响评估结果可以为会导致业务中断、会导致业务发生卡顿、会导致业务发生轻微卡段以及对业务无影响中的一种或者多种;根据所述迁移影响评估结果,向所述容器部署协调端反馈对应的迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器,例如,可以在迁移影响评估结果为会导致业务中断或者会导致业务发生卡顿时,设置迁移请求反馈结果为不同意迁移,在迁移影响评估结果为会导致业务发生轻微卡段或者对业务无影响时,设置迁移请求反馈结果为同意迁移;也可以在迁移影响评估结果为会导致业务中断时,设置迁移请求反馈结果为不同意迁移,在迁移影响评估结果为不会导致业务中断时,设置迁移请求反馈结果为同意迁移。

另外,所述容器迁移请求为容器部署协调端确定的可迁移目标容器对应的迁移请求,所述可迁移目标容器在各可迁移容器组合中选取得到,所述可迁移容器组合由所述容器部署协调端根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定,其中,所述容器部署协调端如何生成容器迁移请求以及如何确定可迁移目标容器的具体实现过程可参照上述步骤S10至步骤S40及其细化步骤中的内容,在此不再赘述。

本申请实施例提供了一种容器部署方法,具体在容器部署协调端确定各可迁移容器组合之后,应用端通过响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。这样该迁移请求反馈结果可协助容器部署协调端在各所述可迁移容器组合中选取可迁移目标容器进行迁移,使得容器部署协调端迁移容器时不会造成过大的影响,也即降低了在资源节点存在少量资源时,通过迁移容器来部署目标容器对应用端业务的影响,提升了用户体验,同时也在不影响应用端业务前提下提升了容器部署时的资源利用率。

为实现上述目的,参照图4,本申请还提供一种容器部署装置,应用于容器部署协调端,所述容器部署装置包括:

资源节点检测模块,用于响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;

可迁移容器组合确定模块,用于若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,确定各可迁移容器组合;

容器迁移模块,用于在各所述可迁移容器组合中选取可迁移目标容器进行迁移;

容器部署模块,用于在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。

可选地,各所述资源节点包括至少一个迁出资源节点和至少一个迁入资源节点,所述容器部署信息包括已部署容器的容器占用资源量以及剩余空闲资源量,所述容器资源需求信息包括容器资源需求量,可迁移容器组合确定模块还用于:

获取所述迁出资源节点的剩余空闲资源量和所述容器资源需求量之间的资源量差值;

根据所述资源量差值和所述迁出资源节点中已部署容器的容器占用资源量,在所述迁出资源节点的已部署容器中选取各容器组合;

根据所述迁入资源节点的剩余空闲资源量,在各所述容器组合中选取各可迁移容器组合。

可选地,所述容器迁移模块还用于:

根据各所述可迁移容器组合的迁移优先级信息,在各所述可迁移容器组合中选取待迁移容器组合;

向所述待迁移容器所涉及的应用端发送容器迁移请求,并接收所述应用端反馈的迁移请求反馈结果;

若所述迁移请求反馈结果为同意迁移,则将所述待迁移容器组合中的容器作为可迁移目标容器进行迁移;

若所述迁移请求反馈结果为不同意迁移,则剔除所述待迁移容器组合,并返回执行步骤:基于各所述迁移容器数量,选取迁移容器最少的可迁移容器组合作为待迁移容器组合。

可选地,所述容器迁移模块还用于:

获取各所述可迁移容器组合的迁移容器数量作为迁移优先级信息;

根据所述迁移优先级信息,选取迁移容器数量最少的可迁移容器组合作为待迁移容器组合。

可选地,所述容器迁移模块还用于:

获取各所述可迁移容器组合中容器的重要优先级信息作为迁移优先级信息;

根据所述迁移优先级信息,选取容器重要优先级最低的可迁移容器组合作为待迁移容器组合。

可选地,所述容器迁移模块还用于:

获取各所述可迁移容器组合中容器所占用的资源量作为迁移优先级信息;

根据所述迁移优先级信息,选取占用的资源量最少的可迁移容器组合作为待迁移容器组合。

可选地,所述容器迁移模块还用于:

获取各所述可迁移容器组合所涉及的应用端数量作为迁移优先级信息;

根据所述迁移优先级信息,选取涉及的应用端数量最少的可迁移容器组合作为待迁移容器组合。

可选地,所述容器迁移模块还用于:

获取各所述可迁移容器组合对应的迁移优先级评估信息,其中,所述迁移优先级评估信息包括至少如下之一:各所述可迁移容器组合的迁移容器数量、各所述可迁移容器组合中容器的重要优先级信息、各所述可迁移容器组合中容器所占用的资源量和各所述可迁移容器组合所涉及的应用端数量;

根据各所述迁移优先级评估信息,分别对各所述可迁移容器组合进行迁移优先级评估,得到各迁移优先级评分;

根据各所述迁移优先级评分,选取迁移优先级评分最高的可迁移容器组合作为待迁移容器组合。

可选地,所述资源节点检测模块还用于:

获取所述目标容器对应的云平台信息、容器类型标签和容器资源需求量;

根据所述云平台信息,确定所述目标容器所处云平台上各初始资源节点;

根据所述容器类型标签,在各所述初始资源节点中过滤出各资源节点;

检测各所述资源节点的剩余空闲资源量是否满足所述容器资源需求量;

若满足,则判定各资源节点中存在可部署所述目标容器的目标资源节点;

若不满足,则判定各资源节点中不存在可部署所述目标容器的目标资源节点。

本申请提供的容器部署装置,采用上述实施例中的容器部署方法,解决了容器部署时资源利用率低的技术问题。与现有技术相比,本申请实施例提供的容器部署装置的有益效果与上述实施例提供的容器部署方法的有益效果相同,且该容器部署装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。

为实现上述目的,参照图5,本申请还提供一种容器部署装置,应用于应用端,所述容器部署装置包括:

迁移影响评估模块,用于响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;

迁移请求反馈模块,用于根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。

本申请提供的容器部署装置,采用上述实施例中的容器部署方法,解决了容器部署时资源利用率低的技术问题。与现有技术相比,本申请实施例提供的容器部署装置的有益效果与上述实施例提供的容器部署方法的有益效果相同,且该容器部署装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。

本申请实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的容器部署方法。

下面参考图6,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。

通常,以下系统可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。

本申请提供的电子设备,采用上述实施例中的容器部署方法,解决了容器部署时资源利用率低的技术问题。与现有技术相比,本申请实施例提供的电子设备的有益效果与上述实施例提供的容器部署方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。

应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的容器部署的方法。

本申请实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。

上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:响应于部署目标容器的部署请求,在各资源节点中检测是否存在可部署所述目标容器的目标资源节点;若不存在,则根据各所述资源节点的容器部署信息以及所述目标容器的容器资源需求信息,在各所述资源节点的已部署容器中确定各可迁移容器组合;在各所述可迁移容器组合中选取可迁移目标容器进行迁移;在将所述可迁移目标容器迁移出对应的迁出资源节点后,将所述目标容器部署在所述迁出资源节点上。

又或者响应于容器部署协调端发送的容器迁移请求,评估迁移所述容器迁移请求所对应的待迁移容器对应用业务的影响程度,得到迁移影响评估结果;根据所述迁移影响评估结果,向所述容器部署协调端反馈迁移请求反馈结果,其中,所述迁移请求反馈结果用于决定是否迁移所述待迁移容器。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Sma l l ta lk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。

本申请提供的计算机可读存储介质,存储有用于执行上述容器部署方法的计算机可读程序指令,解决了容器部署时资源利用率低的技术问题。与现有技术相比,本申请实施例提供的计算机可读存储介质的有益效果与上述实施例提供的容器部署方法的有益效果相同,在此不做赘述。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

相关技术
  • 一种分布式系统部署方法、系统、电子设备及存储介质
  • 一种文件分布式部署方法、装置、电子设备及存储介质
  • 服务自动化部署方法、装置、电子设备及存储介质
  • 一种物理裸机的部署方法、装置、电子设备及存储介质
  • 容器部署方法、特殊资源管理终端及可读存储介质
  • 容器部署方法、装置、设备、存储介质及容器部署系统
  • 容器部署方法、装置、设备、存储介质及容器部署系统
技术分类

06120116623490