公开/公告号CN112559186A
专利类型发明专利
公开/公告日2021-03-26
原文格式PDF
申请/专利权人 北京云思畅想科技有限公司;
申请/专利号CN202011524569.X
申请日2020-12-22
分类号G06F9/50(20060101);G06F9/48(20060101);
代理机构11489 北京中政联科专利代理事务所(普通合伙);
代理人张春慧
地址 100083 北京市海淀区清华东路35号北京林业大学学研中心3层C0313-1房间
入库时间 2023-06-19 10:24:22
技术领域
本发明涉及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。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
机译: 利用因特网URL寻址数据资源的方法,包括在标识符的帮助下在URL系统中提取资源容器作为数据包,并从提取的资源容器中读取最近容器的新URL
机译: 一种新的三缩胺类似物的制备方法
机译: 制造一种新的针织物的方法,该针织物包括纱线混合物或缩窄的混合物