更新时间:2024-08-17 GMT+08:00
集群弹性伸缩配置
弹性扩容配置
CCE集群弹性引擎将综合判断整集群的资源情况,当微服务负载高(CPU/内存使用率过高)时水平扩容,增加Pod的数量以降低负载。
节点扩容条件
- 负载无法调度时自动扩容:集群中存在负载实例无法调度时,尝试自动扩容已开启弹性伸缩的节点池。若Pod已经设置亲和某个节点,则不会自动扩容节点。
该功能可以和HPA策略配合使用,具体请参见使用HPA+CA实现工作负载和节点联动弹性伸缩。
- 自定义节点弹性策略开关:根据节点弹性策略自动扩容节点池,默认开启。
节点扩容资源上限
- 节点数量:扩容时,集群下所有节点数量的上限,超过该值时将不再扩容。默认为集群管理规模的节点上限。
- CPU核数:扩容时,集群下所有节点CPU核数之和的上限,超过该值时将不再扩容。默认不限。
- 内存(GiB):扩容时,集群下所有节点内存之和的上限,超过该值时将不再扩容。默认不限。
统计节点、CPU和内存总数时,包含自定义节点池的不可用节点,但是不包含默认节点池中的不可用节点。
节点池扩容优先级
节点池列表可通过拖拽调整扩容优先级。
弹性缩容配置
CCE集群弹性引擎将综合判断整集群的资源情况,在满足负载迁移后能够正常调度运行的前提下,自动筛选节点来进行缩容。
节点缩容条件
- 节点资源条件:当集群节点资源的Request值(CPU和内存需同时满足)连续一段时间(默认10min)低于一定百分比(默认50%)时,会触发集群缩容操作。
- 节点状态条件:节点处于不可用状态下超过一定时间会被自动回收,默认为20分钟。
- 缩容例外场景:节点满足以下例外场景时,即使节点资源或状态满足缩容条件,不会被CCE集群弹性引擎自动缩容。
- 集群其它节点资源不足时将不会触发非完全空闲节点缩容。
- 节点开启缩容保护时将不会触发节点缩容。如需开启或关闭节点缩容保护,请前往“节点管理 > 节点”页面,单击节点操作列的“更多 > 开启/关闭节点缩容保护”按钮操作。
- 节点上存在指定不缩容标记的Pod时,该节点将不会被缩容。
- 节点上的部分容器存在可靠性等配置策略时,将有可能不会自动缩容。
- 节点上存在kube-system命名空间下的非DaemonSet类容器时,该节点将不会被缩容。
- (可选)节点上如果存在已运行的容器由第三方Pod Controller进行管理,则该节点不会被缩容。第三方Pod Controller是指除Kubernetes原生的工作负载(如Deployment、StatefulSet等)外的自定义工作负载,可通过自定义资源CRD进行创建。
节点缩容策略
名称 |
说明 |
默认值 |
---|---|---|
缩容并发数 |
最多支持多少个空闲节点同时缩容。 缩容并发数只针对完全空闲节点,完全空闲节点可实现并发缩容。非完全空闲节点则只能逐个缩容。
说明:
节点在缩容的时候,若节点上的Pod不需要驱逐(DaemonSet的Pod认为不需要驱逐),则认为该节点为完全空闲节点,否则认为该节点为非完全空闲。 |
10 |
检查周期 |
节点被判定不可移除后能再次启动检查的时间间隔。 |
5min |
冷却时间 |
集群触发弹性缩容后,再次启动缩容评估的冷却时间。
说明:
集群中如果同时存在自动扩容和自动缩容的场景,建议配置该参数为0min,避免由于部分节点池持续扩容或者扩容失败重试而阻塞整体缩容节点行为,导致非预期的节点资源浪费。 |
10min |
集群触发弹性扩容后,再次启动缩容评估的冷却时间。 |
10min |
|
集群触发弹性缩容失败后,再次启动缩容评估的冷却时间。 |
3min |