托管伸缩功能开启后,系统会持续监控集群 yarn 的负载,并计算近10分钟内的负载峰值变化情况,从而自动补充或减少 task 节点;托管伸缩仅用于含 yarn 组件的集群类型。
基础设置
基础设置限制托管伸缩功能的扩缩容节点数范围,及按量计费最小节点数。
最小节点数:托管缩容策略触发时,集群最少保留弹性伸缩的 task 节点数。
最大节点数:托管扩容策略触发时,集群最多保留弹性伸缩的 task 节点数,单条或多条规格累计扩容数不能超过最大节点数。
按量计费最小节点数:扩容触发后最少扩容的按量计费节点数量,用于设置按量计费节点和竞价实例的占比,默认为最大节点数。
例如
最小节点数设置为0,最大节点数设置为100,按量最小节点数设置为10,触发扩容后,按量计费节点最少扩容10台,剩余由竞价实例补充,当竞价实例不足时,则由按量计费补充。
伸缩规格管理
伸缩规格是指通过托管伸缩可以扩容的节点规格,每个集群最多可配置5种伸缩规格,扩容规则触发时将根据规格优先级进行扩容,当高优先级规格数量不足时,由次优先级资源规格混合高优先级规格进行扩容补充计算资源;为了保持集群负载的线性变化,建议尽量使伸缩规格的 CPU 和内存保持一致;托管伸缩功能仅支持 host 资源类型。
伸缩规格中的节点支持增、删、改、查,可按需调整伸缩规格优先级。
五种规格扩容顺序为(按量计费和竞价实例执行顺序相同):
当资源充足时:1>2>3>4>5
例如
预设5种规格且资源充足,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容10台节点,其余预设规格不选择。
当资源不足时:1+2>1+2+3>1+2+3+4>1+2+3+4+5
例如
预设规格1有 8台节点,规格2有4台节点,规格3有3台节点,当扩容规则触发需要扩容13台节点时,按照顺序规格1扩容8台节点,规格2扩容4台,规格3扩容1台节点。
当资源规格无货时,假设规格2无货:1+3>1+3+4>1+3+4+5
例如
预设规格1有 8台节点,规格2无货没有节点,规格3有3台节点,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容8台节点,规格2不选,规格3扩容2台节点。
预设规格1有 8台节点,其余预设规格均无货,当扩容规则触发,需要扩容10台节点时,扩容规则将会触发,并扩容规格1扩容8台节点,扩容部分成功。
托管伸缩监控指标
托管伸缩会监控多个指标并会计算每个指标的建议节点数量,然后根据提供的节点数量做出扩容和缩容决策。
托管伸缩监控指标 | 指标说明 |
AvailableMemPercentage | 剩余内存的百分⽐ |
AvailableVCoresPercentage | YARN 可用虚拟核数百分比 |
统计规则:集群负载指标在⼀个统计周期内,按照选定的聚合维度,设置为处理最近 10 分钟内的峰值负载。
统计周期:指标的统计时⻓,⼀分钟。
托管伸缩默认扩缩容原则是:快速扩容,谨慎缩容,缩容时为优雅缩容。