弹性伸缩的目的
成本优化
服务高可用
伸缩模式
纵向伸缩
横向伸缩(一般常说的弹性伸缩指的是横向伸缩,本文默认横向伸缩)
伸缩手段
Pod
HPA
三方组件&自研(如KEDA)
Node节点
云商功能组件
节点池规划
固定节点池:Node节点为包年包月,保持20%的空闲资源
伸缩节点池:Node节点为按量收费,保持动态伸缩
Pod伸缩指标
HPA
CPU使用率
内存使用率
KEDA
时间
第三方指标
其他详情指标可以参考:https://keda.sh/docs/2.10/scalers/
Pod副本数
下限:2 (保障最小的高可用)
上限:依据实际情况
节点伸缩指标
扩展:
Pending事件
定时时间
CPU&内存使用率
缩回:
资源使用率
注:以上N项可以是“或”的存在
步骤方法
做好Pod的容量规划,设置合理的Request和Limit(差值不要大于20%),依据服务特性做好归类,为后续节电池的规划提供依据
依据Pod的归类,规划出节电池,并通过监控分析选出早晚峰值落差大的典型服务,讨论并测试Pod伸缩指标、阈值、副本数等
对波峰不明显但核心的服务(如网关服务),设置相应的弹性伸缩策略,副本数下限为当前峰值数量,目的应对未知的流量,保障服务高可用
规划节点池的伸缩策略,在设计的时候要考虑伸的相应时间是否可以及时,缩的释放是否对服务有影响