kubelet节点压力驱逐
kubelet监控集群节点的 CPU、内存、磁盘空间和文件系统的inode 等资源,根据kubelet启动参数中的驱逐策略配置,当这些资源中的一个或者多个达到特定的消耗水平,kubelet 可以主动地驱逐节点上一个或者多个pod,以回收资源,降低节点资源压力。
基于kubernets v1.17.4
1.什么时候发生驱逐
kubelet结合以下数据项来做出驱逐决定:
(1)驱逐信号;
(2)驱逐策略;
(3)驱逐监测间隔;
1.1 驱逐信号
节点上的memory、nodefs、pid等资源都有驱逐信号,kubelet通过将驱逐信号与驱逐策略进行比较来做出驱逐决定;
驱逐信号列举如下:
(1)memory.available
;
(2)nodefs.available
;
(3)nodefs.inodesFree
;
(4)imagefs.available
;
(5)imagefs.inodesFree
;
(6)pid.available
;
kubelet支持以下文件系统分区:
(1)nodefs:节点的主要文件系统,用于本地磁盘卷、emptyDir、日志存储等。 例如,nodefs包含/var/lib/kubelet/
;
(2)imagefs:可选文件系统,供容器运行时存储容器镜像和容器可写层。
1.2 驱逐策略
kubelet节点压力驱逐包括了两种,软驱逐和硬驱逐;
软驱逐
软驱逐机制表示,当node节点的memory、nodefs等资源达到一定的阈值后,需要持续观察一段时