酷家乐基于 Crane EHPA 的弹性落地实践

为什么需要自动伸缩

互联网业务由于人的活动规律从而普遍具有周期性繁忙的特征,最常见的是以天为单位的周期性变化,比如白天繁忙、夜间空闲。按传统固定资源模式,低峰期时资源使用率较低但仍然持有资源,便会造成浪费。服务的自动伸缩(可能还需要配合集群资源的自动伸缩)就能实现在高峰期扩容并在低峰期回收资源的效果,在公有云等按量计费的场景下实现成本优化。

传统固定资源模式下,业务往往会冗余一定的资源来应对流量增长,使用自动伸缩后可以减少这部分冗余资源,也能更从容地应对热点流量等情况。

在进入 K8S 时代之后,服务通过声明式 API 就可以轻松地完成扩缩容操作,而 K8S 提供的水平扩缩容(Horizontal Pod Autoscaling,以下简称HPA)功能可以基于 CPU、QPS、任务队列等指标实现服务实例数量的自动伸缩。

本文主要总结了 HPA 落地实践中的问题,以及 Crane 的 EffectiveHPA(以下简称 EHPA)是如何帮助我们解决对应问题的。

HPA落地的问题

HPA的运行机制主要是由 HPA Controller 通过指标与扩缩容阈值的计算得到服务的期望实例数来进行扩缩容活动。自动扩缩容带来的挑战一方面是对服务提出了更高的要求,随时扩缩容的前提是需要服务能够优雅启动与下线;另一方面则是 HPA 基础设施自身功能与健壮性的挑战。以下主要讨论的是后者遇到的问题。

  1. 扩容滞后:首要问题便是基于监控指标的扩缩容存在滞后性,当探测到指标达到阈值并扩容启动服务,会有一定的时间差。这就导致服务在高峰来临的时候才开始扩容,此时如果扩容机制出现异常(集群资源不足、依赖项异常导致启动失败等原因) 还会引发更大的危机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值