K8S集群Pod资源自动扩缩容方案
1.为什么要是有自动扩缩容
在K8S集群中部署的应用程序都是以Pod的形式部署的,我们在部署Pod资源时都会指定Pod资源的副本数,但是这个数量是写死的,平时可能启动10个Pod副本就可以满足日常的业务需求,但是当压力增大时,启动的10个Pod副本可能无法满足并发请求,从而就会造成影响。
自动扩缩容适合应用的场景:
- K8S集群中有很多会临时高并发的业务程序,我们不能同时去监控这些应用程序,无法在业务高并发时手动增加Pod的副本数量,这时只能通过自动扩缩容去监测Pod的资源利用率,通过自动扩缩容来满足用户的使用。
- 测试对应用程序压测时,如果有自动扩缩容机制,Pod会随着压力的增加自动扩展Pod的副本数量。
- 电商平台秒杀、系统高并发时刻,这时如果没有自动扩缩容方案,那么突然的高并发就会将应用程序压死,从而造成平台宕机,损失巨大。
- 自动扩缩容不仅针对于Pod资源,还可以对Node节点实现扩缩容,当Node节点资源不足时,自动扩展Node节点的数量。
2.自动扩缩容方案
1)HPA(Horizontal Pod Autoscaling)
水平伸缩,HPA可以通过监控Pod资源的CPU、内存、磁盘使用情况,自动扩容或者收缩Pod资源的数量,当业务高并发时自动增加Pod的数量,当系统稳定后自动缩减容器的数量。
2)KPA(Knative Pod