全部产品
云市场

节点伸缩规则

更新时间:2019-08-28 18:27:43

节点自动伸缩(CA)遵守快弹慢缩的原则。

  • 扩容条件:当集群中开启了节点自动伸缩的应用 Pod 没有节点可以调度,处于 Pending 状态,会触发选取一个合理的节点组进行扩容。

  • 缩容条件:属于某个节点组的节点的资源使用率(CPU 和内存)低于阈值时,并持续时间超过缩容考察期,就会触发缩容。

重要:

  • 扩容和缩容的触发条件并不一样,扩容触发条件是应用 Pod 处于 Pending 状态,一般是由于 CA 托管的节点都资源不足才会触发扩容;缩容条件是节点的资源使用率是否低于阈值。

  • 扩容不能简单地根据使用率超过阈值来触发扩容,而要判断是否有 Pending Pod 来触发。然而,如果等到所有节点都资源不足了再进行扩容,那么 Pending 的 Pod 需要等待较长时间才能有新扩容出来的节点进行调度。所以在这个前提下,提出了低优先级的占位 Pod(Slot Pod)来模拟触发扩容的上限阈值。当创建出新应用 Pod 时,如果没有多余的资源可以调度了,那么应用 Pod 会优先抢占掉占位的 Slot Pod,使得应用 Pod 能立刻有资源进行调度。被抢占掉资源的 Slot Pod 会成为 Pending Pod,继而触发扩容增加新的节点。

  • 若只允许缩容没有应用 Pod 的节点,那么推荐将缩容阈值设置为 1%。

  • 根据扩容的触发条件,如果扩容阈值设置为 100%,也能够触发扩容,因为新建的应用 Pod 无法调度,会成为 Pending Pod 触发扩容。

节点使用率及计算规则

  • CPU 使用率: 显示所有 CA 托管的节点的总体平均 CPU 使用率。
  • 内存使用率: 显示所有 CA 托管的节点的总体平均内存使用率。

重要:CPU 使用率并不等于 所有节点已占用的 CPU / 所有节点总的 CPU,而是等于 (所有节点已占用的 CPU - 所有 cafe-ca-default-cpu-slot pod 占用的 CPU) / 所有节点总的 CPU。内存同理。默认每个 Slot Pod 占用的 CPU 0.5 核,内存为 0.5G。