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

kubectl get pods 显示 Evicted 状态怎么清理并恢复

看到 Evicted 状态不用慌,这代表 Pod 已经被 kubelet 终止且不会自动重启,直接删除该 Pod 即可清理;如果它属于 Deployment 等控制器管理,新 Pod 会自动创建,否则需要检查节点资源后手动重建。

先说结论:Evicted 是终态,不会自动恢复,必须手动删除旧 Pod 触发重建

  • 先确认:检查 Pod 是否由 Deployment 或 StatefulSet 控制器管理
  • 先处理:使用 kubectl delete 清理处于 Evicted 状态的 Pod
  • 再验证:观察新 Pod 是否成功启动且不再被驱逐

命令速用版

# 查看所有处于 Evicted 状态的 Pod
kubectl get pods `--field-selector` status.phase=Failed# 删除指定的 Evicted Pod
kubectl delete pod <pod-name> -n <namespace># 批量清理所有 Evicted Pod(谨慎使用)
kubectl get pods `--field-selector` status.phase=Failed -o jsonpath='{.items[*].metadata.name}' | xargs kubectl delete pod

为什么会这样

Pod 显示 Evicted 并不是简单的“错误”,而是 kubelet 主动终止了它。常见原因包括节点资源压力(如磁盘空间不足、内存超限)或节点本身出现故障。一旦进入这个状态,Pod 生命周期就结束了,控制器如果不介入,它不会自己变回 Running。

分步处理

1. 确认 Pod 归属
先查看 Pod 详情,确认它是否有控制器管理。如果是 Deployment 创建的,删除后会自动补新;如果是裸 Pod 或 Static Pod,删除后需要手动重新应用配置。

kubectl get pod <pod-name> -o yaml | grep ownerReferences

2. 清理 Evicted Pod
确认无误后直接删除。如果 Pod 卡在 Terminating,可能需要强制删除。

kubectl delete pod <pod-name> `--grace-period`=0 `--force`

3. 排查根因
清理只是止血,必须检查节点资源。查看节点磁盘和内存使用情况,避免新 Pod 起来后再次被驱逐。

kubectl describe node <node-name>
df -h  # 在节点上执行

怎么验证是否生效

执行删除后,再次运行 get 命令,确认旧 Pod 消失。如果有控制器,会看到一个新的 Pod 创建出来。观察新 Pod 的 STATUS 列是否为 Running,且 RESTARTS 计数正常。

kubectl get pods -w

常见坑

  • 忽略资源压力:如果不清理节点磁盘日志或缓存,新 Pod 很快会再次 Evicted。
  • 静态 Pod 误删:kube-system 下有些 Pod 是静态 Pod,删除后虽然会恢复,但频繁驱逐可能意味着控制平面节点有问题。
  • 强制删除风险:使用 `--force` 跳过优雅终止可能导致应用数据丢失,仅在卡死时使用。

参考来源

  • Kubernetes Official Docs - Pod Lifecycle: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/
  • Kubernetes Official Docs - Eviction Policy: https://kubernetes.io/docs/concepts/scheduling-eviction/eviction-policy/

原文链接:https://www.zjcp.cc/ask/10300.html

http://www.jsqmd.com/news/775518/

相关文章:

  • AI内容泛滥引市场抵触,创作者如何打造高质量原创AI作品?
  • 基于Mini-Agent框架构建可编程AI智能体:从原理到实践
  • 余热回收系统中,翅片换热器的高效热交换奥秘何在?
  • 5个问题揭示:如何用开源工具实现跨平台输入法词库无缝迁移?
  • 教你轻松搞定大润发购物卡回收,几分钟到账不是梦! - 团团收购物卡回收
  • 终极Windows Cleaner指南:快速解决C盘空间不足的完整教程
  • 【DeepSeek实战】驾驭千亿参数:DeepSeek V4 Prompt 工程最佳实践
  • Cursor AI 编码规则集:从通用助手到领域专家的蜕变指南
  • 超声信号处理算法概述
  • Zotero GPT终极指南:5步打造你的AI文献助手
  • 没有人比我更懂 Token
  • LLM技能自动化测试:使用skillprobe实现端到端验证与CI集成
  • XUnity.AutoTranslator:打破语言壁垒的Unity游戏实时翻译终极解决方案
  • 构建模块化技能编排系统:Prime-Weaver架构设计与工程实践
  • 【2026年最新600套毕设项目分享】食堂订餐小程序(30248)
  • Cursor AI编辑器下载链接自动化追踪器:Node.js与GitHub Actions实战
  • 炉石传说脚本终极指南:5步轻松实现游戏自动化
  • 3大核心优势解密Fernflower:Java字节码逆向工程的终极解决方案
  • 如何在5分钟内实现Rhino到Blender的完美3D模型导入
  • DeEco Studio的安装
  • Cat-Catch资源嗅探工具:三步实现网页媒体资源高效捕获
  • G-Helper AMD CPU降压功能深度解析:15℃降温背后的技术实现
  • 性价比高的宠物洗护美容培训生产厂家
  • NVIDIANeMo Guardrails:构建安全可控的大语言模型应用
  • 终极Windows清理指南:如何用Windows Cleaner一键解决C盘爆红问题
  • ComfyUI IPAdapter Plus技术架构全解析:AI图像引导生成的深度实践
  • 3步实现百度网盘文件高速下载:绕过限速的实用方案
  • AsynAgents:基于独立代理线程的桌面AI自动化应用架构解析
  • OOMKilled 报错如何调整容器内存限制和请求值
  • 如何快速解锁加密音乐:3步完成NCM格式批量转换完整指南