一种容器管理方法及装置与流程

文档序号:29492895发布日期:2022-04-06 13:59阅读:80来源:国知局
一种容器管理方法及装置与流程

1.本技术涉及网络技术领域,尤其涉及一种容器管理方法及装置。


背景技术:

2.近年来,随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出更高的要求。如,由于虚拟化技术存在的一些性能和资源使用效率方面的限制,为了提高业务处理效率,容器技术便应运而生。容器技术可以有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。
3.现有技术在节点中设置多个容器进行业务处理,可实现并行业务处理互不干扰,提高业务处理速度,且为了防止发送节点资源划分不均衡,导致的资源浪费情况,会在节点负载达到极限阈值后,启动重调度机制,将负载达到极限阈值的节点中的容器重新调度,即,将节点负载达到极限阈值的节点中的容器迁移至其他负载低的节点,以保证各节点中负载的均衡。该种方式虽然在一定程度上保证了各节点间的负载均衡,但在生产环境下,各节点间仍然存在不小的负载差距。如,有些节点的负载只有20%,有些节点的负载达到85%。也就是说,这两种节点都未达到重调度机制的极限阈值90%,不会发生重调度,但负载严重倾斜,负载高的节点或多或少都会对提供的服务产生影响,甚至存在负载高的节点的负载未达到极限阈值,就可能造成节点运行缓慢,甚至节点异常。另外,重调度机制虽然可以重新调度容器,均衡各节点的负载,但重调度机制调度正在提供服务的容器极大可能导致容器提供服务异常。总而言之,目前的重新调度机制仍然不能很好的解决节点集群中节点异常和服务异常问题,验证影响节点提供服务的质量。
4.因此,现在亟需一种容器管理方法及装置,用于提高节点提供服务质量。


技术实现要素:

5.本发明实施例提供一种容器管理方法及装置,用于提高节点提供服务质量。
6.第一方面,本发明实施例提供一种容器管理方法,适用于具有多个容器节点的容器集群管理系统;该方法包括:
7.容器调度节点监控各容器节点的不可压缩资源的负载;所述各容器节点通过所述容器集群管理系统设置有至少一个容器;
8.所述容器调度节点在确定存在负载达到负载阈值的容器节点时,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器;
9.所述容器调度节点向所述容器集群管理系统发送迁移指令,所述迁移指令用于指示所述容器集群管理系统对所述待迁移的容器进行迁移。
10.上述方法中,容器调度方法适用于具有多个容器节点的容器集群管理系统,所述容器节点中包含至少一个容器。如此,通过容器调度节点监控各容器节点中负载和容器的相关信息。其中,负载为不可压缩资源(如,内存、cpu等。不可压缩资源为可能会造成节点负
载过重而异常的资源,可压缩资源一般来说不会造成节点异常)。容器调度节点确定各容器节点中的任一容器节点负载达到负载阈值,获取该容器节点中各容器的使用状态,根据该各容器的使用状态从该各容器中确定出待迁移的容器,将待迁移容器迁移至该各容器节点中的另外容器节点,另外容器节点为各容器节点中除负载达到负载阈值容器节点外的容器节点。如此,在节点中的不可压缩资源达到负载阈值后,将没有在使用中的容器进行迁移,即可实现容器调度,均衡节点间资源,又可保证节点中容器的服务正常运行,于被服务者无感知。相比于现有技术中仅仅进行重调度来说,本技术即可以进一步均衡节点间资源,又考虑了容器使用情况,提高节点提供服务的质量。另外,通过上述方法,在节点达到负载阈值后,根据容器的使用情况对高负载节点中的容器迁移,降低高负载节点的负载,以降低高负载节点的异常概率,进一步降低负载集群的节点异常率,实现减少人工干预次数,保证容器集群运行的稳定性。可选的,所述容器调度节点在确定存在负载达到负载阈值的容器节点时,设置所述达到负载阈值的容器节点的状态为不可配置。
11.上述方法中,容器调度节点中的容器调度系统(安装在容器调度节点中的一个容器调度工具,且只需安装在容器调度节点上,由容器调度节点基于该容器调度工具调度容器集群管理系统中的各容器节点)通过容器调度节点中的容器集群管理系统(k8s)将该负载达到负载阈值的容器节点配置为不可配置-不分配服务状态。如此,防止容器重新调度过程中,容器集群管理系统又为该节点分配容器,保证重新调度和节点中各容器正常进行。
12.可选的,容器调度节点监控各容器节点的不可压缩资源的负载,包括:
13.容器调度节点基于开源监控系统,监控各容器节点的不可压缩资源的负载;
14.通过如下方式获取容器节点中各容器的使用状态,包括:
15.所述容器调度节点基于应用性能监控apm,确定容器节点中各容器的使用状态。
16.上述方法中,容器节点中设置开源监控系统,开源监控系统可以用于监控该容器节点的负载情况,当容器节点中不可压缩资源的负载超过负载阈值,则可以根据该容器节点标识和负载数据生成通知消息到容器调度节点。该容器节点上还有应用性能监控apm,容器调度节点接收通知消息后确定该容器节点负载超过负载阈值,则基于应用性能监控apm生成监控代理注入容器节点的各进程中,获取该容器节点中各容器的使用情况,容器的使用情况可以通过三类数据获取:根据容器的联机请求可以判断容器是否存在与其他服务器的数据传输,以判断其是否在为外界提供服务、根据容器的数据库任务判断容器是否在数据库中存在跑批或定时任务、根据容器的缓存任务可以判断容器是否有内部正在处理的任务。如此,可以及时并准确的得到容器的使用情况。
17.可选的,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器,包括:
18.从所述达到负载阈值的容器节点中确定出满足大负载配置条件的容器;所述大负载配置条件为容器节点的平均利用率大于等于负载阈值和各容器节点平均利用率的差值与容器节点内存总量的乘积;
19.从满足大负载配置条件的容器之外的容器中确定出待迁移的容器。
20.上述方法中,大负载配置的容器若迁移,则可能使得节点一旦接收该大负载配置容器,节点负载立即超过负载阈值。因此,在确定迁移容器之前,不论大负载配置的容器是否使用,均不能作为迁移容器。
21.可选的,从除满足大负载配置条件的容器之外的容器中确定出待迁移的容器,包括:
22.从除满足大负载配置条件的容器之外的容器中,确定出处于闲置状态的容器和/或资源使用率高的容器作为待迁移的容器。
23.上述方法中,从闲置容器中确定出迁移容器,保证迁移容器不是正在使用中的容器。如此,保证容器迁移不会对容器提供的服务造成影响。尽量令待迁移的容器为资源使用率高的容器。如此,降低高负载节点需要迁移的容器数量,进一步降低迁移的容器重新启动所耗费的资源,节约容器调度的资源成本。
24.可选的,所述待迁移的容器的负载总和不小于所述达到负载阈值的容器节点的负载与各容器节点的平均负载的差值;
25.闲置状态的容器的迁移优先级高于资源使用率高的容器的迁移优先级。
26.上述方法中,闲置状态的容器的迁移优先级高于资源使用率高的容器的迁移优先级。在一种示例中,从闲置容器中选出利用率最大的前几个容器,使得前几个容器的负载总和大于等于达到负载阈值的容器节点实时负载与集群平均负载的差值。如此,即可使得迁移容器后的节点处于集群平均负载的负载水平,又可尽量降低迁移容器数量,节省迁移容器在接收该迁移容器的容器节点中再启动所耗费的资源。
27.可选的,还包括:所述容器调度节点确定所述达到负载阈值的容器节点中各容器均满足大负载配置条件,则向所述容器集群管理系统申请扩容;
28.所述容器调度节点在确定存在异常状态的容器节点时,重启所述异常状态的容器节点。
29.上述方法中,将异常状态的容器节点重启。如此,可以将异常状态的容器节点“唤醒”,若该容器节点是负载过大造成的异常,可以重新调度使其恢复正常,节省运维成本,降低人工干预频率,保证容器集群运行的稳定性。若容器调度节点确定达到负载阈值的容器节点中各容器均满足大负载配置条件,则代表集群中的各容器节点均处于大负载配置情况,需要扩容以保证容器正常提供服务。
30.第二方面,本发明实施例提供一种容器管理装置,适用于具有多个容器节点的容器集群管理系统;该装置包括:
31.监控模块,用于监控各容器节点的不可压缩资源的负载;所述各容器节点通过所述容器集群管理系统设置有至少一个容器;
32.处理模块,用于在确定存在负载达到负载阈值的容器节点时,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器;
33.所述处理模块还用于,向所述容器集群管理系统发送迁移指令,所述迁移指令用于指示所述容器集群管理系统对所述待迁移的容器进行迁移。
34.第三方面,本技术实施例还提供一种计算设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
35.第四方面,本技术实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
36.本技术的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
37.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
38.图1为本发明实施例提供的一种容器管理的架构示意图;
39.图2为本发明实施例提供的一种容器管理方法的流程示意图;
40.图3为本发明实施例提供的一种容器管理方法的流程示意图;
41.图4为本发明实施例提供的一种容器管理装置示意图。
具体实施方式
42.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
43.图1为本发明实施例提供的一种容器管理的系统架构,其中,容器调度节点101中设置有用于容器重新调度的容器调度工具。具有多个容器节点的容器集群管理系统102,容器集群管理系统102中的每个容器节点中可以设置有k8s(k8s是为容器服务而生的一个可移植容器的编排管理工具)、开源监控系统(可以是promethus,是一款适合kubernetes环境的开源监控系统)、全链路应用性能监控系统(apm(application performance monitor)是一款全链路应用性能监控系统,目前已有多个开源项目,如skywalking、pinpoint等,此处主要用于应用容器的请求监控数据),每个容器节点中包含至少一个容器。
44.容器调度节点101基于容器集群管理系统102中的每个容器节点中的开源监控系统对各容器节点的负载信息进行监控,若容器集群管理系统102的各容器节点中存在容器节点的不可压缩资源的负载达到负载阈值,则将该达到负载阈值的容器节点设置为不可配置-不可分配服务状态的容器节点,并从该达到负载阈值的容器节点中确定出满足大负载配置条件的容器,从满足大负载配置条件的容器之外的容器中,获取各容器的使用状态和利用率,具体的:本实施例中,提前通过全链路应用性能监控系统将监控代理的进程注入到各个容器节点的容器中,需要获取各容器的使用状态和利用率时,即可通过监控代理的进程,对各个容器节点的容器进行监听并获取,根据各容器的使用状态和利用率确定出待迁移的容器。容器调度节点101向k8s发送迁移指令指示容器集群管理系统102对该待迁移的容器进行迁移。如此,相比于现有技术中仅仅基于容器集群管理系统的重调度机制对各容器节点中的容器进行重调度来说,上述系统架构可以提高重调度灵敏性,并在此基础上保证容器正常提供服务,提高节点提供服务的质量。
45.基于此,本技术实施例提供了一种容器管理方法的流程,适用于具有多个容器节点的容器集群管理系统;如图2所示,包括:
46.步骤201、容器调度节点监控各容器节点的不可压缩资源的负载;所述各容器节点
通过所述容器集群管理系统设置有至少一个容器;
47.步骤202、所述容器调度节点在确定存在负载达到负载阈值的容器节点时,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器;
48.步骤203、所述容器调度节点向所述容器集群管理系统发送迁移指令,所述迁移指令用于指示所述容器集群管理系统对所述待迁移的容器进行迁移。
49.上述方法中,容器调度方法适用于具有多个容器节点的容器集群管理系统,所述容器节点中包含至少一个容器。如此,通过容器调度节点监控各容器节点中负载和容器的相关信息。其中,负载为不可压缩资源(如,内存、cpu等。不可压缩资源为可能会造成节点负载过重而异常的资源,可压缩资源不会造成节点异常,可压缩资源一般为cpu循环和磁盘i/o带宽),在本发明实施例中,若是不杀掉容器,不可压缩资源就无法被回收,从而导致容器节点挂掉,从而影响整个容器服务。因此,容器调度节点确定各容器节点中的任一容器节点负载达到负载阈值,获取该容器节点中各容器的使用状态,根据该各容器的使用状态从该各容器中确定出待迁移的容器,将待迁移容器迁移至该各容器节点中的另外容器节点,另外容器节点为各容器节点中除负载达到负载阈值容器节点外的容器节点。如此,在节点中的不可压缩资源达到负载阈值后,将没有在使用中的容器进行迁移,即可实现容器调度,均衡节点间资源,又可保证节点中容器的服务正常运行,于被服务者无感知。相比于现有技术中仅仅进行重调度来说,本技术即可以进一步均衡节点间资源,又考虑了容器使用情况,提高节点提供服务的质量。另外,通过上述方法,在节点达到负载阈值后,根据容器的使用情况对高负载节点中的容器迁移,降低高负载节点的负载,以降低高负载节点的异常概率,进一步降低负载集群的节点异常率,实现减少人工干预次数,保证容器集群运行的稳定性。
50.本技术实施例提供了一种容器管理方法,所述容器调度节点在确定存在负载达到负载阈值的容器节点时,设置所述达到负载阈值的容器节点的状态为不可配置。也就是说,当容器节点中的不可压缩资源达到负载阈值后,需要对该达到负载阈值的容器节点进行容器的重新调度,该过程中防止发生容器集群管理系统继续为该容器节点分配服务,该容器节点可能为待迁移的容器分配任务或重新构建容器分配任务等情况,导致容器调度混乱,待迁移的容器无法正常迁移。将该达到负载阈值的容器节点配置为不可配置-不可分配服务,以达到“只出不进”的状态,保证容器调度的正常进程。
51.本技术实施例提供了一种容器管理方法,容器调度节点监控各容器节点的不可压缩资源的负载,包括:
52.容器调度节点基于开源监控系统,监控各容器节点的不可压缩资源的负载;
53.通过如下方式获取容器节点中各容器的使用状态,包括:
54.所述容器调度节点基于应用性能监控apm,确定容器节点中各容器的使用状态。即,本发明实施例中,可选执行本发明的步骤201之前,容器管理方法包括步骤:
55.基于应用性能监控apm,将监控代理的进程注入到各个容器节点的容器中,以对各容器节点的容器进行使用状态的监控;
56.并在执行“在确定存在负载达到负载阈值的容器节点时”,所述容器调度节点触发使用状态的获取指令,以基于应用性能监控apm,确定容器节点中各容器的使用状态。
57.也就是说,容器节点中设置有开源监控系统和应用性能监控apm。如此,开源监控系统对容器节点的各项负载指标(如,cpu、内存)进行监控,并配置负载阈值。以实现容器节
点中的负载超过该负载阈值,则将该容器节点标识通知容器调度节点,使得容器调度节点根据该容器节点中的各容器的信息确定各容器中待迁移的容器。应用性能监控apm可以通过应用无感知将监控代理-agent注入容器的方式,对容器中的进程进行数据采集,可获取到联机请求、非web的后台事务、数据库以及各种中间件等的请求数据。如此,根据请求数据确定容器的使用情况,基于该容器的使用情况确定该容器是否为待迁移的容器。说明性的,联机请求为容器节点中容器为外部服务端或客户端提供服务的请求,若容器中存在此类数据,则证明该容器正在为外部提供服务,使用情况为正在使用,一般意义不可作为待迁移的容器,否则会使得该容器为外部提供的服务异常。非web的后台事务为容器的内部服务,如,容器缓存中存在的事务。数据库为容器与数据库之前可能存在跑批或定时任务的数据库任务数据,若将该容器作为待迁移的容器,则会导致该容器与数据库之间的跑批或定时任务出现异常。中间件也可以认为容器内部的服务。如此,将容器的使用数据具体到各方面,可以准确得到容器的使用情况,以此判断容器是否在使用中,确保容器服务的稳定性。另外,当该容器节点负载过大,需要迁移出的容器比较多,而闲置容器比较少时,可以根据使用信息中内部服务和外部服务的种类的重要程度确定出待迁移的容器。在一种示例中,该达到负载阈值的容器节点中需要重新分配的负载数值为a,而该容器节点中闲置的容器的负载数据和为b,b小于a,基于外部服务重要于内部服务,则可以从在使用中的容器中确定出未提供外部服务的容器,将未提供外部服务的容器作为待迁移的容器。这里对确定待迁移的容器的方法可以根据需要灵活设置,具体不做限制。
58.本技术实施例提供了一种容器管理方法,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器,包括:从所述达到负载阈值的容器节点中确定出满足大负载配置条件的容器;所述大负载配置条件为容器节点的平均利用率大于等于负载阈值和各容器节点平均利用率的差值与容器节点内存总量的乘积;从满足大负载配置条件的容器之外的容器中确定出待迁移的容器。其中,大负载配置为负载过高的容器,这种满足大负载配置条件的容器若迁移,则可能使得其他节点一旦接收该大负载配置容器,节点负载立即超过负载阈值,使得容器的调度没有效果,还浪费资源。因此,在确定待迁移容器之前,不论大负载配置的容器是否使用,均不能作为迁移容器。则从满足大负载配置条件的容器之外的容器中确定出待迁移的容器。如此,可以实现容器调度的集群负载均衡作用。另外,大负载配置条件可以为:容器内存平均利用率大于等于负载阈值和各容器节点平均利用率的差值与容器节点内存总量的乘积。换句话说,大负载配置的定义为:容器内存平均利用量》=(负载阀值-集群平均利用率)*容器节点内存的总量(c_memory_avg》=(threshold_v-g_memory_avg)*node_memory)。在一种示例中,容器的内存使用量为8g,负载阀值为80%,集群平均利用率为70%,容器节点内存总量为60g,此时8》(80%-70%)*60)则该容器为大负载配置容器,不可作为待迁移的容器。
59.本技术实施例提供了一种待迁移的容器确定方法,从除满足大负载配置条件的容器之外的容器中确定出待迁移的容器,包括:从满足大负载配置条件的容器之外的容器中,确定出处于闲置状态的容器和/或资源使用率高的容器作为待迁移的容器。也就是说,获取非大负载配置的各容器,从该各容器中确定出闲置状态的容器作为待迁移的容器。或者,从该各容器中确定出资源使用率高的前几位容器作为待迁移的容器,或者,从该各闲置状态的容器中确定出资源使用率高的前几位容器作为待迁移的容器。
60.这里的前提是,待迁移的容器集群的总负载数值大于等于该容器节点需要减少的负载数值。如此,若从该各容器中确定出的闲置状态的容器的负载数值小于该容器节点需要减少的负载数值,则根据非大负载配置的且在使用中的各容器的使用情况确定出待迁移的容器(可以设置使用类型或服务项目的重要性确定作为待迁移的容器,即造成影响小的使用类型或服务项目的容器作为待迁移的容器)。或者,若从该各容器中确定出的闲置状态的容器的负载数值小于该容器节点需要减少的负载数值,则根据非大负载配置的且在使用中的各容器的使用情况和资源使用率确定出待迁移的容器(可以根据容器的使用类型、服务项目和资源使用率的重要性设置容器的使用类型、服务项目和资源使用率的迁移优先级,根据容器的使用类型、服务项目和资源使用率及其迁移优先级确定待迁移的容器,即造成影响小的使用类型、服务项目,且资源使用率高的容器作为待迁移的容器)。如此,保证容器迁移不会对容器提供的服务造成影响,或者,将容器迁移造成的影响降至最低(在容器重调度机制中,若按上述方法进行容器调度,可能需要调度在使用中的容器,则可以考虑容器迁移对容器提供服务的影响和负载达到负载阈值对容器提供服务的影响灵活设置容器调度的方案,这里具体不做限制)。
61.本技术实施例提供了一种待迁移的容器确定方法,所述待迁移的容器的负载总和不小于所述达到负载阈值的容器节点的负载与各容器节点的平均负载的差值;闲置状态的容器的迁移优先级高于资源使用率高的容器的迁移优先级。其中,待迁移的容器的负载总和不小于达到负载阈值的容器节点的负载与各容器节点的平均负载的差值。也就是说,针对达到负载阈值的容器节点,调度该容器节点中的待迁移的容器,使得该容器节点的负载处于集群的平均负载。
62.在一种示例中,待迁移的容器集合的负载总和=容器节点实时负载-集群平均负载。如,当前集群平均负载是70%,容器节点的实时负载是85%,则代表预期将把容器节点的负载降低15%,到达集群平均负载。另外,为了将调度容器的业务服务的影响范围降到最低。优先选择闲置中的且资源使用量更高的容器,可减少对提供服务的影响以及容器数量。则选择待迁移的容器的优先级规则为:闲置的容器》使用中的容器(减少服务使用影响),实时资源使用率高的容器》资源使用率低的容器(减少容器数量。如此,节约容器迁移和容器重新启用的资源)。最终确定容器节点的容器调度完成,且容器节点的负载降低至负载阈值以下,则将该容器节点的配置变更为可分配服务的状态-可配置。还可以在容器节点调度一段时间内持续观察该容器节点,若该容器节点在该段时间内又达到负载阈值,则重新调度,这里还可以设置时间段内的调度次数阈值,若短时间内超过了调度次数阈值,则将直接告警。
63.本技术实施例提供了一种容器管理方法,还包括:
64.所述容器调度节点确定所述达到负载阈值的容器节点中各容器均满足大负载配置条件,则向所述容器集群管理系统申请扩容;
65.所述容器调度节点在确定存在异常状态的容器节点时,重启所述异常状态的容器节点。也就是说,若集群中的所有容器节点中的容器均为大负载配置容器,则该容器节点集群符合资源不足情况,将自动添加节点资源使集群平均利用率下降。另外,容器节点的负载有时会出现突增的情况,而容器集群管理系统处理高负载问题较慢,导致处于持续高负载状态下的容器节点上部分基础服务不可用(如容器依赖的docker服务)。当容器调度节点监
控到这种情况时,判定为容器节点的状态为异常状态,此时容器节点中的部分业务容器已出现服务异常现象。容器调度节点将自动重启该异常容器节点,使该容器节点及其上的业务容器在短时间内恢复正常。如此,可以将异常状态的容器管理节点“唤醒”,若该容器管理节点是负载过大造成的异常,可以重新调度使其恢复正常,节省运维成本。
66.基于上述方法流程,本技术实施例提供了一种容器管理方法的流程,如图3所示,包括:
67.步骤301、监控容器节点集群中各容器节点。
68.步骤302、是否存在异常的容器节点,若是,则执行步骤303,否则执行步骤304。
69.步骤303、将该异常的容器节点重启。
70.步骤304、从容器节点集群中获取不可压缩资源负载达到负载阈值的容器节点。
71.步骤305、将达到负载阈值的容器节点配置为不可配置-不可分配服务。
72.步骤306、针对每个达到负载阈值的容器节点,确定出该达到负载阈值的容器节点中大负载配置的容器。
73.步骤307、获取该达到负载阈值的容器节点中大负载配置的容器以外的各容器的使用状态和资源利用率。
74.步骤308、根据该各容器的使用状态和资源利用率确定出待迁移的容器。
75.此处,根据该各容器的使用状态确定出闲置状态的容器,若闲置状态的各容器的负载总和大于该达到负载阈值的容器节点需要迁移的负载数值,则从闲置状态的各容器中选择出资源利用率高(根据资源利用率大小将闲置状态的各容器从大到小排序,选取前几个资源利用率高的闲置状态的容器,该前几个资源利用率高的闲置状态的容器的负载总和≥该达到负载阈值的容器节点需要迁移的负载数值)的闲置状态的容器作为待迁移的容器。即,闲置状态的容器的迁移优先级高于资源使用率高的容器的迁移优先级。
76.步骤309、根据接收的包含各待迁移的容器的迁移指令,将各待迁移容器进行迁移,完成容器调度。
77.步骤310、检查该达到负载阈值的容器节点的负载是否降至负载阈值以下,若是,则执行步骤311,否则,执行步骤307。
78.需要说明的是,上述流程步骤并不唯一,如,步骤302和步骤303为重启流程,该重启流程可以与步骤301、步骤304至步骤311的重调度流程并行执行或串行执行,即该重启流程也可以在步骤301、步骤304至步骤311的重调度流程之后执行,这里具体不做限制。
79.步骤311、将该达到负载阈值的容器节点配置为可分配服务状态。
80.基于同样的构思,本发明实施例提供一种容器管理装置,适用于具有多个容器节点的容器集群管理系统,图4为本技术实施例提供的一种容器管理装置示意图,如图4示,包括:
81.监控模块401,用于监控各容器节点的不可压缩资源的负载;所述各容器节点通过所述容器集群管理系统设置有至少一个容器;
82.处理模块402,用于在确定存在负载达到负载阈值的容器节点时,根据所述达到负载阈值的容器节点中各容器的使用状态确定出待迁移的容器;
83.所述处理模块402还用于,向所述容器集群管理系统发送迁移指令,所述迁移指令用于指示所述容器集群管理系统对所述待迁移的容器进行迁移。
84.可选的,所述容器调度节点在确定存在负载达到负载阈值的容器节点时,设置所述达到负载阈值的容器节点的状态为不可配置。
85.可选的,所述监控模块401具体用于,基于开源监控系统,监控各容器节点的不可压缩资源的负载;所述监控模块401具体用于,基于应用性能监控apm,确定容器节点中各容器的使用状态。
86.可选的,所述处理模块402具体用于,从所述达到负载阈值的容器节点中确定出满足大负载配置条件的容器;所述大负载配置条件为容器节点的平均利用率大于等于负载阈值和各容器节点平均利用率的差值与容器节点内存总量的乘积;从满足大负载配置条件的容器之外的容器中确定出待迁移的容器。
87.可选的,所述处理模块402具体用于,从除满足大负载配置条件的容器之外的容器中,确定出处于闲置状态的容器和/或资源使用率高的容器作为待迁移的容器。
88.可选的,所述待迁移的容器的负载总和不小于所述达到负载阈值的容器节点的负载与各容器节点的平均负载的差值;闲置状态的容器的迁移优先级高于资源使用率高的容器的迁移优先级。
89.可选的,所述处理模块402还用于,确定所述达到负载阈值的容器节点中各容器均满足大负载配置条件,则向所述容器集群管理系统申请扩容;在确定存在异常状态的容器节点时,重启所述异常状态的容器节点。
90.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
91.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
92.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
93.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
94.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1