论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
虚拟化.超融合.云计算
›
公有云
›
通过HPA+CronHPA组合应对业务复杂弹性伸缩场景 ...
通过HPA+CronHPA组合应对业务复杂弹性伸缩场景
宝塔山
金牌会员
|
2024-5-20 15:57:47
|
显示全部楼层
|
阅读模式
楼主
主题
862
|
帖子
862
|
积分
2586
本文分享自华为云社区《
通过HPA+CronHPA组合应对业务复杂弹性伸缩场景
》,作者:云容器大未来。
背景
在k8s集群中,容器程度自动伸缩(HPA),可以根据容器资源的使用量,在设置好的副本范围内,自动扩缩容工作负载副本数(replicas)。HPA是基于指标阈值举行伸缩的,常见的指标有CPU和内存。也可以通过自定义指标,例如QPS、毗连数等举行伸缩。但是存在一种场景:基于指标的伸缩存在一定的时延,这类时延主要包含:采集时延(分钟级) 、 判定时延(分钟级) 和伸缩时延(分钟级)。此类分钟级时延,无法适应在短期内极速上涨的业务流量,可能会导致应用CPU飚高,相应时间变长。
容器定时程度自动伸缩(CronHPA)是对HPA的一种补充,对于有固定时间段高峰期的业务,可以提前将容器的实例数量扩容完毕,防止业务流量突发造成性能不敷,导致业务耽误。而在业务低谷时,触发定时回收资源。
在某些业务场景下,存在突发流量的同时,又具有明显的波峰波谷,若同时设置CronHPA和HPA两种策略,可能出现如下环境:在业务高峰到来前,CronHPA定时任务提前扩容业务容器副本,而此时HPA可能会检测到资源使用率很低而触发实例缩容,导致预扩容的策略失效。
华为云CCE服务支持联动设置CronHPA策略和HPA策略,通过动态设置HPA的副本范围上下限,来调解业务容器实例数。
使用示例
日常生活中,许多业务场景在流量突发的同时具有明显的波峰波谷,且对相应时延很敏感,例如:
1. 网络游戏:X游戏客户,旗下某大型网络游戏,在晚上或周末、节假日等高峰期间,玩家数量会急剧增加,导致游戏服务器的负载瞬间飙升,此时负载副本数若扩容较慢,可能导致网络卡顿,游戏体验显著下降;
2. 视频直播:X视频直播APP,在某些大型活动、比赛等直播活动开始时,观众数量会迅速上升,导致服务器负载急剧增加,网络时延也会随之增加,进而导致观看直播的用户体验下降;
3. 电商促销:X电商平台,在其促销活动时,通常会引起用户的热情高涨,导致用户访问量大幅增加,服务器负载也会急剧增加,若业务容器扩容不及时,很可能导致用户体验下降,严肃的可能导致业务制止;
4. 金融交易:X金融交易平台,旗下涉及多款金融产品,均必要实时相应,网络时延对交易效率和准确性有很大影响。在高峰期,交易量会急剧增加,网络时延也会随之增加。
以上业务场景都必要高效、稳固的网络支持,对网络时延很敏感。假如业务容器扩容不及时,会导致网络时延过高,用户体验下降,甚至影响业务的正常运营。
下面以视频直播服务为例,介绍怎样举行弹性伸缩设置。假如每天晚上的8点半到10点有一场热门直播,在此期间,用户的访问量会暴增,随后流量缓慢下降直至到达低谷。为了节约成本,可按照如下设置,在流量高峰到来前,提前扩容业务容器实例数,在流量高峰退去后,根据业务流量,缓慢缩容:
1. 在CCE控制台,单击集群名称进入集群。
2. 单击左侧导航栏的“工作负载”,在目的工作负载的操纵列中单击“更多 > 弹性伸缩”。
3. 策略范例选择“HPA+CronHPA策略”,启用HPA策略,并同时启用CronHPA策略。此时CronHPA会定时调解HPA策略的最大和最小实例数。
4. 设置HPA策略
设置实例范围与系统策略,如下图, HPA会根据当前业务容器的CPU利用率,在1-10范围内动态调节容器的实例数,当CPU利用率大于80%时自动扩容,在CPU利用率低于60%时自动缩容业务容器实例数。
5. 设置CronHPA策略
设置定时任务,如下图所示
策略一:20:00调解HPA策略实例数范围,从1-10变为8-10;
策略二:22:30调解HPA策略实例数范围,从8-10变为1-10。
6. 重复以上步骤,您可以添加多条策略规则,但策略的触发时间不能雷同。
7. 设置完成后,单击“创建”
按照上述设置完成后,CronHPA会在流量高峰到来前的20:00调解HPA策略实例数范围,从1-10变为8-10,此时, HPA会将业务实例数至少扩容为8,为即将到来的流量高峰做准备。等到流量高峰过去后的22:30调解HPA策略实例数范围,从8-10变为1-10,此时,HPA会根据业务流量环境,缩容业务容器实例数到合适的值,低落用户使用成本。
CronHPA与HPA联动解析
HPA是用来控制Pod程度伸缩的控制器,HPA周期性查抄Pod的资源使用率数据,计算满足HPA资源所设置的目的数值所需的副本数,进而调解目的资源(如Deployment)的replicas字段。
CronHPA支持定时调解HPA策略的最大和最小实例数,以此实现与HPA的联动,以满足复杂场景下的工作负载伸缩。
由于HPA与CronHPA均作用于同一个deployment对象时存在辩论问题,两个伸缩策略相互独立,后执行的操纵会覆盖先执行的操纵,导致伸缩效果不符合预期,因此需避免这种环境发生。
为避免上述问题,我们通过增强CronHPA,支持将CronHPA规则作用于HPA策略之上,CronHPA仅调解HPA的策略设置,而业务容器的实例数仅由HPA操纵,从而实现两种弹性策略的协同工作。
总结
k8s社区提供的HPA策略支持在设置的实例数范围内,根据业务容器的CPU、内存等资源使用率实现自动扩缩容。叠加定时扩容策略CronHPA,期望在业务高峰到来前,先通过CronHPA定时任务提前扩容业务容器副本数,然而此时可能会因HPA检测到资源使用率很低而触发实例缩容,导致预扩容的策略失效。华为云CCE服务通过将HPA与CronHPA组合,实现指标弹性策略与定时弹性策略的有机协同,满足了客户业务复杂的弹性伸缩场景。
参考文档:
https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/
https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html
点击关注,第一时间了解华为云新鲜技术~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宝塔山
金牌会员
这个人很懒什么都没写!
楼主热帖
分布式事务 | 使用DTM 的Saga 模式 ...
Sqlserver2012卸载
WebLogic JNDI注入(CVE-2021-2109) ...
Maxwell 一款简单易上手的实时抓取Mysq ...
哈工大信息安全概论期末复习 ...
【K哥爬虫普法】你很会写爬虫吗?10秒 ...
php微信自定义分享链接,标题,描述, ...
数字IC-1.9 吃透通信协议中状态机的代 ...
轻量级CI/CD发布部署环境搭建及使用_03 ...
JVM中的编译器
标签云
挺好的
服务器
快速回复
返回顶部
返回列表