CN113395178A - 一种容器云弹性伸缩的方法及装置 - Google Patents

一种容器云弹性伸缩的方法及装置 Download PDF

Info

Publication number
CN113395178A
CN113395178A CN202110651643.2A CN202110651643A CN113395178A CN 113395178 A CN113395178 A CN 113395178A CN 202110651643 A CN202110651643 A CN 202110651643A CN 113395178 A CN113395178 A CN 113395178A
Authority
CN
China
Prior art keywords
node
capacity expansion
expansion
utilization rate
resource utilization
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
CN202110651643.2A
Other languages
English (en)
Other versions
CN113395178B (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.)
Juhaokan Technology Co Ltd
Original Assignee
Juhaokan Technology 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 Juhaokan Technology Co Ltd filed Critical Juhaokan Technology Co Ltd
Priority to CN202110651643.2A priority Critical patent/CN113395178B/zh
Publication of CN113395178A publication Critical patent/CN113395178A/zh
Priority to PCT/CN2021/128490 priority patent/WO2022257347A1/zh
Application granted granted Critical
Publication of CN113395178B publication Critical patent/CN113395178B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种容器云弹性伸缩的方法及装置,装置包括微服务、集群节点资源、自动伸缩控制器、节点控制器和节点资源池;方法包括判定微服务的资源使用率是否满足预设扩容条件,当满足预设扩容条件时,计算扩容所需资源,判定集群节点资源中剩余节点是否满足扩容所需资源,当剩余节点不满足扩容所需资源,根据扩容所需资源计算扩容所需的最小规格;根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入集群节点资源。通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,实现两级弹性扩缩容,实现快速扩容,更好的满足业务需求,在服务流量下降之后自动缩容,节约成本。

Description

一种容器云弹性伸缩的方法及装置
技术领域
本申请涉及网络技术领域,尤其涉及一种容器云弹性伸缩的方法及装置。
背景技术
在基于Kubernetes的容器云集群下,管理调度大量的微服务,每个微服务可以有多个实例(pod),以容器的形式,分布式的运行于云平台的多个节点(Node)上,应用中不可避免地存在一些高峰期,随着业务量的突增,进而导致微服务的实例难以应对增加流量。
Kubernetes具有pod水平自动伸缩(Horizontal Pod Autoscaling,HPA)功能,HPA通过集群内资源监控***获取微服务资源的使用率的监控指标数据,比较监控指标数据和预设阈值,当超过预设阈值时,创建新的实例;HPA可以很好的解决微服务实例的伸缩,但在节点资源不足以部署新的实例时,会导致HPA无法扩容,进而无法实现自动伸缩。
相关技术中,具有节点扩容的公有云,通过监控集群中实例无法调度时,再扩容;然而,扩容节点需要时间,存在节点创建好之后,微服务流量已经下降,不能处理好业务请求。
发明内容
本申请提供了一种容器云弹性伸缩的方法及装置,可用于解决现有的节点扩容是在集群中实例无法调度时进行,导致节点扩容无法满足当下微服务流量需求的技术问题。
第一方面,本申请提供一种容器云弹性伸缩的装置,包括微服务、集群节点资源、自动伸缩控制器、节点控制器和节点资源池;
所述自动伸缩控制器,用于监控所述微服务和所述集群节点资源,所述微服务开启HPA;
判定所述微服务的资源使用率是否满足预设扩容条件;
当满足预设扩容条件时,计算扩容所需资源,以及,监控所述集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;
判定所述集群节点资源中剩余节点是否满足扩容所需资源;
当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;
向所述节点控制器发送扩容所需的最小规格请求;
所述节点控制器,响应所述自动伸缩控制器扩容所需的最小规格请求,从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
结合第一方面,在一种可实现方式中,所述预设扩容条件,包括:
采集第一预设时间内微服务的资源使用率,并计算所述资源使用率的均值,得到平均资源使用率;
计算所述平均资源使用率与预设阈值上限的差值;
当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
结合第一方面,在一种可实现方式中,所述预设扩容条件,还包括:
采集第二预设时间内的资源使用率,获取所述资源使用率的变化趋势;
根据所述变化趋势预测下一次资源使用率;
计算下一次资源使用率与预设阈值上限的差值;
当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
结合第一方面,在一种可实现方式中,所述自动伸缩控制器,还用于判定所述微服务的资源使用率是否满足预设缩容条件;
当满足预设缩容条件时,监控所述集群节点资源中剩余节点,将没有相关微服务实例对应的节点作为待下线节点,向节点控制器发送下线节点请求;
所述节点控制器,响应于所述下线节点请求,指定所述待下线节点下线,并将所述待下线节点放回所述节点资源池。
结合第一方面,在一种可实现方式中,所述装置还包括数据库,所述数据库用于存储节点名称以及对应的节点规格。
结合第一方面,在一种可实现方式中,从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源,包括:
根据所述数据库,选择所述最小规格对应的节点作为待加入节点;
对所述待加入节点进行节点初始化,优化所述待加入节点的内核参数;
调用安装docker脚本,安装docker服务;
调用安装Kubernetes***服务脚本,完成安装并将所述待加入节点加作为新节点加入所述集群节点资源。
由以上技术方案可知,本申请第一方面提供一种容器云弹性伸缩的装置,包括微服务、集群节点资源、自动伸缩控制器、节点控制器和节点资源池;所述自动伸缩控制器,用于监控所述微服务和所述集群节点资源,所述微服务开启HPA;判定所述微服务的资源使用率是否满足预设扩容条件;当满足预设扩容条件时,计算扩容所需资源,以及,监控所述集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源;当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;向所述节点控制器发送扩容所需的最小规格请求;所述节点控制器,响应所述自动伸缩控制器扩容所需的最小规格请求,从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该装置提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
第二方面,本申请提供一种容器云弹性伸缩的方法,包括:
获取微服务的资源使用率,所述微服务开启HPA;
判定所述微服务的资源使用率是否满足预设扩容条件,当满足预设扩容条件时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;
判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;
根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
结合第二方面,在一种可实现方式中,判定所述微服务的资源使用率是否满足预设扩容条件,包括:
获取第一预设时间内微服务的资源使用率,并计算所述资源使用率的均值,得到平均资源使用率;
计算所述平均资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
结合第二方面,在一种可实现方式中,判定所述微服务的资源使用率是否满足预设扩容条件,还包括:
获取第二预设时间内的资源使用率,获取所述资源使用率的变化趋势,根据所述变化趋势预测下一次资源使用率;
计算下一次资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
结合第二方面,在一种可实现方式中,所述方法还包括:
判定所述微服务的资源使用率是否满足预设缩容条件,当满足预设缩容条件时,监控所述集群节点资源中剩余节点,将没有相关微服务实例对应的节点作为待下线节点,向节点控制器发送下线节点请求;
所述节点控制器将所述待下线节点放回所述节点资源池。
由以上技术方案可知,本申请第二方面提供一种容器云弹性伸缩的方法,包括获取微服务的资源使用率,所述微服务开启HPA;判定所述微服务的资源使用率是否满足预设扩容条件,当满足预设扩容条件时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该方法提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例HPA功能描述的结构示意图;
图2为本申请实施例容器云弹性伸缩的装置的结构示意图;
图3为本申请实施例一种容器云弹性伸缩的装置扩容的流程图;
图4为本申请实施例又一种容器云弹性伸缩的装置扩容的流程图;
图5为本申请实施例另一种容器云弹性伸缩的装置扩容的流程图;
图6为本申请实施例容器云弹性伸缩的装置缩容的流程图。
具体实施方式
为使本申请示例性实施例的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
应当理解,本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
随着网络技术的发展,对于网络服务的需求越来越多,在云平台集群环境下,越来越多基于Kubernetes(简称K8s)容器云集群被广范应用,集群是容器运行所需云资源的集合。Kubernetes是开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理;在基于Kubernetes的容器云集群下,管理调度大量的微服务,每个微服务可以有多个实例,以容器的形式,分布式的运行于云平台的多个节点上;节点是容器集群组成的基本元素,可以是虚拟机、也可以是物理机、宿主机,每个节点都包含运行pod所需的基本组件。Kubernetes具有实例水平自动伸缩HPA功能,HPA通过集群内资源监控***(Heapster)获取微服务资源的使用率的监控指标数据,根据监控指标数据自动扩展、缩减微服务中pod数量,其中Heapster是Kubernetes原生的集群监控方案,Heapster以pod的形式运行,会自动发现集群节点、从节点上获取监控数据。如图1所示,通过Deployment负责管理无状态的应用,即微程序,Deployment声明了pod模板,控制pod的运行策略,适用于部署无状态的微服务,当微服务的使用率超过预设阈值上限时,HPA就自动为该微服务创建出新的pod来实现扩容。
然而,节点剩余资源不足以部署一个新的pod情况时,HPA无法实现扩容,进而导致业务负载持续升高,进而微服务崩溃;目前,一些具有节点扩缩容的公有云,通过监控集群中实例无法调度时,再扩容;然而,扩容节点需要时间,存在节点创建好之后,微服务流量已经下降,不能有效的处理业务请求。
在一些实施例中,智能电视业务存在明显高峰期,比如说每天晚上,另外不可避免的存在一些不可预料的高峰,高峰期服务实例可能难以应对增加流量,如果可以提前预知高峰期并且高峰期是较长时间内逐渐发生的。
为了解决服务级和节点级的扩缩容有效性的问题,提供一种容器云弹性伸缩的装置,所述容器云弹性伸缩的装置可以包括微服务(Service)、自动伸缩控制器(AutoscaleController)、集群节点资源、节点控制器(Node Controller)和节点资源池。
微服务、节点、自动伸缩控制器和节点控制器构成了基于Kubernetes的容器云弹性伸缩的装置,如图2所示,微服务根据流量多少自动扩缩容;节点部署微服务,通过集群节点资源判断节点剩余资源是否满足扩容的实例需求,通过节点资源池存储的节点扩充新节点或者下放下线节点;自动伸缩控制器监控服务资源使用率的监控指标数据以及节点剩余情况;节点部署微服务接收自动伸缩控制器的扩缩容请求,执行具体的扩缩容操作。
本申请提供一种容器云弹性伸缩的装置,包括微服务、集群节点资源、自动伸缩控制器、节点控制器和节点资源池;所述自动伸缩控制器,用于监控所述微服务和所述集群节点资源,所述微服务开启HPA;判定所述微服务的资源使用率是否满足预设扩容条件;当满足预设扩容条件时,计算扩容所需资源,以及,监控所述集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源;当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;向所述节点控制器发送扩容所需的最小规格请求;所述节点控制器,响应所述自动伸缩控制器扩容所需的最小规格请求,从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该装置提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
如图3所示,本申请提供的部分实施例中,对于容器云弹性伸缩的装置的任意一个微服务,均开启HPA功能,具备自动伸缩实例的能力。自动伸缩控制器监控内容包括微服务的资源使用率和集群节点资源中剩余节点的情况。应用在装置上的容器云弹性扩容的方法如下:
S101、监控微服务的资源使用率。
相关开启HPA微服务目前的资源使用率,包括CPU、内存或QPS(Query Per Second)者磁盘io等其他自定义资源。通过判定其资源使用率是否满足预设扩容条件来判断是否进行下一步骤操作,对于不同的资源使用率对应的预设扩容条件也存在差异。当满足预设扩容条件时,执行如下步骤:
S102、计算扩容所需资源,监控所述集群节点资源中剩余节点。
其中,所述扩容所需资源包括pod数以及pod对应规格,在一些实施例中,扩容所需资源的具体算法可以时通过采集目前资源使用率、目前pod数,以及,目标资源使用率来确定实际需要pod数,具体可以是:实际需要pod数=(目前资源使用率/目标资源使用率)*目前pod数。通过实际需要pod数与目前pod数的差值,可以得到需要扩充pod数量。
以CPU利用率为例,采集目前pod数为4,目前CPU使用率为90%,设定的目标CPU使用率为60%,则实际需要的pod数为:(90%/60%)*4=6个,根据需要pod数6个与目前pod数2个的差值2个,来扩充pod数量,此时对应的扩容所需资源包括pod数为2个;同时,也得到pod对应的规格。
监控集群节点资源中剩余节点的情况,并判定所述集群节点资源中剩余节点是否满足扩容所需资源。通过对比扩容所需资源需要的pod数以及pod对应规格与剩余节点,查看剩余节点具有的可用资源是否可以成功调度和执行扩容所需资源包括pod数以及pod对应规格,当不能满足时,即微服务工作负载需求超出了剩余节点容量,此时,需要添加节点来增加集群节点资源的整体可用资源。
S103、根据所述扩容所需资源计算扩容所需的最小规格。
扩容所需的最小规格是对于新节点的规格要求,节点作为容器集群组成的基本元素,节点取决于业务,每个节点都包含运行pod所需要的基本组成。
S104、发送扩容所需最小规格请求。
自动伸缩控制器向节点控制器发送扩容所需最小规格要求,从服务级向节点级发送扩容需要最小规格的请求。
S105、从节点资源池中选取满足最小规格的节点作为新节点。
本申请通过节点资源池,提供不同规格的节点资源,便于快捷的实现节点的引入和下线,节约资源成本。从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
在一些实施例中,容器云弹性伸缩的装置还包括数据库,用于存储节点名称、节点数量以及对应的节点规格,节点控制器根据最小规格在数据库中获取适合的节点。
根据最小规格,结合数据库,执行如下操作:从节点资源池中选择最符合要求的节点作为待加入节点;对所述待加入节点进行节点初始化,优化所述待加入节点的内核参数;调用安装docker脚本,安装docker服务;调用安装Kubernetes***服务脚本安装,并将所述待加入节点加作为新节点加入集群节点资源。
继续以上述CPU利用率的例子得到扩容所需资源包括pod数为2个,对应的规格为2C2G,此时,我们得到对应的最小规格是4C4G的节点,对应数据库,当数据库中存在4C4G的节点则将其作为待加入节点;若不存在,则选择满足最小规格的节点作为待加入节点。
由以上技术方案可知,本申请提供一种容器云弹性伸缩的方法,包括获取微服务的资源使用率,所述微服务开启HPA;判定所述微服务的资源使用率是否满足预设扩容条件,当满足预设扩容条件时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该方法提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
如图4所示,本申请提供的部分实施例中,结合一种具体预设扩容条件,对进行容器云弹性伸缩的方法,包括如下执行步骤:
S201、监控第一预设时间内微服务的平均资源使用率。
通过采集第一预设时间内微服务的资源使用率,并计算所述资源使用率的均值,得到平均资源使用率;在一些实施例中,可以设定第一预设时间为5分钟,通过对该时间段内的数据求平均值,得到平均资源使用率。
S202、计算平均资源使用率与预设阈值上限的差值。
比较差值和预设扩容值,预设扩容值是作为预设阈值上限内,且与预设阈值上限相邻的次阈值区域的范围值,通过次阈值区域,作为判断依据,提前为节点扩容进行判定,从而实现在服务扩容时不需要等待就可以直接调度。当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
S203、计算扩容所需资源、监控集群节点资源的剩余节点。
所述扩容所需资源包括pod数以及pod对应规格,监控集群节点资源中剩余节点的情况,并判定所述集群节点资源中剩余节点是否满足扩容所需资源。通过对比扩容所需资源需要的pod数以及pod对应规格与剩余节点,查看剩余节点具有的可用资源是否可以成功调度和执行扩容所需资源包括pod数以及pod对应规格,当不能满足时,即微服务工作负载需求超出了剩余节点容量,此时,需要添加节点来增加集群节点资源的整体可用资源。
S204、根据扩容所需资源计算扩容所需的最小规格。
扩容所需的最小规格是对于新节点的规格要求,节点作为容器集群组成的基本元素,节点取决于业务,每个节点都包含运行pod所需要的基本组成。
S205、发送扩容所需最小规格请求。
S206、从节点资源池中选取满足最小规格的节点作为新节点。
本申请通过节点资源池,提供不同规格的节点资源,便于快捷的实现节点的引入和下线,节约资源成本。从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
由以上技术方案可知,本申请提供一种容器云弹性伸缩的方法,包括获取监控第一预设时间内微服务的平均资源使用率,所述微服务开启HPA;计算平均资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该方法提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
如图5所示,本申请提供的部分实施例中,结合另一种具体预设扩容条件,对进行容器云弹性伸缩的方法,包括如下执行步骤:
S301、采集第二预设时间内微服务资源使用率的变化趋势。
S302、根据变化趋势预测下一次资源使用率。
通过采集第二预设时间内的资源使用率,获取所述资源使用率的变化趋势。结合趋势预测算法,得到下一次的资源使用率。
在一些实施例中,趋势预测算法可以是通过ARIMA模型、神经网络模型、Prophet模型等。
S303、计算下一次资源使用率与预设阈值上限的差值。
比较差值和预设扩容值,预设扩容值是作为预设阈值上限内,且与预设阈值上限相邻的次阈值区域的范围值,通过次阈值区域,作为判断依据,提前为节点扩容进行判定,从而实现在服务扩容时不需要等待就可以直接调度。当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
S304、计算扩容所需资源、监控集群节点资源的剩余节点。
所述扩容所需资源包括pod数以及pod对应规格,监控集群节点资源中剩余节点的情况,并判定所述集群节点资源中剩余节点是否满足扩容所需资源。通过对比扩容所需资源需要的pod数以及pod对应规格与剩余节点,查看剩余节点具有的可用资源是否可以成功调度和执行扩容所需资源包括pod数以及pod对应规格,当不能满足时,即微服务工作负载需求超出了剩余节点容量,此时,需要添加节点来增加集群节点资源的整体可用资源。
S305、根据扩容所需资源计算扩容所需的最小规格。
扩容所需的最小规格是对于新节点的规格要求,节点作为容器集群组成的基本元素,节点取决于业务,每个节点都包含运行pod所需要的基本组成。
S306、发送扩容所需最小规格请求。
S307、从节点资源池中选取满足最小规格的节点作为新节点。
本申请通过节点资源池,提供不同规格的节点资源,便于快捷的实现节点的引入和下线,节约资源成本。从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
由以上技术方案可知,本申请提供一种容器云弹性伸缩的方法,包括采集第二预设时间内微服务资源使用率的变化趋势,所述微服务开启HPA;根据变化趋势预测下一次资源使用率,计算下一次资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。该方法提前实现节点扩缩容,保证服务扩容时集群具有扩容条件,从而实现两级弹性扩缩容,通过自动监控集群状态以及微服务当前资源使用率提前实现扩容节点,从而在服务扩容时不需要等待就可以直接调度,更好的满足业务需求,实现快速扩容,在服务流量下降之后自动缩容,节约成本。
如图6所示,本申请提供的部分实施例中,对于容器云弹性伸缩的装置的任意一个微服务,均开启HPA功能,具备自动伸缩实例的能力。自动伸缩控制器监控内容包括微服务的资源使用率和集群节点资源中剩余节点的情况。应用在装置上的容器云弹性缩容的方法如下:
S101、监控微服务的资源使用率。
相关开启HPA微服务目前的资源使用率,通过判定其资源使用率是否满足预设缩容条件来判断是否进行下一步骤操作,对于不同的资源使用率对应的预设缩容条件也存在差异。当满足预设缩容条件时,执行如下步骤:
S106、监控集群节点资源的剩余节点。
优先对新节点进行判断,当发现新节点没有相关微服务实例,且微服务没有扩容需求或者目前集群节点资源的剩余节点满足扩容需求,将新节点作为待下线节点。对于其他节点也进行判断,当发现其他节点没有相关微服务实例,将其作为待下线节点。
S107、将没有相关微服务实例对应的节点作为待下线节点,向节点控制器发送下线节点请求。
S108、将待下线节点放回节点资源池。
由以上技术方案可知,本申请提供一种容器云弹性伸缩的方法在服务流量下降之后自动缩容,节约成本。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。

Claims (10)

1.一种容器云弹性伸缩的装置,其特征在于,包括微服务、集群节点资源、自动伸缩控制器、节点控制器和节点资源池;
所述自动伸缩控制器,用于监控所述微服务和所述集群节点资源,所述微服务开启HPA;
判定所述微服务的资源使用率是否满足预设扩容条件;
当满足预设扩容条件时,计算扩容所需资源,以及,监控所述集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;
判定所述集群节点资源中剩余节点是否满足扩容所需资源;
当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;
向所述节点控制器发送扩容所需的最小规格请求;
所述节点控制器,响应所述自动伸缩控制器扩容所需的最小规格请求,从所述节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
2.根据权利要求1所述容器云弹性伸缩的装置,其特征在于,所述预设扩容条件,包括:
采集第一预设时间内微服务的资源使用率,并计算所述资源使用率的均值,得到平均资源使用率;
计算所述平均资源使用率与预设阈值上限的差值;
当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
3.根据权利要求1所述容器云弹性伸缩的装置,其特征在于,所述预设扩容条件,还包括:
采集第二预设时间内的资源使用率,获取所述资源使用率的变化趋势;
根据所述变化趋势预测下一次资源使用率;
计算下一次资源使用率与预设阈值上限的差值;
当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
4.根据权利要求1所述容器云弹性伸缩的装置,其特征在于:
所述自动伸缩控制器,还用于判定所述微服务的资源使用率是否满足预设缩容条件;
当满足预设缩容条件时,监控所述集群节点资源中剩余节点,将没有相关微服务实例对应的节点作为待下线节点,向节点控制器发送下线节点请求;
所述节点控制器,响应于所述下线节点请求,指定所述待下线节点下线,并将所述待下线节点放回所述节点资源池。
5.根据权利要求1所述容器云弹性伸缩的装置,其特征在于,所述装置还包括数据库,所述数据库用于存储节点名称、节点数量以及对应的节点规格。
6.根据权利要求5所述容器云弹性伸缩的装置,其特征在于,从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源,包括:
根据所述数据库,选择所述最小规格适合的节点作为待加入节点;
对所述待加入节点进行节点初始化,优化所述待加入节点的内核参数;
调用安装docker脚本,安装docker服务;
调用安装Kubernetes***服务脚本安装,并将所述待加入节点加作为新节点加入所述集群节点资源。
7.一种容器云弹性伸缩的方法,其特征在于,包括:
获取微服务的资源使用率,所述微服务开启HPA;
判定所述微服务的资源使用率是否满足预设扩容条件,当满足预设扩容条件时,计算扩容所需资源,以及,获取集群节点资源中剩余节点,所述扩容所需资源包括pod数以及pod对应规格;
判定所述集群节点资源中剩余节点是否满足扩容所需资源,当所述剩余节点不满足扩容所需资源,根据所述扩容所需资源计算扩容所需的最小规格;
根据扩容所需的最小规格请求从节点资源池中选取满足最小规格的节点作为新节点加入所述集群节点资源。
8.根据权利要求7所述容器云弹性伸缩的方法,其特征在于,判定所述微服务的资源使用率是否满足预设扩容条件,包括:
获取第一预设时间内微服务的资源使用率,并计算所述资源使用率的均值,得到平均资源使用率;
计算所述平均资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
9.根据权利要求7所述容器云弹性伸缩的方法,其特征在于,判定所述微服务的资源使用率是否满足预设扩容条件,还包括:
获取第二预设时间内的资源使用率,获取所述资源使用率的变化趋势,根据所述变化趋势预测下一次资源使用率;
计算下一次资源使用率与预设阈值上限的差值,当所述差值小于预设扩容值时,则资源使用率满足预设扩容条件。
10.根据权利要求7所述容器云弹性伸缩的方法,其特征在于,所述方法还包括:
判定所述微服务的资源使用率是否满足预设缩容条件,当满足预设缩容条件时,监控所述集群节点资源中剩余节点,将没有相关微服务实例对应的节点作为待下线节点,向节点控制器发送下线节点请求;
所述节点控制器将所述待下线节点放回所述节点资源池。
CN202110651643.2A 2021-06-11 2021-06-11 一种容器云弹性伸缩的方法及装置 Active CN113395178B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110651643.2A CN113395178B (zh) 2021-06-11 2021-06-11 一种容器云弹性伸缩的方法及装置
PCT/CN2021/128490 WO2022257347A1 (zh) 2021-06-11 2021-11-03 一种容器云弹性伸缩的方法及集群服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110651643.2A CN113395178B (zh) 2021-06-11 2021-06-11 一种容器云弹性伸缩的方法及装置

Publications (2)

Publication Number Publication Date
CN113395178A true CN113395178A (zh) 2021-09-14
CN113395178B CN113395178B (zh) 2022-12-09

Family

ID=77620721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110651643.2A Active CN113395178B (zh) 2021-06-11 2021-06-11 一种容器云弹性伸缩的方法及装置

Country Status (2)

Country Link
CN (1) CN113395178B (zh)
WO (1) WO2022257347A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726734A (zh) * 2022-03-21 2022-07-08 平安壹账通云科技(深圳)有限公司 云服务资源扩容方法、装置、电子设备及存储介质
CN114745277A (zh) * 2022-03-30 2022-07-12 杭州博盾习言科技有限公司 公有云跨域专线的弹性伸缩方法、装置、电子设备及介质
CN115022173A (zh) * 2022-05-10 2022-09-06 度小满科技(北京)有限公司 一种服务扩容的方法、装置、设备及存储介质
CN115037615A (zh) * 2022-06-23 2022-09-09 新华智云科技有限公司 基于云平台的自适应应用扩容方法
CN115361385A (zh) * 2022-08-15 2022-11-18 山东体育学院 Docker Swarm环境中云原生应用自动弹性伸缩***和伸缩方法
WO2022257347A1 (zh) * 2021-06-11 2022-12-15 聚好看科技股份有限公司 一种容器云弹性伸缩的方法及集群服务器
CN116055562A (zh) * 2022-10-26 2023-05-02 北京蔚领时代科技有限公司 一种云游戏存储空间自动扩容方法及装置
WO2023098614A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种云实例的扩缩容方法及其相关设备
WO2024051236A1 (zh) * 2022-09-05 2024-03-14 华为云计算技术有限公司 资源调度方法及其相关设备
WO2024098926A1 (zh) * 2022-11-07 2024-05-16 华为云计算技术有限公司 一种计算资源的管理方法以及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048814B (zh) * 2023-02-21 2023-10-03 上海汇付支付有限公司 一种基于监控效用数据的应用资源规格自动优化方法
CN116112569B (zh) * 2023-02-23 2023-07-21 安超云软件有限公司 微服务调度方法及管理***
CN116560818B (zh) * 2023-06-29 2023-09-12 深圳市易图资讯股份有限公司 一种空间数据服务分发与调度的方法及***
CN116860461B (zh) * 2023-09-04 2023-12-19 深圳大道云科技有限公司 K8s集群的资源调度方法、设备及存储介质
CN116938724B (zh) * 2023-09-19 2024-01-30 广东保伦电子股份有限公司 音视频会议中服务器的扩容与缩容方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317638A (zh) * 2014-10-17 2015-01-28 华为技术有限公司 一种应用伸缩管理方法及装置
CN108228347A (zh) * 2017-12-21 2018-06-29 上海电机学院 一种任务感知的Docker自适应调度***
WO2019047835A1 (zh) * 2017-09-05 2019-03-14 华为技术有限公司 虚拟网络功能的实例化方法
CN110262899A (zh) * 2019-06-20 2019-09-20 无锡华云数据技术服务有限公司 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端
CN111464355A (zh) * 2020-03-31 2020-07-28 北京金山云网络技术有限公司 Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN112015515A (zh) * 2019-05-28 2020-12-01 华为技术有限公司 一种虚拟网络功能的实例化方法及装置
CN112540905A (zh) * 2020-12-18 2021-03-23 青岛特来电新能源科技有限公司 一种微服务架构下***风险评估方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395178B (zh) * 2021-06-11 2022-12-09 聚好看科技股份有限公司 一种容器云弹性伸缩的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317638A (zh) * 2014-10-17 2015-01-28 华为技术有限公司 一种应用伸缩管理方法及装置
WO2019047835A1 (zh) * 2017-09-05 2019-03-14 华为技术有限公司 虚拟网络功能的实例化方法
CN108228347A (zh) * 2017-12-21 2018-06-29 上海电机学院 一种任务感知的Docker自适应调度***
CN112015515A (zh) * 2019-05-28 2020-12-01 华为技术有限公司 一种虚拟网络功能的实例化方法及装置
CN110262899A (zh) * 2019-06-20 2019-09-20 无锡华云数据技术服务有限公司 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端
CN111464355A (zh) * 2020-03-31 2020-07-28 北京金山云网络技术有限公司 Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN112540905A (zh) * 2020-12-18 2021-03-23 青岛特来电新能源科技有限公司 一种微服务架构下***风险评估方法、装置、设备及介质

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022257347A1 (zh) * 2021-06-11 2022-12-15 聚好看科技股份有限公司 一种容器云弹性伸缩的方法及集群服务器
WO2023098614A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种云实例的扩缩容方法及其相关设备
CN114726734A (zh) * 2022-03-21 2022-07-08 平安壹账通云科技(深圳)有限公司 云服务资源扩容方法、装置、电子设备及存储介质
CN114745277A (zh) * 2022-03-30 2022-07-12 杭州博盾习言科技有限公司 公有云跨域专线的弹性伸缩方法、装置、电子设备及介质
CN114745277B (zh) * 2022-03-30 2024-05-28 杭州博盾习言科技有限公司 公有云跨域专线的弹性伸缩方法、装置、电子设备及介质
CN115022173A (zh) * 2022-05-10 2022-09-06 度小满科技(北京)有限公司 一种服务扩容的方法、装置、设备及存储介质
CN115037615A (zh) * 2022-06-23 2022-09-09 新华智云科技有限公司 基于云平台的自适应应用扩容方法
CN115361385A (zh) * 2022-08-15 2022-11-18 山东体育学院 Docker Swarm环境中云原生应用自动弹性伸缩***和伸缩方法
CN115361385B (zh) * 2022-08-15 2024-05-10 山东体育学院 Docker Swarm环境中云原生应用自动弹性伸缩***和伸缩方法
WO2024051236A1 (zh) * 2022-09-05 2024-03-14 华为云计算技术有限公司 资源调度方法及其相关设备
CN116055562A (zh) * 2022-10-26 2023-05-02 北京蔚领时代科技有限公司 一种云游戏存储空间自动扩容方法及装置
WO2024098926A1 (zh) * 2022-11-07 2024-05-16 华为云计算技术有限公司 一种计算资源的管理方法以及装置

Also Published As

Publication number Publication date
CN113395178B (zh) 2022-12-09
WO2022257347A1 (zh) 2022-12-15

Similar Documents

Publication Publication Date Title
CN113395178B (zh) 一种容器云弹性伸缩的方法及装置
CN108965485B (zh) 容器资源的管理方法、装置和云平台
CN106375420B (zh) 一种基于负载均衡的服务器集群智能监控***及方法
CN110677305B (zh) 一种云计算环境下的自动伸缩方法和***
CN113051075B (zh) 一种Kubernetes智能化扩缩容的方法及装置
CN112583861A (zh) 服务部署方法、资源配置方法、***、装置及服务器
CN106648900B (zh) 基于智能电视的超算方法及***
CN111147565B (zh) 一种集群节点控制方法、装置、设备及可读存储介质
CN113608871A (zh) 业务处理方法及装置
CN111459681B (zh) 一种基于微服务负载的动态弹性伸缩方法
CN110647392A (zh) 一种基于容器集群的智能弹性伸缩方法
CN112965817A (zh) 资源管理方法、装置和电子设备
CN109936471B (zh) 一种多集群的资源分配方法和装置
CN114816753A (zh) 一种数据集群计算节点扩缩方法、装置、设备及介质
CN109597674B (zh) 一种共享虚拟资源池份额调度方法及***
CN108810992B (zh) 一种网络切片的资源控制方法和装置
CN113190329A (zh) 服务器及容器云集群资源自动伸缩的方法
CN113626145A (zh) 业务虚拟机数量动态扩容方法及***
CN111209098A (zh) 一种智能渲染调度方法、服务器、管理节点及存储介质
CN112751685A (zh) 网络切片用户面容量配置方法、装置和***
CN115794306A (zh) 基于抢占实例的资源分配方法及装置、电子设备及介质
CN114240395A (zh) 一种资源交付方法、装置、计算机设备及存储介质
CN110932926B (zh) 一种容器集群的监控方法、***及装置
CN113434256A (zh) 云资源横向扩展方法、可读存储介质及云资源管理***
CN112416530B (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