koordinator Descheduler的LowNodeLoad插件助力节点平衡与应用稳定性的提升
在 深度解析descheduler的highNodeUtilization和lowNodeUtilization插件的原理 中研究了kubernetes社区里的descheduler的两个Node utilization插件,而这两个插件用都存在使用request来计算节点的资源使用情况,无法解决节点过热(小部分节点的资源使用高于其他大部分节点)问题。而这篇文章介绍koordinator descheduler的LowNodeLoad插件就是解决这个问题的,它基于节点实际的资源使用值来区分高水位节点、正常节点和低水位节点。
koordinator descheduler兼容社区的descheduler,同时增加了两个插件MigrationController和LowNodeLoad(在Koordinator v1.1中增加的)。
koordinator的LowNodeLoad插件类似lowNodeUtilization插件,都是将高水位节点的pod驱逐到低水位节点上。跟lowNodeUtilization不同的是,它是基于节点的真实负载对节点进行分类,它能够真正解决节点资源过热问题。
MigrationController插件提供资源保留和仲裁机制(拦截机制),通过这两个能力保障descheduler驱逐pod时候的应用稳定性。
这篇文章只介绍LowNodeLoad插件,MigrationController插件后面文章会介绍,本文基于Koordinator v1.4版本和Descheduler v0.28.1。