弹性伸缩是云计算领域资源类产品上被广泛采用的功能,典型的场景包含在线业务弹性、大规模计算训练、深度学习 GPU 或共享 GPU 的训练与推理、定时周期性负载变化等。弹性伸缩分为两个维度:
- 资源层弹性:主要是指集群的容量规划不能满足集群调度容量时,会通过添加 ECS 或 VCI 等资源的方式,补充集群整体的调度容量。
- 调度层弹性:主要是指通过增加应用负载副本的方式,修改负载的调度容量。例如,HPA 是典型的调度层弹性组件,通过 HPA 可以调整应用的副本数,调整的副本数会改变当前负载占用的调度容量,从而实现调度层的伸缩。
在 VKE 集群中,弹性伸缩主要包括以下几种:
- CA(Cluster Autoscaler):即节点弹性伸缩。所有的 Pod 都是运行在节点上,当集群中没有足够多的节点来调度新扩容的 Pod 时,就需要通过自动为集群增加节点,从而保证业务能够正常提供服务。
- HPA(Horizontal Pod Autoscaler):即工作负载指标弹性伸缩。Pod 代表应用的实例数,当业务高峰的时候,如果已有的应用实例个数无法满足要求,就需要通过自动扩容 Pod 个数,实现应用实例个数的扩容。
- CronHPA(Cron Horizontal Pod Autoscaler):即工作负载定时弹性伸缩。支持在指定时间执行伸缩规则,实现 Pod 自动扩容或者缩容,满足业务需求的同时又能控制成本。