1、自动(弹性)扩缩容简介
弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行在实际工作中,我们常常需要做一些扩容缩容操作,如:电商平台在 618 和双十一搞秒杀活动;由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作。
在 k8s 中扩缩容分为两种:
- Node 层面
对 K8s 物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容。
- Pod 层面
我们一般会使用Deployment中的replicas参数,设置多个副本集来保证服务的高可用,但是这是一个固定的值,比如我们设置 10 个副本,就会启 10 个 pod 同时 running 来提供服务。如果这个服务平时流量很少的时候,也是 10 个 pod 同时在 running,而流量突然暴增时,又可能出现 10 个pod 不够用的情况。针对这种情况怎么办?就需要扩容和缩容。
2、K8s中自动伸缩的方案
1. HPA
Kubernetes HPA(Horizontal Pod Autoscaling):Pod 水平