CN112214303A - Kubernetes集群自动缩放*** - Google Patents
Kubernetes集群自动缩放*** Download PDFInfo
- Publication number
- CN112214303A CN112214303A CN201910612910.8A CN201910612910A CN112214303A CN 112214303 A CN112214303 A CN 112214303A CN 201910612910 A CN201910612910 A CN 201910612910A CN 112214303 A CN112214303 A CN 112214303A
- Authority
- CN
- China
- Prior art keywords
- cluster
- module
- unit
- cpu utilization
- monitoring
- 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.)
- Pending
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/5061—Partitioning or combining of resources
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种Kubernetes集群自动缩放***,包括:用于监控整个Kubernetes集群的状态的监控模块、QoS(服务质量)模块、缩放模块和执行模块,其中:监控模块分别输出监控数据至Qos模块和缩放模块,QoS模块计算保障服务质量的CPU利用率上限并输出至缩放模块,内置集群缩放算法的缩放模块根据监控数据和CPU利用率上线得到Kubernetes集群理想值并输出至执行模块,执行模块根据Kubernetes集群理想值对集群进行缩放处理。本发明能够降低Web服务和应用程序部署和运行成本,以及减少资源的浪费,动态调节Kubernetes集群大小,提高集群资源利用率。
Description
技术领域
本发明涉及的是一种互联网信息处理领域的技术,具体是一种Kubernetes(简称k8s)集群自动缩放***。
背景技术
Kubernetes是Google开源的一个管理容器的***,方便用户部署服务部署在容器上。越来越多的企业和开发者将他们的web应用迁移到Kubernetes集群上。但是,由于web应用的工作负载变动很大,导致应用对服务器集群资源的需求变化大。针对这种情况,目前的一般处理方式就是把Kubernetes集群设计为能够处理工作负载高峰期,这就导致了在一般情况下,集群的大部分资源都处于空闲状态,资源利用率低,造成了极大地浪费。
发明内容
本发明针对现有技术存在的上述不足,提出一种Kubernetes集群自动缩放***,能够降低web应用部署和运行成本,以及减少资源的浪费。它能够根据Kubernetes集群的工作负载的变化,自动调节Kubernetes集群大小,提高集群资源利用率,同时也可以保证web应用的服务质量。
本发明是通过以下技术方案实现的:
本发明包括:用于监控整个Kubernetes集群的状态的监控模块、QoS(服务质量)模块、缩放模块和执行模块,其中:监控模块分别输出监控数据至Qos模块和缩放模块,QoS模块计算保障服务质量的CPU利用率上限并输出至缩放模块,内置集群缩放算法的缩放模块根据监控数据和CPU利用率上线得到Kubernetes集群理想值并输出至执行模块,执行模块根据Kubernetes集群理想值对集群进行缩放处理。
技术效果
与现有技术相比,本发明能在保障应用的服务质量的前提下,提高Kubernetes集群的资源利用率。
附图说明
图1为***架构示意图;
图2为监控模块架构图;
图3为QoS模块架构图;
图4为CPU利用率与服务响应时间的关系图;
图5为集群缩放的流程图;
图6为工作负载变化图;
图7为***准确度变化图;
图8为k8s集群的服务响应时间变化图;
图9为***的响应时间的累积概率分布图;
图10为原生Kubernetes集群与使用了本发明的kubernetes集群的平均CPU利用率柱状图。
具体实施方式
如图1所示,本实施例涉及一种基于MAPE(监控-分析-计划-执行)架构的Kubernetes集群自动缩放***,包括:用于监控整个Kubernetes集群的状态的监控模块、QoS(服务质量)模块、缩放模块和执行模块,其中:监控模块分别输出监控数据至Qos模块和缩放模块,QoS模块计算保障服务质量的CPU利用率上限并输出至缩放模块,内置集群缩放算法的缩放模块根据监控数据和CPU利用率上线得到Kubernetes集群理想值并输出至执行模块,执行模块根据Kubernetes集群理想值对集群进行缩放处理。
如图2所示,所述的监控模块包括:控制中心单元(Monitor center)、时序数据库单元(InfluxDB)和数据监控单元(Heapster),其中:时序数据库单元和数据监控单元分别部署在不同的pod组件中,控制中心单元用于控制流动数据库单元和性能分析单元的正常运行,控制中心单元向数据监控单元发出Kubernetes集群中所有节点的列表查询请求。对于每个节点,数据监控单元请求Kubelet中的cAdvisor以获取当前节点的CPU利用率信息,并将获得的监控数据输出至时序数据库单元中保存。
如图3所示,所述的QoS模块包括:控制中心单元、压力工具单元和应用程序单元,其中:压力工具单元与应用程序单元部署与同一节点的不同Pod组件中,压力工具单元根据其运行参数(cpus)改变服务器的CPU利用率,控制中心单元向应用程序发出请求并根据收到的回应计算出响应时间(Response time),通过压力工具单元不断地改变cpus参数,调节不同的CPU利用率,得到相应的响应时间,得到一个响应时间与CPU利用率的关系图,如图4所示。
所述的响应时间的上限Tlimit=α×Tnormal,其中:α为一个大于1的系数,Tnormal为在Kubernetes集群资源很充裕的环境下得到的响应时间。然后在响应时间与CPU利用率的关系图上通过Tlimit得到对应的CPU利用率Ulimit,其上限
所述的集群缩放算法,即通过QoS模块提供的CPU利用率上限和监控模块提供的集群上各节点当前的CPU利用率进行阈值判断,对超出阈值的节点进行集群缩小,否则进行集群放大,具体步骤包括:
1)通过监控模块获取集群上各节点当前的CPU利用率。
2)把每个节点的CPU利用率与Uupper,0.4相比较,当位于区间[0.4,Uupper]内,则缩放大小为0(即不执行集群缩放);当大于Uupper,则集群放大;当小于0.4,则缩小集群。
3)当本次与上次执行都为集群放大或都为集群缩小,则本次集群放大或缩小的大小为上次集群放大或缩小大小的2倍,否则缩放大小为1。
如图5所示,所述的执行模块通过Kubectl命令行接口来控制Kubernetes集群执行相应的集群缩放。
本实施例采用5台四核的服务器,利用正态分布函数生成在区间[0,50000]的工作负载来仿真真实的工作负载,如图6所示,横坐标表示经过处理之后的时间T表示当前时间,Tdur表示每个负载的持续时间,纵坐标表示请求速率。
如图7所示,为本发明的准确率与持续时间Tdur的变化图。故取Tdur=30,可以获得0.96的准确率。
如图8所示,为Kubernetes集群上的服务质量与QoS模块中的系数α的关系图,故设系数α=2时,可以得到一个与原生Kubernetes集群接近的一个服务响应时间,保证了服务质量。
如图9所示,为本发明的响应时间的累积概率分布图。从中可以得到发明的平均响应时间大约为15s,这是因为Kubernetes集群上的Pod启动,镜像的下载等需要时间所致。
如图10所示,为原生的Kubernetes集群与使用了本发明的Kubernetes集群在不同负载下的平均CPU利用率的柱状图。从中可以看出在本发明的作用下,k8s集群的CPU利用率提升了大约30%。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
Claims (8)
1.一种Kubernetes集群自动缩放***,其特征在于,包括:用于监控整个Kubernetes集群的状态的监控模块、QoS(服务质量)模块、缩放模块和执行模块,其中:监控模块分别输出监控数据至Qos模块和缩放模块,QoS模块计算保障服务质量的CPU利用率上限并输出至缩放模块,内置集群缩放算法的缩放模块根据监控数据和CPU利用率上线得到Kubernetes集群理想值并输出至执行模块,执行模块根据Kubernetes集群理想值对集群进行缩放处理。
2.根据权利要求1所述的Kubernetes集群自动缩放***,其特征是,所述的监控模块包括:控制中心单元、时序数据库单元和数据监控单元,其中:时序数据库单元和数据监控单元分别部署在不同的pod组件中,控制中心单元用于控制流动数据库单元和性能分析单元的正常运行,控制中心单元向数据监控单元发出Kubernetes集群中所有节点的列表查询请求,对于每个节点,数据监控单元请求Kubelet中的cAdvisor以获取当前节点的CPU利用率信息,并将获得的监控数据输出至时序数据库单元中保存。
3.根据权利要求1所述的Kubernetes集群自动缩放***,其特征是,所述的QoS模块包括:控制中心单元、压力工具单元和应用程序单元,其中:压力工具单元与应用程序单元部署与同一节点的不同Pod组件中,压力工具单元根据其运行参数改变服务器的CPU利用率,控制中心单元向应用程序发出请求并根据收到的回应计算出响应时间。
4.根据权利要求3所述的Kubernetes集群自动缩放***,其特征是,通过压力工具单元调节CPU利用率得到相应的响应时间,得到响应时间与CPU利用率的关系图。
6.根据权利要求1所述的Kubernetes集群自动缩放***,其特征是,所述的集群缩放算法,即通过QoS模块提供的CPU利用率上限和监控模块提供的集群上各节点当前的CPU利用率进行阈值判断,对超出阈值的节点进行集群缩小,否则进行集群放大。
7.根据权利要求1或6所述的Kubernetes集群自动缩放***,其特征是,所述的集群缩放算法具体步骤包括:
1)通过监控模块获取集群上各节点当前的CPU利用率;
2)把每个节点的CPU利用率与Uupper,0.4相比较,当位于区间[0.4,Uupper]内,则不执行集群缩放;当大于Uupper,则集群放大;当小于0.4,则缩小集群;
3)当本次与上次执行都为集群放大或都为集群缩小,则本次集群放大或缩小的大小为上次集群放大或缩小大小的2倍,否则缩放大小为1。
8.根据权利要求1所述的Kubernetes集群自动缩放***,其特征是,所述的执行模块通过Kubectl命令行接口来控制Kubernetes集群执行相应的集群缩放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910612910.8A CN112214303A (zh) | 2019-07-09 | 2019-07-09 | Kubernetes集群自动缩放*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910612910.8A CN112214303A (zh) | 2019-07-09 | 2019-07-09 | Kubernetes集群自动缩放*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214303A true CN112214303A (zh) | 2021-01-12 |
Family
ID=74048329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910612910.8A Pending CN112214303A (zh) | 2019-07-09 | 2019-07-09 | Kubernetes集群自动缩放*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214303A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816750A (zh) * | 2022-04-24 | 2022-07-29 | 江苏鼎集智能科技股份有限公司 | 大数据数据治理任务运行方法 |
KR20230055584A (ko) * | 2021-10-19 | 2023-04-26 | 숭실대학교산학협력단 | 쿠버네티스용 yaml 파일 관리 방법 및 장치 |
US11868802B2 (en) | 2021-07-09 | 2024-01-09 | Red Hat, Inc. | Application lifecycle management based on real-time resource usage |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107734035A (zh) * | 2017-10-17 | 2018-02-23 | 华南理工大学 | 一种云计算环境下的虚拟集群自动伸缩方法 |
US10044640B1 (en) * | 2016-04-26 | 2018-08-07 | EMC IP Holding Company LLC | Distributed resource scheduling layer utilizable with resource abstraction frameworks |
CN108469989A (zh) * | 2018-03-13 | 2018-08-31 | 广州西麦科技股份有限公司 | 一种基于集群性能的反馈式自动扩缩容方法及*** |
CN108848157A (zh) * | 2018-06-12 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种Kubernetes集群容器监控的方法和装置 |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
-
2019
- 2019-07-09 CN CN201910612910.8A patent/CN112214303A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10044640B1 (en) * | 2016-04-26 | 2018-08-07 | EMC IP Holding Company LLC | Distributed resource scheduling layer utilizable with resource abstraction frameworks |
CN107734035A (zh) * | 2017-10-17 | 2018-02-23 | 华南理工大学 | 一种云计算环境下的虚拟集群自动伸缩方法 |
CN108469989A (zh) * | 2018-03-13 | 2018-08-31 | 广州西麦科技股份有限公司 | 一种基于集群性能的反馈式自动扩缩容方法及*** |
CN108848157A (zh) * | 2018-06-12 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种Kubernetes集群容器监控的方法和装置 |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
Non-Patent Citations (2)
Title |
---|
F. AL-HAIDARI: "Impact of CPU Utilization Thresholds and Scaling Size on Autoscaling Cloud Resources", 《2013 IEEE 5TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE》 * |
TIAN YE: "An Auto-Scaling Framework for Containerized Elastic Applications", 《2017 3RD INTERNATIONAL CONFERENCE ON BIG DATA COMPUTING AND COMMUNICATIONS (BIGCOM)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11868802B2 (en) | 2021-07-09 | 2024-01-09 | Red Hat, Inc. | Application lifecycle management based on real-time resource usage |
KR20230055584A (ko) * | 2021-10-19 | 2023-04-26 | 숭실대학교산학협력단 | 쿠버네티스용 yaml 파일 관리 방법 및 장치 |
KR102667058B1 (ko) * | 2021-10-19 | 2024-05-17 | 숭실대학교산학협력단 | 쿠버네티스용 yaml 파일 관리 방법 및 장치 |
CN114816750A (zh) * | 2022-04-24 | 2022-07-29 | 江苏鼎集智能科技股份有限公司 | 大数据数据治理任务运行方法 |
CN114816750B (zh) * | 2022-04-24 | 2022-12-23 | 江苏鼎集智能科技股份有限公司 | 大数据数据治理任务运行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6457447B2 (ja) | データセンターのネットワークトラフィックスケジューリング方法及び装置 | |
US9277030B2 (en) | Stream processing using a client-server architecture | |
CN111026553B (zh) | 离线混部作业的资源调度方法及服务器*** | |
CN112214303A (zh) | Kubernetes集群自动缩放*** | |
CN106557369A (zh) | 一种多线程的管理方法及*** | |
US8341439B2 (en) | Power management apparatus and method thereof and power control system | |
US7925785B2 (en) | On-demand capacity management | |
US20100125360A1 (en) | Methods for performing data management for a recipe-and-component control module | |
CN110677274A (zh) | 一种基于事件的云网络服务调度方法及装置 | |
US9851988B1 (en) | Recommending computer sizes for automatically scalable computer groups | |
US20160080267A1 (en) | Monitoring device, server, monitoring system, monitoring method and program recording medium | |
CN109117244B (zh) | 一种虚拟机资源申请排队机制的实现方法 | |
Liu et al. | Service resource management in edge computing based on microservices | |
JP2007257163A (ja) | 分散型プログラム実行環境における稼動品質管理方法 | |
CN103442087B (zh) | 一种基于响应时间趋势分析的Web服务***访问量控制装置和方法 | |
CN116643844B (zh) | 面向电力超算云资源自动扩展的智能化管理***及方法 | |
CN116526678B (zh) | 一种智算中心电源弹性调度***及其控制方法 | |
CN114490091B (zh) | 工业数据采集管理***中监控规则引擎性能的方法及装置 | |
US10379561B2 (en) | Energy saving method based on confidence interval and apparatus using the same | |
Li et al. | Codec: Cost-effective duration prediction system for deadline scheduling in the cloud | |
CN114443262A (zh) | 计算资源管理方法、装置、设备及*** | |
CN117076057B (zh) | 一种ai服务请求调度的方法、装置、设备及介质 | |
CN111258710B (zh) | 一种***维护方法和装置 | |
CN117201339A (zh) | 基于ai决策的数据采集方法、***、设备及存储介质 | |
CN117424935A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210112 |
|
RJ01 | Rejection of invention patent application after publication |