• 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设定时间后,才可以将节点设置为“资源充足”状态。

  • 相关阅读:
    NTB0101GS1Z 电压电平 移位器 产品概述 特性
    SpringBoot+RabbitMQ实现MQTT协议通讯
    实际工作开发中C语言工程的目录结构分析
    1151 LCA in a Binary Tree
    Linux 安装elasticsearch-7.5.1
    代码随想录-刷题第一天
    5_SqlSugar实体中的细节
    好用免费的Chat GPT(亲测有用)
    1-Docker安装MySQL8.0
    class13:MongoDB
  • 原文地址:https://blog.csdn.net/MyySophia/article/details/127933300