CN109960579B - 一种调整业务容器的方法及装置 - Google Patents
一种调整业务容器的方法及装置 Download PDFInfo
- Publication number
- CN109960579B CN109960579B CN201711407646.1A CN201711407646A CN109960579B CN 109960579 B CN109960579 B CN 109960579B CN 201711407646 A CN201711407646 A CN 201711407646A CN 109960579 B CN109960579 B CN 109960579B
- Authority
- CN
- China
- Prior art keywords
- service
- load
- container
- containers
- preset
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种调整业务容器的方法及装置,用以解决现有技术中存在的对云平台的业务容器的调整不够准确的技术问题。包括:监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控。
Description
技术领域
本发明涉及信息领域,尤其是涉及一种调整业务容器的方法及装置。
背景技术
云计算(Cloud Computing)己经成为未来互联网和移动互联网结合的一个新兴的计算模式,被称为IT产业化的第4次革命。而作为云计算中的核心技术——虚拟化技术,则是区别传统计算模式与云计算的重要特点。
采用虚拟化技术可以将应用程序的执行环境,以打包的形式转到云平台中的其它节点处,实现应用程序的执行环境与物理环境的隔离,进而使得应用程序的执行不再依赖于特定的物理环境。
通常,虚拟化技术是通过虚拟机(virtual Machine,VM)来实现的,虚拟机是通过软件模拟具有完整硬件系统功能的、能运行在一个完全隔离环境中的完整计算机系统。
作为承载虚拟化技术的计算机/服务器设备,通常被称之为集群。在大多数情况下,一个集群所承受的工作负载是相对比较平稳的,其中,工作负载是指在给定时间内分配给客户端、工作组、服务器或系统的工作总额。但在某些业务的场景里,例如抢红包、抢购手机等,成千上万的用户会在短短数秒内向集群发出大量的请求。为了应对上述在短时间内突然爆发的大量应用请求,云平台通常是采用的自动伸缩服务来解决的。
自动伸缩作为一项云平台的关键服务,可以根据用户定义的多种策略(时间表、运行状态等)自动实现IT资源的扩展或收缩,既能避免云平台IT资源过度配置、又能保持云平台有足够的性能,同时还能降低管理费用。
目前,针对云平台的自动伸缩主要是基于传统的虚拟机技术。VM的Hypervisor需要完全虚拟一整套物理主机(CPU、内存、硬盘、网卡等)硬件设备,同时还要安装自己的操作系统(Guest OS),在资源利用率和启动速度以及性能上有较大的开销,其中,Hypervisor一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做虚拟机监视器(Virtual Machine Monitor,VMM)。
在现有技术中,常用的自动伸缩方法有以下几种:
第一种,用自动控制理论设计伸缩方法。该方法需要以监控系统作为基础,测量用户需求、系统状态和服务等级协议的接受程度,然后借助于增益调度将工作负载、服务器数量和Web服务的性能建立映射关系。但,采用这种方法的难点是应如何建立映射性能的可靠模型。
第二种,是基于阈值的伸缩方法,实现对集群工作负载的动态适应。例如,Amazon的亚马逊网络服务(Amazon Web Services,AWS)和诸如RightScala这样的第三方工具都采用了此方法。但,在实现时如何设定适当的伸缩规则和设定特定的系统性能指标仍没有统一的定论。
第三种,基于增强学习的伸缩决策制定,是近年来迅速发展的一种自动化的决策制定方法。增强学习通过不断学习先验知识,最终可以达到决定处于某状态的集群该进行何种伸缩的目标。这种方法对于运行了很长时间的集群后期将展现出它智能化的一面,但是在前期,需要对集群在各种工作负载下的不同状态进行大量积累,故该方法在前期的伸缩性能非常差。
因此,如何提供一种行之有效的伸缩方法成为一个亟待解决的技术问题。
发明内容
本发明提供一种调整业务容器的方法及装置,用以解决现有技术中存在的对云平台的业务容器的调整不够准确的技术问题。
第一方面,为解决上述技术问题,本发明实施例提供的一种调整业务容器方法的技术方案如下:
监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;
当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;
在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控。
可选的,所述监控服务集合当前的业务负载,包括:
周期性地通过预设的监控模型,逐一对承载所述服务集合中每一个服务运行的业务容器的性能参数进行监控;其中,所述性能参数至少包括业务容器使用宿主机的中央处理器CPU、内存及输入输出I/O端口的资源量;
通过预设的计算方式对所有业务容器的性能参数进行计算,获得所述业务负载。
可选的,所述当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量,包括:
当所述业务负载高于所述负载范围的上限值时,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器;其中,所述第一预设数量为根据用户的服务请求量确定需要新增的普通服务的数量;
当所述业务负载低于所述负载范围的下限值时,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器;其中,所述第二预设数量为根据所述服务集合中空闲资源量确定需要减少的普通服务的数量。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器,包括:
增加所述第一预设数量的业务容器时,分别针对每一个业务容器的操作如下:
基于所述基础服务对应的业务容器的性能参数及所述云平台所在集群中各服务器的可用资源量,通过所述预设的调度策略为一个业务容器选择满足所述性能参数的宿主机;
基于所述基础服务对应的业务容器的性能参数,利用第一预设指令在所述宿主机中创建所述一个业务容器,并在所述一个业务容器中运行对应的普通服务。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器,包括:
减少所述第二预设数量的业务容器时,分别针对每一个业务容器的操作如下:
通过第二预设指令从一个业务容器对应的宿主机中,删除所述一个业务容器。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息,包括:
分别针对所述每一个业务容器执行以下操作:
为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,所述键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪所述服务集合中所有业务容器的资源信息;
基于所述第一键值信息集,生成所有业务容器的负载均衡配置;其中,所述负载均衡配置是通过配置软件Confd生成的;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息,包括:
分别针对所述每一个业务容器执行以下操作:
将一个业务容器的键值信息从原有的键值信息集中移除,以获得第二键值信息集;
基于所述第二键值信息集,生成所有业务容器的负载均衡配置;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
第二方面,本发明实施例提供了一种用于调整业务容器的装置,包括:
资源监控单元,用于监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;
容器调整单元,用于当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;
更新单元,用于在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控。
可选的,所述监控服务集合当前的业务负载,所述资源监控单元还用于:
周期性地通过预设的监控模型,逐一对承载所述服务集合中每一个服务运行的业务容器的性能参数进行监控;其中,所述性能参数至少包括业务容器使用宿主机的中央处理器CPU、内存及输入输出I/O端口的资源量;
通过预设的计算方式对所有业务容器的性能参数进行计算,获得所述业务负载。
可选的,所述当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量,所述容器调整单元还用于:
当所述业务负载高于所述负载范围的上限值时,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器;其中,所述第一预设数量为根据用户的服务请求量确定需要新增的普通服务的数量;
当所述业务负载低于所述负载范围的下限值时,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器;其中,所述第二预设数量为根据所述服务集合中空闲资源量确定需要减少的普通服务的数量。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器时,所述容器调整单元还用于:
增加所述第一预设数量的业务容器时,分别针对每一个业务容器的操作如下:
基于所述基础服务对应的业务容器的性能参数及所述云平台所在集群中各服务器的可用资源量,通过所述预设的调度策略为一个业务容器选择满足所述性能参数的宿主机;
基于所述基础服务对应的业务容器的性能参数,利用第一预设指令在所述宿主机中创建所述一个业务容器,并在所述一个业务容器中运行对应的普通服务。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器时,所述容器调整单元还用于:
减少所述第二预设数量的业务容器时,分别针对每一个业务容器的操作如下:
通过第二预设指令从一个业务容器对应的宿主机中,删除所述一个业务容器。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息时,所述更新单元还用于:
分别针对所述每一个业务容器执行以下操作:
为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,所述键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪所述服务集合中所有业务容器的资源信息;
基于所述第一键值信息集,生成所有业务容器的负载均衡配置;其中,所述负载均衡配置是通过配置软件Confd生成的;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息时,所述更新单元还用于:
分别针对所述每一个业务容器执行以下操作:
将一个业务容器的键值信息从原有的键值信息集中移除,以获得第二键值信息集;
基于所述第二键值信息集,生成所有业务容器的负载均衡配置;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
第三方面,本发明实施例还提供一种用于调整业务容器的装置,包括:至少一个处理器,以及与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面所述的方法。
通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:
在本申请提供的实施例中,当监控到服务集合当前的业务负载,不在对应服务集合预设的负载范围之内时,会根据预设的调度策略和当前的业务负载,针对服务结合调整业务容器的数量,进而达到调整服务集合中普通服务的数量的目的,使得当前的工作负载发送变化时,服务集合能弹性伸缩。进一步的,在调整业务容器的数量后,通过将业务容器的资源信息在负载均衡软件Haproxy中更新,让负载均衡软件Haproxy能及时监控到调整了服务数量的服务集合中所有业务容器的资源使用情况,让服务集合能自动的实现负载均衡和弹性伸缩的功能。从而能够自动有效地应对网络峰值,提供高吞化量和低延迟的优质服务,在避免硬件资源过度配置的情况下还保持足够的性能。进一步的,由于云平台的硬件资源能被合理使用,从而能够给有效的降低硬件成本、并且还能降低企业的管理费用。
附图说明
图1为本发明实施例提供的一种调整业务容器方法的流程图;
图2为本发明实施例提供的一种调整业务容器的结构示意图。
具体实施方式
本发明实施列提供一种调整业务容器的方法及装置,用以解决现有技术中存在的对云平台的业务容器的调整不够准确的技术问题。
本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
提供一种调整业务容器的方法,包括:监控服务集合当前的业务负载;其中,服务集合运行于所述云平台中,服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制基础服务得到的,其中,N为自然数;当确定业务负载不在对应服务集合预设的负载范围之内时,根据预设的调度策略和业务负载,针对服务集合调整业务容器的数量;其中,业务容器用于承载普通服务的运行;在负载均衡软件Haproxy中更新业务容器的资源信息,以使负载均衡软件Haproxy对服务集合当前对应的所有业务容器的资源使用情况进行监控。
由于在上述方案中,当监控到服务集合当前的业务负载,不在对应服务集合预设的负载范围之内时,会根据预设的调度策略和当前的业务负载,针对服务结合调整业务容器的数量,进而达到调整服务集合中普通服务的数量的目的,使得当前的工作负载发送变化时,服务集合能弹性伸缩。进一步的,在调整业务容器的数量后,通过将业务容器的资源信息在负载均衡软件Haproxy中更新,让负载均衡软件Haproxy能及时监控到调整了服务数量的服务集合中所有业务容器的资源使用情况,让服务集合能自动的实现负载均衡和弹性伸缩的功能。从而能够自动有效地应对网络峰值,提供高吞化量和低延迟的优质服务,在避免硬件资源过度配置的情况下还保持足够的性能。进一步的,由于云平台的硬件资源能被合理使用,从而能够给有效的降低硬件成本、并且还能降低企业的管理费用。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
请参考图1,本发明实施例提供一种调整业务容器的方法,该方法的处理过程如下。
步骤101:监控服务集合当前的业务负载;其中,服务集合运行于云平台中,服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制基础服务得到的,其中,N为自然数。
需要说明的是,在本申请提供的实施例中,承载云平台的物理机一般是由多个物理服务器构成的,云平台的这些物理服务器也可称之为一个集群;要让一个集群的资源被云平台统一调度,需要在集群中的每台物理服务器中安装Linux及Docker,这样才能将集群中的所有物理服务器抽象为一个整体,让所有的服务都运行在Docker容器之中,互不影响。在本申请中的业务容器便是指基于Docker技术的容器,它能为服务提供所需的运行环境,并且让各个服务之间相互隔离、互不影响。
并且,需要理解的是,本申请提供的实施例中的服务集合实际指的是云平台提供的一种服务,如邮件服务,邮件服务提供一个基础服务,它具有邮件服务的全部功能,假设当前没有用户使用邮件服务,那么就只有一个基础服务,当有N个用户使用邮件服务时,就会创建N个与基础服务相同的普通服务及对应的容器。
在监控服务集合当前的业务负载之前,还需要用户设置服务集合的伸缩组参数,该参数包括基础服务、伸缩组自动伸展的负荷值、伸缩组自动收缩的负荷值,业务容器的CPU参数、memory参数、I/O参数等。
在设置好上述伸缩组参数之后,才能监控服务集合当前的业务负载。具体的监控方式为:
先周期性地通过预设的监控模型,逐一对承载服务集合中每一个服务运行的业务容器的性能参数进行监控;其中,性能参数至少包括业务容器使用宿主机的中央处理器CPU、内存及输入输出I/O端口的资源量;然后再通过预设的计算方式对所有业务容器的性能参数进行计算,获得业务负载。
其中,预设的监控模型具体为业务容器的性能监控模型Capacity_model,它是根据监控配置文件中的采集时间间隔,循环调用stats接口,查询所有业务容器的性能参数,进而得到各个业务容器对应的业务负载。
需要理解的是,stats接口时业务容器所在宿主机上的Remote API的一个接口,通过该接口可以实时监控一个业务容器的运行情况。
例如,要查询业务容器的性能参数:CPU、内存、I/O的使用情况,可以通过分别调用对应的函数进行查询,如用Get_CPU_usage()获取业务容器CPU的试用期可,用Get_memory_usage()获取业务容器内存的使用情况用Get_IO_usage()获取业务容器I/O的使用情况。
在获得上述业务容器的各项性能参数后,便可通过预设的计算方式对所有业务容器的性能参数进行计算,获得服务集合的业务负载。
例如,以邮件服务为例,假设邮件服务共是由3个服务(1个基础服务加2个普通服务)构成的服务集合,其中,第1个服务CPU的资源占用率为50%、内存的资源占用率为80%、I/O端口的资源占用率为30%,第2个服务CPU的资源占用率为30%、内存的资源占用率为80%、I/O端口的资源占用率为60%,第3个服务CPU的资源占用率为70%、内存的资源占用率为20%、I/O端口的资源占用率为80%,则可以计算出该邮件服务的业务负载(即服务集合当前的业务负载)为:CPU150%、内存180%、I/O端口170%中的最大者,即180%为服务集合当前的业务负载。
需要理解的是,在上述例子中,预设的计算方式只是简单的对各种资源的占用量进行求和处理,而在实际的使用过程中,也可以通过计算各种资源的平均使用量或平均使用率,并从中选择数值最高者作为服务集合当前的业务负载,具体在实际应用中采用何种预设的计算方式在此不做限定,上述例子只是提供一种参考的可能。
在监控到服务集合当前的业务负载不在预设的负载范围之内时,则执行步骤102。
步骤102:当确定业务负载不在对应服务集合预设的负载范围之内时,根据预设的调度策略和业务负载,针对服务集合调整业务容器的数量;其中,业务容器用于承载普通服务的运行。
其中,预设的负载范围是根据用户设置的前述伸缩组自动伸展的负载值和伸缩组自动收缩的负载值确定,伸缩组自动伸展的负载值为预设的负载范围的上限值,伸缩组自动收缩的负载值为预设的负载范围的下限值。
具体的,根据预设的调度策略和业务负载,针对服务集合调整业务容器的数量的实施方式如下:
首先,当业务负载高于负载范围的上限值时,根据预设的调度策略和业务负载,为服务集合增加第一预设数量的业务容器;其中,第一预设数量为根据用户的服务请求量确定需要新增的普通服务的数量。
具体的,根据预设的调度策略和业务负载,为服务集合增加第一预设数量的业务容器的实施方式为:
增加第一预设数量的业务容器时,分别针对每一个业务容器的操作如下:
基于基础服务对应的业务容器的性能参数及云平台所在集群中各服务器的可用资源量,通过预设的调度策略为一个业务容器选择满足性能参数的宿主机;
基于基础服务对应的业务容器的性能参数,利用第一预设指令在宿主机中创建一个业务容器,并在一个业务容器中运行对应的普通服务。
其次,当业务负载低于所述负载范围的下限值时,根据预设的调度策略和业务负载,为服务集合减少第二预设数量的业务容器;其中,第二预设数量为根据服务集合中空闲资源量确定需要减少的普通服务的数量。
具体的,根据预设的调度策略和业务负载,为服务集合减少第二预设数量的业务容器的实施方式为:
减少所述第二预设数量的业务容器时,分别针对每一个业务容器的操作如下:
通过第二预设指令从一个业务容器对应的宿主机中,删除该一个业务容器。
步骤103:在负载均衡软件Haproxy中更新业务容器的资源信息,以使负载均衡软件Haproxy对服务集合当前对应的所有业务容器的资源使用情况进行监控。
具体的,在负载均衡软件Haproxy中更新业务容器的资源信息,针对前述调整方式的不同,在更新时也不尽相同,具体如下:
当调整方式为增加第一预设数量的业务容器时,分别针对每一个业务容器执行以下操作:
首先,为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪服务集合中所有业务容器的资源信息。
其次,基于第一键值信息集,生成所有业务容器的负载均衡配置;其中,负载均衡配置是通过配置软件Confd生成的。
最后,将负载均衡配置加载到负载均衡软件Haproxy中,并基于负载均衡配置更新一个业务容器的资源信息。
当调整方式为减少第二预设数量的业务容器时,分别针对每一个业务容器执行以下操作:
将一个业务容器的键值信息从原有的键值信息集中移除,以获得第二键值信息集;
基于第二键值信息集,生成所有业务容器的负载均衡配置;
将负载均衡配置加载到负载均衡软件Haproxy中,并基于负载均衡配置更新一个业务容器的资源信息。
需要理解的是,为了使能够自动化地完成负载均衡软件Haproxy的动态配置,所以必须使用服务发现。服务发现的基本思想是,应用程序的任何一个业务容器都可以通过编程的方式获得当前环境的细节,这是为了让新增加的业务容器能够自动嵌入到现有的应用环境,而不需要进行人为干预。故在本申请提供的技术方案中,采用的是aproxy+Etcd+Confd架构实现服务发现的。
具体的,下面对Etcd和Confd及Haproxy进行简单的介绍:
键值存储软件Ectd作为服务发现的存储仓库,能够提供一套基于http协议的RestAPI,通过使用Rest API可以将服务的配置信息从Etcd内部移出,从而让组件的配置更加灵活,不局限于特定的配置信息。并且还使得一个新的相关服务实例与组件交互时变得更加简单,可动态进行修改配置。而当需要向键值存储软件Ectd中的原有的键值信息集内添加业务容器的键值信息时,可以通过直接调用键值存储软件Etcd提供的http接口的PUT方法,来实现添加业务容器的键值信息;当需要从键值存储软件Etcd内移除业务容器的键值信息时,则可以通过直接调用键值存储软件Etcd提供的http接口的DELETE方法,来实现移除业务容器的键值信息。从而能够通过键值存储软件Ectd,对服务及对应的业务容器进行管理、并跟踪服务集合中所有业务容器的资源信息。
配置软件Confd通过周期性地检查键值存储软件Etcd的键值存储集合中的记录的业务容器的键值信息是否发生变化,当业务容器的键值信息发生变化时,会生成一个包含最新业务容器的键值信息的Haproxy的配置文件,并使用此配置文件对Haproxy进行平滑重启,通过这种方式便不影响当前业务容器所提供的服务。
负载均衡软件Haproxy作为伸缩组的负载均衡器,它是所有业务容器的唯一入口。负责接收用户的请求信息,并将该请求信息转发给对应的服务集合,让服务集合进行响应。
需要说明的是,键值存储软件Ectd、配置软件Confd、负载均衡软件Haproxy需要运行在同一个物理机上,才能实现上述功能。
基于同一发明构思,本发明一实施例中提供一种用于调整业务容器的装置,该装置的业务容器调整方法的具体实施方式可参见方法实施例部分的描述,重复之处不再赘述,请参见图2,该装置包括:
资源监控单元201,用于监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;
容器调整单元202,用于当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;
更新单元203,用于在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控。
可选的,所述监控服务集合当前的业务负载,所述资源监控单元201还用于:
周期性地通过预设的监控模型,逐一对承载所述服务集合中每一个服务运行的业务容器的性能参数进行监控;其中,所述性能参数至少包括业务容器使用宿主机的中央处理器CPU、内存及输入输出I/O端口的资源量;
通过预设的计算方式对所有业务容器的性能参数进行计算,获得所述业务负载。
可选的,所述当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量,所述容器调整单元202还用于:
当所述业务负载高于所述负载范围的上限值时,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器;其中,所述第一预设数量为根据用户的服务请求量确定需要新增的普通服务的数量;
当所述业务负载低于所述负载范围的下限值时,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器;其中,所述第二预设数量为根据所述服务集合中空闲资源量确定需要减少的普通服务的数量。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器时,所述容器调整单元202还用于:
增加所述第一预设数量的业务容器时,分别针对每一个业务容器的操作如下:
基于所述基础服务对应的业务容器的性能参数及所述云平台所在集群中各服务器的可用资源量,通过所述预设的调度策略为一个业务容器选择满足所述性能参数的宿主机;
基于所述基础服务对应的业务容器的性能参数,利用第一预设指令在所述宿主机中创建所述一个业务容器,并在所述一个业务容器中运行对应的普通服务。
可选的,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器时,所述容器调整单元202还用于:
减少所述第二预设数量的业务容器时,分别针对每一个业务容器的操作如下:
通过第二预设指令从一个业务容器对应的宿主机中,删除所述一个业务容器。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息时,所述更新单元203还用于:
分别针对所述每一个业务容器执行以下操作:
为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,所述键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪所述服务集合中所有业务容器的资源信息;
基于所述第一键值信息集,生成所有业务容器的负载均衡配置;其中,所述负载均衡配置是通过配置软件Confd生成的;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
可选的,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息时,所述更新单元203还用于:
分别针对所述每一个业务容器执行以下操作:
将一个业务容器的键值信息从原有的键值信息集中移除,以获得第二键值信息集;
基于所述第二键值信息集,生成所有业务容器的负载均衡配置;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
基于同一发明构思,本发明实施例中提供了一种用于调整业务容器的设备,包括:至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的调整业务容器方法。
基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的调整业务容器方法。
在本申请提供的实施例中,当监控到服务集合当前的业务负载,不在对应服务集合预设的负载范围之内时,会根据预设的调度策略和当前的业务负载,针对服务结合调整业务容器的数量,进而达到调整服务集合中普通服务的数量的目的,使得当前的工作负载发送变化时,服务集合能弹性伸缩。进一步的,在调整业务容器的数量后,通过将业务容器的资源信息在负载均衡软件Haproxy中更新,让负载均衡软件Haproxy能及时监控到调整了服务数量的服务集合中所有业务容器的资源使用情况,让服务集合能自动的实现负载均衡和弹性伸缩的功能。从而能够自动有效地应对网络峰值,提供高吞化量和低延迟的优质服务,在避免硬件资源过度配置的情况下还保持足够的性能。进一步的,由于云平台的硬件资源能被合理使用,从而能够给有效的降低硬件成本、并且还能降低企业的管理费用。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种调整业务容器数量的方法,应用于云平台中,其特征在于,包括:
监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;
当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;
在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控;
在负载均衡软件Haproxy中更新所述业务容器的资源信息,包括:
分别针对所述每一个业务容器执行以下操作:
为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,所述键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪所述服务集合中所有业务容器的资源信息;
基于所述第一键值信息集,生成所有业务容器的负载均衡配置;其中,所述负载均衡配置是通过配置软件Confd生成的;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
2.如权利要求1所述的方法,其特征在于,所述监控服务集合当前的业务负载,包括:
周期性地通过预设的监控模型,逐一对承载所述服务集合中每一个服务运行的业务容器的性能参数进行监控;其中,所述性能参数至少包括业务容器使用宿主机的中央处理器CPU、内存及输入输出I/O端口的资源量;
通过预设的计算方式对所有业务容器的性能参数进行计算,获得所述业务负载。
3.如权利要求1所述的方法,其特征在于,所述当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量,包括:
当所述业务负载高于所述负载范围的上限值时,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器;其中,所述第一预设数量为根据用户的服务请求量确定需要新增的普通服务的数量;
当所述业务负载低于所述负载范围的下限值时,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器;其中,所述第二预设数量为根据所述服务集合中空闲资源量确定需要减少的普通服务的数量。
4.如权利要求3所述的方法,其特征在于,根据预设的调度策略和所述业务负载,为所述服务集合增加第一预设数量的业务容器,包括:
增加所述第一预设数量的业务容器时,分别针对每一个业务容器的操作如下:
基于所述基础服务对应的业务容器的性能参数及所述云平台所在集群中各服务器的可用资源量,通过所述预设的调度策略为一个业务容器选择满足所述性能参数的宿主机;
基于所述基础服务对应的业务容器的性能参数,利用第一预设指令在所述宿主机中创建所述一个业务容器,并在所述一个业务容器中运行对应的普通服务。
5.如权利要求3所述的方法,其特征在于,根据预设的调度策略和所述业务负载,为所述服务集合减少第二预设数量的业务容器,包括:
减少所述第二预设数量的业务容器时,分别针对每一个业务容器的操作如下:
通过第二预设指令从一个业务容器对应的宿主机中,删除所述一个业务容器。
6.如权利要求5所述的方法,其特征在于,所述在负载均衡软件Haproxy中更新所述业务容器的资源信息,包括:
分别针对所述每一个业务容器执行以下操作:
将一个业务容器的键值信息从原有的键值信息集中移除,以获得第二键值信息集;
基于所述第二键值信息集,生成所有业务容器的负载均衡配置;
将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
7.一种调整业务容器数量的装置,应用于云平台中,其特征在于,包括:
资源监控单元,用于监控服务集合当前的业务负载;其中,所述服务集合运行于所述云平台中,所述服务集合包括一个基础服务和N个普通服务,且普通服务是通过复制所述基础服务得到的,其中,N为自然数;
容器调整单元,用于当确定所述业务负载不在对应所述服务集合预设的负载范围之内时,根据预设的调度策略和所述业务负载,针对所述服务集合调整业务容器的数量;其中,所述业务容器用于承载所述普通服务的运行;
更新单元,用于在负载均衡软件Haproxy中更新所述业务容器的资源信息,以使所述负载均衡软件Haproxy对所述服务集合当前对应的所有业务容器的资源使用情况进行监控;
所述更新单元还用于分别针对所述每一个业务容器执行以下操作:
为一个业务容器建立对应的键值信息,并加入原有的键值信息集中,以获得第一键值信息集;其中,所述键值信息集是通过键值存储软件Ectd进行管理和存储的,用于跟踪所述服务集合中所有业务容器的资源信息;基于所述第一键值信息集,生成所有业务容器的负载均衡配置;其中,所述负载均衡配置是通过配置软件Confd生成的;将所述负载均衡配置加载到所述负载均衡软件Haproxy中,并基于所述负载均衡配置更新所述一个业务容器的资源信息。
8.一种调整业务容器数量的装置,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711407646.1A CN109960579B (zh) | 2017-12-22 | 2017-12-22 | 一种调整业务容器的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711407646.1A CN109960579B (zh) | 2017-12-22 | 2017-12-22 | 一种调整业务容器的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960579A CN109960579A (zh) | 2019-07-02 |
CN109960579B true CN109960579B (zh) | 2021-08-24 |
Family
ID=67019638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711407646.1A Active CN109960579B (zh) | 2017-12-22 | 2017-12-22 | 一种调整业务容器的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960579B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874291B (zh) * | 2019-10-31 | 2022-10-21 | 北京中科云脑智能技术有限公司 | 一种异常容器实时检测方法 |
CN111666130A (zh) * | 2020-06-03 | 2020-09-15 | 百度在线网络技术(北京)有限公司 | 一种容器均衡部署的方法、装置、电子设备及存储介质 |
CN113568746B (zh) * | 2021-07-27 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
US11733729B2 (en) * | 2021-09-27 | 2023-08-22 | International Business Machines Corporation | Centralized imposing of multi-cloud clock speeds |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理系统 |
CN104301404A (zh) * | 2014-09-29 | 2015-01-21 | 华为技术有限公司 | 一种基于虚拟机的调整业务系统资源的方法及装置 |
CN105245617A (zh) * | 2015-10-27 | 2016-01-13 | 江苏电力信息技术有限公司 | 一种基于容器的服务器资源供给方法 |
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658895B2 (en) * | 2012-08-07 | 2017-05-23 | Advanced Micro Devices, Inc. | System and method for configuring boot-time parameters of nodes of a cloud computing system |
-
2017
- 2017-12-22 CN CN201711407646.1A patent/CN109960579B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理系统 |
CN104301404A (zh) * | 2014-09-29 | 2015-01-21 | 华为技术有限公司 | 一种基于虚拟机的调整业务系统资源的方法及装置 |
CN105245617A (zh) * | 2015-10-27 | 2016-01-13 | 江苏电力信息技术有限公司 | 一种基于容器的服务器资源供给方法 |
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109960579A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11102282B2 (en) | Method for managing and allocating resources in a clustered computing environment | |
EP3606008B1 (en) | Method and device for realizing resource scheduling | |
CN105025095B (zh) | 实现云计算弹性服务的集群架构 | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
AU2013318249B2 (en) | Automated profiling of resource usage | |
US8631403B2 (en) | Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure | |
CN107231815B (zh) | 用于图形渲染的系统和方法 | |
US20210081255A1 (en) | Distributed Load Balancing for Processing of High-Volume Data Streams | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
Dargie | Estimation of the cost of VM migration | |
JP2016103113A5 (zh) | ||
US10514957B2 (en) | Network service infrastructure management system and method of operation | |
CN106911741B (zh) | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 | |
Singh et al. | Survey on various load balancing techniques in cloud computing | |
CN104468759A (zh) | PaaS平台中实现应用迁移的方法和装置 | |
CN103399791A (zh) | 一种基于云计算的虚拟机迁移方法和装置 | |
CN115794305B (zh) | 虚拟机内存的调整方法和装置、存储介质及电子装置 | |
Sonkar et al. | Load prediction analysis based on virtual machine execution time using optimal sequencing algorithm in cloud federated environment | |
US20240276580A1 (en) | O-cloud node shutdown scenarios for energy saving | |
Herlicq et al. | Nextgenemo: an efficient provisioning of edge-native applications | |
Xu et al. | Scheme of resource optimization using vm migration for federated cloud | |
CN115827148A (zh) | 一种资源管理方法、装置、电子设备及存储介质 | |
Nair et al. | Performance degradation assessment and VM placement policy in cloud | |
Cano et al. | ADARES: adaptive resource management for virtual machines | |
CN109617954A (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 |