CN112202860A - 一种容器流量调整方法、装置及*** - Google Patents

一种容器流量调整方法、装置及*** Download PDF

Info

Publication number
CN112202860A
CN112202860A CN202011002099.0A CN202011002099A CN112202860A CN 112202860 A CN112202860 A CN 112202860A CN 202011002099 A CN202011002099 A CN 202011002099A CN 112202860 A CN112202860 A CN 112202860A
Authority
CN
China
Prior art keywords
container
groups
group
node
flow
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.)
Granted
Application number
CN202011002099.0A
Other languages
English (en)
Other versions
CN112202860B (zh
Inventor
梁鸿斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Pinwei Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Pinwei Software Co Ltd filed Critical Guangzhou Pinwei Software Co Ltd
Priority to CN202011002099.0A priority Critical patent/CN112202860B/zh
Publication of CN112202860A publication Critical patent/CN112202860A/zh
Application granted granted Critical
Publication of CN112202860B publication Critical patent/CN112202860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种容器流量调整方法、装置、计算机设备及存储介质,属于集群管理技术领域,方法包括:在集群的多个节点中确定出当前处于过载状态的目标节点;根据目标节点上运行的各个容器组的资源使用率,对所有容器组分成两个分组,以使两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;将第二分组内的各个容器的流量调整到处于正常状态的节点上,本发明通过对热点上的容器进行分组,并对第二组的容器的流量进行调整,能够降低节点上的容器本身的负载,从而达到降低容器资源使用的结果,最终达到避免节点故障的目的。

Description

一种容器流量调整方法、装置及***
技术领域
本发明涉及集群管理技术领域,尤其涉及一种容器流量调整方法、装置、计算机设备及存储介质。
背景技术
Kubernetes集群(以下简称K8s集群)以容器技术为基础实现了一整套集群编排的规范。Pod是Kubernetes集群中的应用负载,Pod运行在Node节点上,Pod由一个或者多个容器组成(例如Docker容器引擎创建的容器Container),它们共享容器存储、网络和容器运行配置项。Node是K8s集群中的计算节点,用来承载被分配Pod的运行,是Pod运行的宿主机。容器的运行依赖于每个Node上的不同资源,一个K8s集群包含若干个Node节点。
在K8s集群运行过程中难免会因为应用或者业务变化而导致资源分布估算出现差错的情况,进而导致部分宿主机负载过高而产生热点,宿主机热点可能会因为机器资源不足而无法正常满足业务的使用需要,从而会导致应用请求超时等问题,轻则用户请求失败,重则导致应用崩溃,服务不可用。
目前,应对宿主机热点,常规方式可以选择硬抗加上等分钟级的HPA(水平扩容工具)对负载高的应用通过增加容器实例的数量进行平摊负载,但是由于HPA是分钟级的,容器的创建到能提供服务往往需要几分钟时间,响应比较缓慢,同时也很容易会遇到加载大量数据等情况,导致增加宿主机的负载。
发明内容
为了解决上述背景技术中提到的问题,本发明提供了一种容器流量调整方法、装置、计算机设备及存储介质。
第一方面,提供了一种容器流量调整方法,所述方法包括:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
进一步地,所述从集群包含的多个节点中确定出当前处于过载状态的目标节点,包括:
获取所述集群中每个节点的当前资源使用率;
在集群的多个节点中确定出当前处于过载状态的目标节点。
进一步地,所述根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,包括:
对所述目标节点上的所有所述容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有所述容器组,每遍历到一个所述容器组时,将当前遍历到的所述容器组划分到所述两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个所述容器组的分组。
进一步地,将所述第二分组内的各个容器的流量调整到处于正常状态的节点上,包括:
从预设的容器配置信息表中,获取所述第二分组内的每个容器的最大容器流量值;
对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将所述需要调度的流量调度至处于正常状态的节点的容器上。
进一步地,所述在集群的多个节点中确定出当前处于过载状态的目标节点步骤之后,所述方法还包括:
对所述目标节点上的每个容器标记禁止状态,以禁止对每个所述容器的资源进行调整。
进一步地,所述方法还包括:
当所述目标节点由过载状态恢复至正常状态时,将所述第二分组上的每个容器的流量调整至最大流量;
对所述目标节点上的每个容器标记的禁止状态进行解除,并在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,其中,所述当前资源上限值是上一次对该容器的资源进行扩缩容后得到的。
第二方面,提供了一种容器流量调整装置,所述装置包括:
节点确定模块,用于在集群的多个节点中确定出当前处于过载状态的目标节点;
容器分组模块,用于根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
流量调整模块,用于将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
进一步地,所述容器分组模块具体用于:
对所述目标节点上的所有所述容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有所述容器组,每遍历到一个所述容器组时,将当前遍历到的所述容器组划分到所述两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个所述容器组的分组。
进一步地,所述流量调整模块具体用于:
从预设的容器配置信息表中,获取所述第二分组内的每个容器的最大容器流量值;
对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将所述需要调度的流量调度至处于正常状态的节点的容器上。
进一步地,所述装置还包括:
状态标记模块,用于对所述目标节点上的每个容器标记禁止状态,以禁止对每个所述容器的资源进行调整。
进一步地,所述装置还包括:
流量恢复模块,用于当目标节点由过载状态恢复至正常状态时,将所述第二分组上的每个容器的流量恢复至最大流量;
状态解除模块,用于对所述目标节点上的每个容器标记的禁止状态进行解除;
资源调整模块,用于并在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,其中,所述当前资源上限值是上一次对该容器的资源进行扩缩容后得到的。
第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
本发明提供了一种容器流量调整方法、装置、计算机设备及存储介质,由于对当前处于过载状态的目标节点上的所有容器组分为两个分组时,限定了两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量,这样将第二分组内的各个容器的流量调度到处于正常状态的节点上,能够避免盲目地对目标节点上的所有容器组的流量进行调整,从而避免了资源使用率过高的容器组的流量调度到其他节点而可能导致其他节点负载过高的情况发生,同时也能够快速降低目标节点的容器资源使用,达到有效避免节点故障的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中的容器流量调整方法的流程示意图;
图2为一个实施例中的容器分组的示意图;
图3为一个实施例中的容器流量调整装置的结构示意图;
图4为一个实施例中的计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
此外,在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如背景技术所述,目前应对K8s集群中的宿主机热点,常规方式通常选择硬抗加上等分钟级的HPA(水平扩容工具)对负载高的应用通过增加容器实例的数量进行平摊负载,但是由于HPA是分钟级的,容器的创建到能提供服务往往需要几分钟时间,响应比较缓慢,同时也很容易会遇到加载大量数据等情况,导致增加宿主机的负载。为此,本发明实施例提供一种容器流量调整方法,能够避免盲目地对目标节点上的所有容器组的流量进行调整,从而避免资源使用率过高的容器组的流量调度到其他节点而可能导致其他节点负载过高的情况发生,同时也能够快速降低目标节点的容器资源使用,达到有效避免节点故障的目的。
在一个实施例中,提供了一种容器流量调整方法,参考图1所示,该方法可以包括如下步骤:
步骤S1,在集群的多个节点中确定出当前处于过载状态的目标节点。
其中,集群为K8s集群,K8s集群包括若干宿主机节点,每个宿主机节点上运行若干Pod,每个Pod(即,容器组)由通过Docker容器引擎创建的一个或者多个容器,一个宿主机节点上运行的各个容器依赖于该宿主机节点上的资源,如CPU、内存、磁盘和GPU等等,各个容器可以基于linux的cgroup(control group)子***实现资源使用的隔离,cgroup的每个子***都有自己单独的资源使用量统计数据。
在一个示例中,上述步骤S1的实现过程可以包括:
获取集群中每个节点的当前资源使用率,对每个节点的当前资源使用率与预设使用率阈值进行比较,根据比较结果在集群的多个节点中确定出当前处于过载状态的目标节点。
其中,节点的状态可以根据节点的资源使用率划分为多个状态,包括:正常状态、警戒状态和过载状态,其中,当节点的资源使用率超过预设使用率阈值时,节点处于过载状态;当节点的资源使用率不高于预设使用率阈值且不低于警戒阈值时,节点处于警戒状态;当节点的资源使用率低于警戒阈值时,节点处于正常状态。其中,各个阈值可以根据实际经验值进行设定,例如当节点的当前资源使用率超过80%时,该节点处于过载状态(也可以称该节点为“热点”);当节点的当前资源使用率介于60%至80%之间时,该节点处于警戒状态,当节点的当前资源使用率低于60%时,该节点处于正常状态。
具体地,可以通过设置定时任务,以预设时间周期(例如每间隔5s)读取最上层的cgroup计算出来的当前时间点时的资源使用率,各个节点的当前资源使用率汇总了其自身以及运行在该节点上所有容器共同使用的资源的使用率,并不需要自行进行汇总计算。其中,各个节点的当前资源使用率可以通过linux的/proc***采集,由此能够实现秒级性能指标数据的采集。
步骤S2,根据目标节点上运行的各个容器组的资源使用率,对所有容器组分成两个分组,以使两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量。
其中,每个容器组的资源使用率可以通过对该容器组包含的一个或多个容器的当前资源使用率进行求和统计得到。
其中,每个容器的当前资源使用率可以通过如下方式获取得到,包括:
获取目标容器在预设时间段间内对资源的累计资源使用量,结合该目标容器当前时间的资源上限值,计算该目标容器的当前资源使用率。优选地,当宿主机节点的当前CPU资源使用率低于预设警戒阈值时,获取目标容器的当前CPU资源使用率。
以CPU子***为例,每个容器组内的cpuacct.usage文件保存了整个组内的每个容器累计使用的CPU的时间,可以通过cgroupfs方式周期性地读取容器组内的cpuacct.usage文件能够获取该各个容器在预设时间段间内对CPU的累计资源使用量,再结合当前时间各个容器的cpu.cfs_quota_us内的资源上限值,可以计算各个容器当前时间的cpu资源使用率。示例公式如下:
Figure BDA0002694691600000081
其中,cpuUsage(t)为某一目标容器的当前资源使用率,cpuacct.usaget2为时间点t2时读取的cpuacct.usage文件中该目标容器的资源使用量,cpuacct.usaget1为时间点t1时读取的cpuacct.usage文件中该目标容器的资源使用量,cpu.cfs_quota_us为该目标容器当前时刻cpu的资源上限值。
其中,上述的两个分组包括第一分组和第二分组,第一分组的容器组的资源使用率之和与第二分组的容器组的资源使用率之和之间的差值最小,第一分组包含资源使用率最高的容器组,第一分组的容器组数量不超过第二分组的容器组数量,如此可以使得第一分组与第二分组的资源使用率之和大致相同。
在一个示例中,上述步骤S2的实现过程可以包括:
对目标节点上的所有容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有容器组,每遍历到一个容器组时,将当前遍历到的容器组划分到两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个容器组的分组。
为了便于理解上述分组过程,以5个容器组A~E为例进行说明。
首先,按照资源使用率由高至低的顺序对5个容器组进行排序,得到排序结果为[A,D,C,B,E],对应的资源使用率为[60%,40%,38%,35%,30%]。
然后对排序结果[A,D,C,B,E]进行顺序遍历,其中,遍历操作之前,第一分组和第二分组均为空。遍历到的第一个容器组为A,将A划分到第一分组;遍历到的第二个容器组为D,由于第二分组为空,此时会将D划分到第二分组中;遍历到的第三个容器组为C,此时由于第二分组的当前资源使用率之和(40%)最小,会将C划分到第二分组中;遍历到的第四个容器组为B,此时由于第一分组的当前资源使用率之和(60%)最小,此时会将B划分到第一分组中;遍历到的第四个容器组为E,此时由于第二分组的当前资源使用率之和(78%)最小,会将E划分到第二分组中,这样划分得到的第一分组包含容器组A和容器组B,第二分组包含容器组C、容器组D和容器组E。
步骤S3,将第二分组内的所有容器的流量调整到处于正常状态的节点上。
其中,可以对将第二分组内的所有容器的流量按照预设比例调度到处于正常状态的节点上。
其中,预设比例可以根据实际需要进行设置,可以对所有容器设为同一预设比例,例如设置50%,即将第二分组内的所有容器的流量的一半调整到资源使用率最低的节点上。此外,还可以根据各个容器的预设优先级设置不同的预设比例,本发明实施例对此不做具体限定。
在一个示例中,上述步骤S3的实现过程可以包括:
从预设的容器配置信息表中,获取第二分组内的每个容器的最大容器流量值;对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将需要调度的流量调度至处于正常状态的节点的容器上。
其中,运行在集群中的各个节点上的每个容器预先在容器配置信息表中配置有对应的最大容器流量值,最大容器流量值用于对容器的最大流量进行限定,即单位时间内该容器可以提供的流量的最大值。
其中,在将需要调度的流量调度至处于正常状态的节点的容器上时,可以获取集群中处于正常状态的至少一个节点的资源使用率,将第二分组内的所有容器的流量按预设比例调度到至少一个节点中的资源使用率最低的节点上。
本实施例中,通过将第二分组内的所有容器的流量按预设比例调度到处于正常状态的节点上,如此实现对第二分组上的容器进行流量控制,从而可以保障容器服务的稳定性和可用性,且有效避免通过降低资源限额的方式限制容器进一步使用资源而造成容器资源使用被限流,从而导致更快地出现请求超时等故障发生;另外,也能够有效地平衡了集群中的各个节点之间的流量,提高每个节点的利用率。
在一个实施例中,方法还可以包括:
当目标节点由过载状态恢复至正常状态时,将第二分组上的每个容器的流量调整至最大流量;
对目标节点上的每个容器标记的禁止状态进行解除,并在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,其中,当前资源上限值是上一次对该容器的资源进行扩缩容后得到的。
其中,当容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,该过程可以包括:
从预设的资源配置信息表中,获取容器预先配置的目标使用率以及单次资源调整允许范围;
计算容器的当前资源使用率与目标使用率的比值与容器的当前资源上限值的乘积,以作为容器的目标资源上限值;
基于单次资源调整允许范围以及容器的目标资源上限值,确定容器对应的最新资源上限值;
将容器的当前资源上限值调整到最新资源上限值。
其中,单次资源调整允许范围包括单次资源扩容允许范围,基于单次资源调整允许范围以及容器的目标资源上限值,确定容器对应的最新资源上限值,包括:
当容器需要扩容时,从容器的目标资源上限值与单次资源扩容允许范围的下限中取最大值,并从最大值与单次资源扩容允许范围的上限中取最小值作为最新资源上限值;
单次资源调整允许范围包括单次资源缩容允许范围,基于单次资源调整允许范围以及容器的目标资源上限值,确定容器对应的最新资源上限值,包括:
当容器需要缩容时,从容器的目标资源上限值与单次资源缩容允许范围的下限中取最大值,并从最大值与单次资源缩容允许范围的上限中取最小值作为最新资源上限值。
本实施例中,在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,相比于现有技术需要关闭旧的容器并通过人工手动重新创建进行调整容器资源的方式,能够实现对容器资源大小的动态调整,提高了资源利用率。
在一个实施例中,提供了一种容器流量调整装置,参考图3所示,提供了一种容器流量调整装置,装置包括:
节点确定模块31,用于在集群的多个节点中确定出当前处于过载状态的目标节点;
容器分组模块32,用于根据目标节点上运行的各个容器组的资源使用率,对所有容器组分成两个分组,以使两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
流量调整模块33,用于将第二分组内的各个容器的流量调整到处于正常状态的节点上。
在一个实施例中,容器分组模块31具体用于:
对目标节点上的所有容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有容器组,每遍历到一个容器组时,将当前遍历到的容器组划分到两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个容器组的分组。
在一个实施例中,流量调整模块33具体用于:
从预设的容器配置信息表中,获取第二分组内的每个容器的最大容器流量值;
对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将需要调度的流量调度至处于正常状态的节点的容器上。
在一个实施例中,装置还包括:
状态标记模块,用于对目标节点上的每个容器标记禁止状态,以禁止对每个容器的资源进行调整。
在一个实施例中,装置还包括:
流量恢复模块,用于当目标节点由过载状态恢复至正常状态时,将第二分组上的每个容器的流量恢复至最大流量;
状态解除模块,用于对目标节点上的每个容器标记的禁止状态进行解除;
资源调整模块,用于并在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,其中,当前资源上限值是上一次对该容器的资源进行扩缩容后得到的。
在一个实施例中,当容器需要扩容或缩容时,资源调整模块具体用于:
从预设的资源配置信息表中,获取容器预先配置的目标使用率以及单次资源调整允许范围;
计算容器的当前资源使用率与目标使用率的比值与容器的当前资源上限值的乘积,以作为容器的目标资源上限值;
基于单次资源调整允许范围以及容器的目标资源上限值,确定容器对应的最新资源上限值;
将容器的当前资源上限值调整到最新资源上限值。
其中,单次资源调整允许范围包括单次资源扩容允许范围,资源调整模块具体用于:
当容器需要扩容时,从容器的目标资源上限值与单次资源扩容允许范围的下限中取最大值,并从最大值与单次资源扩容允许范围的上限中取最小值作为最新资源上限值;
单次资源调整允许范围包括单次资源缩容允许范围,资源调整模块具体还用于:
当容器需要缩容时,从容器的目标资源上限值与单次资源缩容允许范围的下限中取最大值,并从最大值与单次资源缩容允许范围的上限中取最小值作为最新资源上限值。
需要说明的是:本实施例提供的容器流量调整装置中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,本实施例的容器流量调整装置与上述实施例中的容器流量调整方法实施例属于同一构思,其具体实现过程和有益效果详见容器资源调整方法实施例,这里不再赘述。
图4为本发明实施例提供的计算机设备的内部结构图。该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种容器流量调整方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据目标节点上运行的各个容器组的资源使用率,对所有容器组分成两个分组,以使两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将第二分组内的各个容器的流量调整到处于正常状态的节点上。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据目标节点上运行的各个容器组的资源使用率,对所有容器组分成两个分组,以使两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将第二分组内的各个容器的流量调整到处于正常状态的节点上。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种容器流量调整方法,其特征在于,所述方法包括:
在集群的多个节点中确定出当前处于过载状态的目标节点;
根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,包括:
对所述目标节点上的所有所述容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有所述容器组,每遍历到一个所述容器组时,将当前遍历到的所述容器组划分到所述两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个所述容器组的分组。
3.根据权利要求1所述的方法,其特征在于,将所述第二分组内的各个容器的流量调整到处于正常状态的节点上,包括:
从预设的容器配置信息表中,获取所述第二分组内的每个容器的最大容器流量值;
对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将所述需要调度的流量调度至处于正常状态的节点的容器上。
4.根据权利要求1至3任一所述的方法,其特征在于,所述在集群的多个节点中确定出当前处于过载状态的目标节点步骤之后,所述方法还包括:
对所述目标节点上的每个容器标记禁止状态,以禁止对每个所述容器的资源进行调整。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述目标节点由过载状态恢复至正常状态时,将所述第二分组上的每个容器的流量调整至最大流量;
对所述目标节点上的每个容器标记的禁止状态进行解除,并在禁止状态解除后的容器需要扩容或缩容时,对应调高或调低该容器的当前资源上限值,其中,所述当前资源上限值是上一次对该容器的资源进行扩缩容后得到的。
6.一种容器流量调整装置,其特征在于,所述装置包括:
节点确定模块,用于在集群的多个节点中确定出当前处于过载状态的目标节点;
容器分组模块,用于根据所述目标节点上运行的各个容器组的资源使用率,对所有所述容器组分成两个分组,以使所述两个分组的资源使用率之和的差值最小,且包含资源使用率最高的容器组的第一分组的容器组数量不超过第二分组的容器组数量;
流量调整模块,用于将所述第二分组内的各个容器的流量调整到处于正常状态的节点上。
7.根据权利要求6所述的装置,其特征在于,所述容器分组模块具体用于:
对所述目标节点上的所有所述容器组按照资源使用率由高至低的顺序排序;
顺序遍历排序后的所有所述容器组,每遍历到一个所述容器组时,将当前遍历到的所述容器组划分到所述两个分组中当前的资源使用率之和最小的一个分组中,直至完成最后一个所述容器组的分组。
8.根据权利要求6所述的装置,其特征在于,所述流量调整模块具体用于:
从预设的容器配置信息表中,获取所述第二分组内的每个容器的最大容器流量值;
对获取到的每个容器的最大容器流量值按照预设比例进行调整,并确定需要调度的流量,将所述需要调度的流量调度至处于正常状态的节点的容器上。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一所述的容器流量调整方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一所述的容器流量调整方法。
CN202011002099.0A 2020-09-22 2020-09-22 一种容器流量调整方法、装置及*** Active CN112202860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011002099.0A CN112202860B (zh) 2020-09-22 2020-09-22 一种容器流量调整方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011002099.0A CN112202860B (zh) 2020-09-22 2020-09-22 一种容器流量调整方法、装置及***

Publications (2)

Publication Number Publication Date
CN112202860A true CN112202860A (zh) 2021-01-08
CN112202860B CN112202860B (zh) 2023-07-14

Family

ID=74015862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011002099.0A Active CN112202860B (zh) 2020-09-22 2020-09-22 一种容器流量调整方法、装置及***

Country Status (1)

Country Link
CN (1) CN112202860B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228354A (zh) * 2017-12-29 2018-06-29 杭州朗和科技有限公司 调度方法、***、计算机设备和介质
CN110134497A (zh) * 2019-06-21 2019-08-16 深圳市比一比网络科技有限公司 一种应用于容器技术的集成部署方法及其***
CN111104227A (zh) * 2019-12-28 2020-05-05 北京浪潮数据技术有限公司 一种K8s平台的资源控制方法、装置及相关组件
CN111522636A (zh) * 2020-04-03 2020-08-11 安超云软件有限公司 应用容器的调整方法、调整***、计算机可读介质及终端设备
CN111666131A (zh) * 2020-07-03 2020-09-15 腾讯科技(深圳)有限公司 负载均衡分配方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228354A (zh) * 2017-12-29 2018-06-29 杭州朗和科技有限公司 调度方法、***、计算机设备和介质
CN110134497A (zh) * 2019-06-21 2019-08-16 深圳市比一比网络科技有限公司 一种应用于容器技术的集成部署方法及其***
CN111104227A (zh) * 2019-12-28 2020-05-05 北京浪潮数据技术有限公司 一种K8s平台的资源控制方法、装置及相关组件
CN111522636A (zh) * 2020-04-03 2020-08-11 安超云软件有限公司 应用容器的调整方法、调整***、计算机可读介质及终端设备
CN111666131A (zh) * 2020-07-03 2020-09-15 腾讯科技(深圳)有限公司 负载均衡分配方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112202860B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN109194584B (zh) 一种流量监控方法、装置、计算机设备及存储介质
CN110996352B (zh) 一种流量控制方法、装置、计算机设备及存储介质
CN111818159B (zh) 数据处理节点的管理方法、装置、设备及存储介质
CN108881512B (zh) Ctdb的虚拟ip均衡分配方法、装置、设备及介质
CN110213326B (zh) 元数据节点集群的扩容方法、***、设备和存储介质
CN110677459A (zh) 资源调整方法、装置、计算机设备和计算机存储介质
US9058166B2 (en) Method and apparatus for managing processing resources in a distributed processing system
CN112597202B (zh) 数据查询方法、装置、计算机设备和存储介质
CN111309644B (zh) 一种内存分配方法、装置和计算机可读存储介质
CN112689007B (zh) 资源分配方法、装置、计算机设备和存储介质
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
CN108459926B (zh) 数据异地备份方法、装置及计算机可读介质
CN112202860A (zh) 一种容器流量调整方法、装置及***
CN115203177B (zh) 一种分布式数据存储***及存储方法
CN111580959A (zh) 一种数据写入方法、数据写入装置、服务器及存储介质
CN112667467A (zh) 集群的自适应限流方法、装置、计算机设备及存储介质
CN108763312B (zh) 一种基于负载的从数据节点筛选方法
CN116643858A (zh) 基于业务优先级pod再调度方法、装置、设备及介质
CN116578408A (zh) 一种支撑智能制造软件的运行资源调度方法
CN112181649B (zh) 一种容器资源调整方法、装置、计算机设备及存储介质
CN117666926A (zh) 数据存储方法、装置和电子设备
CN112181649A (zh) 一种容器资源调整方法、装置、计算机设备及存储介质
CN114564153A (zh) 一种卷映射解除方法、装置、设备和存储介质
CN114221863A (zh) 一种分布式集群的节点智能选举方法
CN117707779B (zh) 数据处理方法、装置、计算机设备和存储介质

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