CN112559186A - 一种新的Kubernetes容器资源扩缩容方法 - Google Patents

一种新的Kubernetes容器资源扩缩容方法 Download PDF

Info

Publication number
CN112559186A
CN112559186A CN202011524569.XA CN202011524569A CN112559186A CN 112559186 A CN112559186 A CN 112559186A CN 202011524569 A CN202011524569 A CN 202011524569A CN 112559186 A CN112559186 A CN 112559186A
Authority
CN
China
Prior art keywords
reaches
resource
expansion
container
executing
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
CN202011524569.XA
Other languages
English (en)
Other versions
CN112559186B (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.)
Beijing Yunsi Imagination Technology Co ltd
Original Assignee
Beijing Yunsi Imagination 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 Beijing Yunsi Imagination Technology Co ltd filed Critical Beijing Yunsi Imagination Technology Co ltd
Priority to CN202011524569.XA priority Critical patent/CN112559186B/zh
Publication of CN112559186A publication Critical patent/CN112559186A/zh
Application granted granted Critical
Publication of CN112559186B publication Critical patent/CN112559186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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)
  • Stored Programmes (AREA)

Abstract

一种新的Kubernetes容器资源扩缩容方法,包括以下具体步骤:S1、获取Metrics Server监控信息,判断资源使用是否达到扩容标准以及是否达到缩容标准:若达到扩容标准时,执行S2;S2、判断实例数是否达到上限;若是,执行S3;S3、判断资源使用是否达到上限;若否,执行S4;S4、判断增加资源是否能预调度成功;若是,执行S5;S5、创建新的部署集,增加资源数目,进行扩容;若资源使用达到缩容标准,执行S10;S10、判断部署集数目是否达到最小值;若部署集数目未达到最小值,执行S11;S11、删除最近创建的部署集,进行缩容。本发明在部署集级别进行扩缩容,使得水平伸缩和垂直伸缩共存,提供了更加综合全面的弹性伸缩机制,并且提高了扩缩容效率。

Description

一种新的Kubernetes容器资源扩缩容方法
技术领域
本发明涉及Kubernetes容器资源编排平台,尤其涉及一种新的Kubernetes容器资源扩缩容方法。
背景技术
Kubernetes的一个核心功能是支持容器资源的弹性伸缩,以此来应对***负载压力随时间而变化的场景;在负载压力高时自动扩容容器资源,以保证***响应速度,并防止***被大流量冲垮;在负载低是自动缩小容器资源,以节省资源。Kubernetes资源调度的基本单位是容器组(Pod),并通过部署集(Deployment)来管理一组相同的Pod资源,Deployment中副本数(Replica)的值,即这个Deployment管理的Pod数目,每个Pod中容器的CPU、内存资源在Deployment的Pod模版中配置;目前Kubernetes的容器资源弹性伸缩有水平伸缩(HPA:Horizontal Pod Autoscaling)和垂直伸缩(VPA:Vertical PodAutoscaling)。
现有技术对同一个Deployment,水平伸缩和垂直伸缩有可能冲突,无法同时使用;如果单纯使用水平扩容,无法应对***运行一段时间后,最低资源需求已经超过当前配置值的场景;如果单纯使用垂直扩容,由于垂直伸缩受节点资源限制,有上限,无法满足资源需求极高的场景,并且垂直扩容需要删除重建已经存在的Pod,对已有的业务连接请求可能产生中断。
发明内容
(一)发明目的
为解决背景技术中存在的技术问题,本发明提出一种新的Kubernetes容器资源扩缩容方法,本发明在部署集级别进行扩缩容,使得水平伸缩和垂直伸缩共存,提供了更加综合全面的弹性伸缩机制,并且提高了扩缩容效率。
(二)技术方案
本发明提供了一种新的Kubernetes容器资源扩缩容方法,包括以下具体步骤:
S1、获取Metrics Server监控信息,判断资源使用是否达到扩容标准以及是否达到缩容标准:
若资源使用达到扩容标准,执行S2;
若资源使用达到缩容标准,执行S10;
S2、判断实例数是否达到上限;
若实例数达到上限,执行S3;
若实例数达到未上限,执行S6;
S3、判断资源使用是否达到上限;
若资源使用达到上限,返回执行S1;
若资源使用未达到上限,执行S4;
S4、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S5;
若增加资源预调度失败,返回执行S1;
S5、创建新的部署集,增加资源数目;
S6、判断资源使用是否达到上限;
若资源使用达到上限,执行S9;
若资源使用未达到上限,执行S7;
S7、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S8;
若增加资源预调度失败,执行S9;
S8、创建新的部署集,同时增加实例和资源数目;
S9、创建新的部署集,只增加实例数目;
S10、判断部署集数目是否达到最小值;
若部署集数目达到最小值,返回S1;
若部署集数目未达到最小值,执行S11;
S11、删除最近创建的部署集。
优选的,还包括Kubernetes的容器;Kubernetes的容器包括水平容器组伸缩器和垂直容器组伸缩器。
优选的,水平容器组伸缩器连接部署集;部署集包括容器组副本数;容器组副本数包括容器组A1,容器组A2,……以及容器组AN。
优选的,垂直容器组伸缩器连接部署集容器资源;垂直容器组伸缩器连接部署集;部署集包括容器组资源;容器组资源包括容器组B1,容器组B2,……以及容器组BN。
与现有技术相比,本发明的上述技术方案具有如下有益的技术效果:
本发明中,不在Pod级别进行扩缩容,而是在Deployment级别进行扩缩容;新扩容的Deployment与原有Deployment可以在Replicas和容器CPU、内存的值均不相同,同时实现水平扩容和垂直扩容的效果,提供了更加综合全面的弹性伸缩机制,提高了扩缩容的效率并且可以在不删除重建已有Pod的情况下,进行垂直扩容,不会引起业务长连接中断。
附图说明
图1为本发明提出的一种新的Kubernetes容器资源扩缩容方法的流程图。
图2为本发明提出的一种新的Kubernetes容器资源扩缩容方法的水平容器组伸缩器。
图3为本发明提出的一种新的Kubernetes容器资源扩缩容方法的垂直容器组伸缩器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1-3所示,本发明提出的一种新的Kubernetes容器资源扩缩容方法,包括以下具体步骤:
S1、获取Metrics Server监控信息,判断资源使用是否达到扩容标准以及是否达到缩容标准:
若资源使用达到扩容标准,执行S2;
若资源使用达到缩容标准,执行S10;
S2、判断实例数是否达到上限;
若实例数达到上限,执行S3;
若实例数达到未上限,执行S6;
S3、判断资源使用是否达到上限;
若资源使用达到上限,返回执行S1;
若资源使用未达到上限,执行S4;
S4、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S5;
若增加资源预调度失败,返回执行S1;
S5、创建新的部署集,增加资源数目;
S6、判断资源使用是否达到上限;
若资源使用达到上限,执行S9;
若资源使用未达到上限,执行S7;
S7、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S8;
若增加资源预调度失败,执行S9;
S8、创建新的部署集,同时增加实例和资源数目;
S9、创建新的部署集,只增加实例数目;
S10、判断部署集数目是否达到最小值;
若部署集数目达到最小值,返回S1;
若部署集数目未达到最小值,执行S11;
S11、删除最近创建的部署集。
本发明中,不在Pod级别进行扩缩容,而是在Deployment级别进行扩缩容;新扩容的Deployment与原有Deployment可以在Replicas和容器CPU、内存的值均不相同,同时实现水平扩容和垂直扩容的效果,提供了更加综合全面的弹性伸缩机制,提高了扩缩容的效率并且可以在不删除重建已有Pod的情况下,进行垂直扩容,不会引起业务长连接中断。
在一个可选的实施例中,还包括Kubernetes的容器;Kubernetes的容器包括水平容器组伸缩器和垂直容器组伸缩器。
在一个可选的实施例中,水平容器组伸缩器连接部署集;部署集包括容器组副本数;容器组副本数包括容器组A1,容器组A2,……以及容器组AN。
在一个可选的实施例中,垂直容器组伸缩器连接部署集;部署集包括容器组资源;容器组资源包括容器组B1,容器组B2,……以及容器组BN。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (4)

1.一种新的Kubernetes容器资源扩缩容方法,其特征在于,包括以下具体步骤:
S1、获取Metrics Server监控信息,判断资源使用是否达到扩容标准以及是否达到缩容标准:
若资源使用达到扩容标准,执行S2;
若资源使用达到缩容标准,执行S10;
S2、判断实例数是否达到上限;
若实例数达到上限,执行S3;
若实例数达到未上限,执行S6;
S3、判断资源使用是否达到上限;
若资源使用达到上限,返回执行S1;
若资源使用未达到上限,执行S4;
S4、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S5;
若增加资源预调度失败,返回执行S1;
S5、创建新的部署集,增加资源数目;
S6、判断资源使用是否达到上限;
若资源使用达到上限,执行S9;
若资源使用未达到上限,执行S7;
S7、判断增加资源是否能预调度成功;
若增加资源预调度成功,执行S8;
若增加资源预调度失败,执行S9;
S8、创建新的部署集,同时增加实例和资源数目;
S9、创建新的部署集,只增加实例数目;
S10、判断部署集数目是否达到最小值;
若部署集数目达到最小值,返回S1;
若部署集数目未达到最小值,执行S11;
S11、删除最近创建的部署集。
2.根据权力要求1所述的一种新的Kubernetes容器资源扩缩容方法,其特征在于,还包括Kubernetes的容器;Kubernetes的容器包括水平容器组伸缩器和垂直容器组伸缩器。
3.根据权力要求2所述的一种新的Kubernetes容器资源扩缩容方法,其特征在于,水平容器组伸缩器连接部署集;部署集包括容器组副本数;容器组副本数包括容器组A1,容器组A2,……以及容器组AN。
4.根据权力要求2所述的一种新的Kubernetes容器资源扩缩容方法,其特征在于,垂直容器组伸缩器连接部署集;部署集包括容器组资源;容器组资源包括容器组B1,容器组B2,……以及容器组BN。
CN202011524569.XA 2020-12-22 2020-12-22 一种Kubernetes容器资源扩缩容方法 Active CN112559186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011524569.XA CN112559186B (zh) 2020-12-22 2020-12-22 一种Kubernetes容器资源扩缩容方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011524569.XA CN112559186B (zh) 2020-12-22 2020-12-22 一种Kubernetes容器资源扩缩容方法

Publications (2)

Publication Number Publication Date
CN112559186A true CN112559186A (zh) 2021-03-26
CN112559186B CN112559186B (zh) 2021-09-24

Family

ID=75032082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011524569.XA Active CN112559186B (zh) 2020-12-22 2020-12-22 一种Kubernetes容器资源扩缩容方法

Country Status (1)

Country Link
CN (1) CN112559186B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297031A (zh) * 2021-05-08 2021-08-24 阿里巴巴新加坡控股有限公司 容器集群中的容器组防护方法及装置
CN115617517A (zh) * 2022-10-12 2023-01-17 中航信移动科技有限公司 一种用于应用pod控制的数据处理***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108223A (zh) * 2017-11-30 2018-06-01 国网浙江省电力公司信息通信分公司 基于Kubernetes的容器管理平台
CN109067862A (zh) * 2018-07-23 2018-12-21 北京邮电大学 API Gateway自动伸缩的方法与装置
CN109379425A (zh) * 2018-10-16 2019-02-22 浪潮软件集团有限公司 一种分布式集群部署管理方法和装置
CN109446032A (zh) * 2018-12-19 2019-03-08 福建新大陆软件工程有限公司 Kubernetes副本扩缩容的方法及***
CN109947537A (zh) * 2019-03-28 2019-06-28 山东浪潮云信息技术有限公司 创建云容器服务的***及方法
CN110262899A (zh) * 2019-06-20 2019-09-20 无锡华云数据技术服务有限公司 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端
CN110287029A (zh) * 2019-06-27 2019-09-27 中国—东盟信息港股份有限公司 一种基于kubernetes容器资源动态调整的方法
US20200341794A1 (en) * 2019-04-26 2020-10-29 Hewlett Packard Enterprise Development Lp Location-based virtualization workload placement

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108223A (zh) * 2017-11-30 2018-06-01 国网浙江省电力公司信息通信分公司 基于Kubernetes的容器管理平台
CN109067862A (zh) * 2018-07-23 2018-12-21 北京邮电大学 API Gateway自动伸缩的方法与装置
CN109379425A (zh) * 2018-10-16 2019-02-22 浪潮软件集团有限公司 一种分布式集群部署管理方法和装置
CN109446032A (zh) * 2018-12-19 2019-03-08 福建新大陆软件工程有限公司 Kubernetes副本扩缩容的方法及***
CN109947537A (zh) * 2019-03-28 2019-06-28 山东浪潮云信息技术有限公司 创建云容器服务的***及方法
US20200341794A1 (en) * 2019-04-26 2020-10-29 Hewlett Packard Enterprise Development Lp Location-based virtualization workload placement
CN110262899A (zh) * 2019-06-20 2019-09-20 无锡华云数据技术服务有限公司 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端
CN110287029A (zh) * 2019-06-27 2019-09-27 中国—东盟信息港股份有限公司 一种基于kubernetes容器资源动态调整的方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CORENTIN DUPONT 等: "Edge computing in IoT context horizontal and vertical Linux container migration", 《IEEE》 *
倪海峰: "基于Kubernetes的云平台HPA算法的优化与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
张兆伟 等: "Kubernetes HPA技术在气象通信***中的应用", 《信息技术》 *
杨茂 等: "基于Kubernetes的容器自动伸缩技术的研究", 《计算机与数字工程》 *
陈雁 等: "基于Kubernetes应用的弹性伸缩策略", 《计算机***应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297031A (zh) * 2021-05-08 2021-08-24 阿里巴巴新加坡控股有限公司 容器集群中的容器组防护方法及装置
CN115617517A (zh) * 2022-10-12 2023-01-17 中航信移动科技有限公司 一种用于应用pod控制的数据处理***
CN115617517B (zh) * 2022-10-12 2023-11-10 中航信移动科技有限公司 一种用于应用pod控制的数据处理***

Also Published As

Publication number Publication date
CN112559186B (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CN112559186B (zh) 一种Kubernetes容器资源扩缩容方法
CN104243537A (zh) 一种云计算环境下的自动伸缩方法和***
CN103617007A (zh) 多级智能存储实现方法和***
CN114385353A (zh) 资源调度方法及装置、电子设备、存储介质
CN110647392A (zh) 一种基于容器集群的智能弹性伸缩方法
US20150370593A1 (en) System construction device and system construction method
JP2020525883A (ja) リアルタイムファイル変更検知基盤の自動バックアップ装置
CN109391978A (zh) 终端切换方法及装置
CN105847427A (zh) 呼叫中心的话务分配***及方法
CN103248522A (zh) 一种性能数据的上报方法及装置
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN107682573B (zh) 高并发外呼方法、***、设备及存储介质
CN117914675A (zh) 一种分布式缓存***的构建的方法及装置
CN110543357B (zh) 管理应用程序对象的方法,相关装置及***
CN104917652A (zh) 一种测试无线网卡吞吐量的方法
CN112346848A (zh) 一种管理内存池的方法、装置及终端
CN110070260A (zh) 智能调度方法、装置、计算机设备及存储介质
CN106453794A (zh) 一种通话记录处理方法及装置、通话录音方法及***
CN108121580B (zh) 应用程序通知服务的实现方法及装置
CN116244061A (zh) 一种基于k8s的Pod调度方法、存储介质及设备
CN114585035A (zh) 一种语音通话方法、装置和计算机可读存储介质
CN109800229B (zh) 数据访问方法及相关设备
CN103593219B (zh) 一种针对nand flash设备的高可靠文件***的快速启动方法
CN112260398A (zh) 一种支持动态扩展的电网监控***
CN104683308B (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