当前位置: 首页 > ds >正文

Kubernetes 节点资源驱逐策略详解:evictionHard 与 evictionSoft

在 Kubernetes 的生产环境中,节点资源(如内存、磁盘空间、inode)紧张时,系统可能会自动进行 Pod 驱逐以保障系统的稳定运行。Kubelet 提供了两类资源回收机制配置项:evictionHard 和 evictionSoft,它们控制了节点的资源驱逐行为。本文将对这两个配置进行详细解析,并说明它们对应的资源目录路径。

一、什么是 Eviction 策略?

Eviction 是 Kubernetes 的一种资源回收机制。当节点资源紧张时,Kubelet 会根据配置的驱逐策略主动驱逐低优先级的 Pod,从而释放资源,避免节点崩溃。

驱逐策略分为:
• Hard Eviction(硬驱逐):一旦触发,立即执行 Pod 驱逐操作。
• Soft Eviction(软驱逐):满足条件后并不会立即驱逐,而是等到一段宽限期(evictionSoftGracePeriod)后才驱逐。

二、evictionHard 配置详解

evictionHard:
imagefs.available: 10%
memory.available: 300Mi
nodefs.available: 10%
nodefs.inodesFree: 5%

当系统资源低于以下阈值时,Kubelet 会立即驱逐部分 Pod。

项目 含义 资源路径
imagefs.available: 10% 容器镜像存储盘的剩余空间不足 10% 时触发 一般为 /var/lib/containerd 或 /var/lib/docker
memory.available: 300Mi 可用内存小于 300Mi 时触发 系统整体内存
nodefs.available: 10% 根文件系统剩余空间不足 10% 时触发 通常为 / 或 /var/lib/kubelet
nodefs.inodesFree: 5% 根文件系统剩余 inode 少于 5% 时触发 inode 反映的是文件系统中可创建的文件数

三、evictionSoft 配置详解

evictionSoft:
imagefs.available: 10%
memory.available: 512Mi
nodefs.available: 15%
nodefs.inodesFree: 10%

当系统资源低于以下阈值时,Kubelet 并不会立刻驱逐 Pod,而是等待 evictionSoftGracePeriod 设定的宽限期后再做决定。

项目 含义 资源路径
imagefs.available: 10% 镜像盘可用空间小于 10% 时进入软驱逐等待 /var/lib/containerd 或 /var/lib/docker
memory.available: 512Mi 可用内存小于 512Mi 时进入软驱逐等待 系统 RAM
nodefs.available: 15% 根盘可用空间小于 15% 时触发软驱逐 /、/var、/var/lib/kubelet
nodefs.inodesFree: 10% inode 使用超过 90%,剩余不到 10% 时触发软驱逐 根文件系统 inode

四、补充说明
• imagefs vs nodefs:
• imagefs:容器运行时使用的文件系统(如 /var/lib/containerd)。
• nodefs:节点自身的根文件系统(如 / 或 /var/lib/kubelet)。
• 硬驱逐优先级高于软驱逐:硬驱逐一旦触发,Pod 会立即被移除,通常用于防止节点失控;而软驱逐则适用于提前预警式释放资源。
• 配置位置:
这些配置项一般位于 kubelet 的启动参数中(如 /var/lib/kubelet/config.yaml),或以参数形式传入 kubelet 启动命令中。

http://www.xdnf.cn/news/12928.html

相关文章:

  • 附加模块--Qt OpenGL模块功能及架构
  • 利用pandas gradio实现简单的项目子项拆解及排期
  • Fractal Generative Models论文阅读笔记与代码分析
  • 树莓派超全系列教程文档--(57)如何设置 Apache web 服务器
  • 抖音怎么下载没有水印的视频?
  • ArkUI-X与Android桥接通信之方法回调
  • 华为OD机试真题——机房布局(2025B卷:100分)Java/python/JavaScript/C++最佳实现
  • LeetCode - 53. 最大子数组和
  • 【每日一题 | 2025年6.2 ~ 6.8】第16届蓝桥杯部分偏简单题
  • 大数据治理的常见方式
  • Unity VR/MR开发-VR/开发SDK选型对比分析
  • 20-Oracle 23 ai free Database Sharding-特性验证
  • 求解插值多项式及其余项表达式
  • 阿里云OSS 上传文件 Python版本
  • Xxl-job——源码设计思考
  • 2025年6月6日第一轮
  • 基于算法竞赛的c++编程(20)函数的递归
  • Spring Security深度解析:构建企业级安全框架
  • 港科大快手提出统一上下文视频编辑 UNIC,各种视频编辑任务一网打尽,还可进行多项任务组合!
  • MQTT协议详解技术文档
  • 微服务架构实战:Nacos 单机版的安装与启动流程
  • 号外!PLC和安川伺服,通过Profinet转EtherCAT网关同步多个工作站的运动
  • 坚持每日Codeforces三题挑战:Day 4 - 题目详解(2025-06-07,难度:1000, 1100, 1400)
  • 转行数据分析师,愿望是进大厂
  • 构建智能对话式BI的关键:ChatBI场景下的Agent框架选型深
  • 沉金电路板表面处理工艺深度解析:技术原理与行业应用挑战
  • 滴滴 服务端 面经
  • 应急响应思路
  • 大数据(1) 大数据概述
  • 如何评估大语言模型效果