使用 tke-autoscaling-placeholder 实现秒级弹性伸缩
操作场景
如 TKE 集群配置了节点池并启用弹性伸缩,则在节点资源不够时可以触发节点的自动扩容(自动购买机器并加入集群),该扩容流程需要一定的时间才能完成,在一些流量突高的场景,该扩容速度可能会显得太慢,影响业务正常运行。而 tke-autoscaling-placeholder
可以用于在 TKE 上实现秒级伸缩,应对流量突高场景。本文将介绍如何使用 tke-autoscaling-placeholder
实现秒级弹性伸缩。
实现原理
tke-autoscaling-placeholder
利用低优先级的 Pod(带有 request 的 pause 容器,实际资源消耗较低)对资源进行提前占位,为可能出现流量突增的高优先级业务预留一部分资源作为缓冲。当需要扩容 Pod 时,高优先级的 Pod 可以快速抢占低优先级 Pod 的资源进行调度,这将导致低优先级的 tke-autoscaling-placeholder
的 Pod 进入 Pending 状态,如果配置了节点池并启用弹性伸缩,将会触发节点的扩容。通过这种资源缓冲机制,即使节点扩容速度较慢,也能确保部分 Pod 能够迅速扩容并调度,实现秒级伸缩。根据实际需求,可以调整 tke-autoscaling-placeholder
的 request 或副本数,以便调整预留的缓冲资源量。
使用限制
使用 tke-autoscaling-placeholder
应用,集群版本需要在1.18以上。