kubelet如何避免节点频繁切换“资源不足”和“资源充足”状态?

简介: kubelet如何避免节点频繁切换“资源不足”和“资源充足”状态?

驱赶行为的触发条件


当计算节点(安装kubelet的节点)资源不足时,会触发驱赶行为。

驱赶行为的触发条件主要包括


  • memory.available可用内存
  • nodefs.available文件系统剩余空间
  • nodefs.inodesFree文件系统剩余Inode等
  • imagefs.available镜像文件系统剩余空间
  • imagefs.inodesFree镜像文件系统剩余Inode
  • 软阈值和硬阈值

镜像文件系统主要保存镜像分层及运行时最上面的读写层

kubelet可以针对这些指标设置软阈值和硬阈值。


软阈值是指当达到阈值后触发关闭,逐步迁移,

硬阈值则是强制关闭容器,驱赶到其他节点运行。

所以,软阈值相对于硬阈值设置的数值要稍大,针对可用内存memory.available,通常软阈值为1.5Gi,而硬阈值为0.5Gi。 这种思想很常见,比如redis rdb持久化策略、redis主从同步缓冲区设置策略…

kubelet回收资源的两个参数


当某个资源出现不足后,节点将会发出驱赶策略,并标记节点状态为MemoryPressure内存压力或者DiskPressure磁盘压力。当回收部分资源后(删除无用的镜像、回收死亡的容器、删除低优先级的Pod),节点将重新标记为正常运行,并重新接收新Pod创建,那么也可能会出现资源不足的情况。


为了避免节点一直处于频繁切换“资源不足”和“资源充足”状态,kubelet通过两种机制保证,一是通过eviction-minimum-reclaim指定一次回收中至少回收的资源,另一个是通过eviction-pressure-transition-period设置延迟周期,需要计算节点保持“资源充足”的状态超过eviction-pressure-transition-period设定时间后,才可以将节点设置为“资源充足”状态。

目录
相关文章
|
3月前
|
存储 Kubernetes Docker
Kubernetes节点资源耗尽状态的处理
Kubernetes节点资源耗尽状态的处理
|
3月前
|
Kubernetes 调度 Perl
在K8S中,节点故障驱逐pod过程时间怎么定义?
在K8S中,节点故障驱逐pod过程时间怎么定义?
资源占用过高解决办法|4-12
资源占用过高解决办法|4-12
|
3月前
|
Kubernetes API Perl
在K8S中,如何让Pod运行一次?如何解决一次性任务?
在K8S中,如何让Pod运行一次?如何解决一次性任务?
|
3月前
|
Prometheus Kubernetes 监控
在K8S中,Pod处于OOM状态如何排查?
在K8S中,Pod处于OOM状态如何排查?
|
3月前
|
Kubernetes Linux 调度
在k8S中,Pod如何实现对节点的资源控制?
在k8S中,Pod如何实现对节点的资源控制?
|
3月前
|
Kubernetes Java 调度
在K8S中,Pod突然挂掉,K8S有什么机制或功能自动清除Pod?
在K8S中,Pod突然挂掉,K8S有什么机制或功能自动清除Pod?
|
3月前
|
Prometheus Kubernetes 监控
在K8S中,如何排查与解决Pod频繁重启的问题?
在K8S中,如何排查与解决Pod频繁重启的问题?
|
4月前
|
Java BI 运维
开发与运维配置问题之升级机器配置后出现频繁的GC问题和超长的GC时间如何解决
开发与运维配置问题之升级机器配置后出现频繁的GC问题和超长的GC时间如何解决
36 1
|
Java 调度
服务器常见问题排查(一)——cpu占用高、上下文频繁切换、频繁GC
文章主要讨论了服务器中常见性能问题的一些排查思路,这篇文章主要讨论了CPU负载过高,频繁GC和频繁切换上线文这三个问题。
1277 0
服务器常见问题排查(一)——cpu占用高、上下文频繁切换、频繁GC
下一篇
无影云桌面