标准答案
- 查看 Pod reason/message、节点 conditions、kubelet 事件和资源使用,确定是 memory、ephemeral-storage、inode 还是 PID 压力。
- 检查 Pod requests、QoS、临时文件、日志、镜像层、emptyDir 和节点其他工作负载。
- 修复可能包括清理泄漏、设置临时存储 request/limit、调整资源、扩容节点或隔离高风险任务。
- 确认控制器能重新创建副本并恢复流量,状态型数据要依赖持久化卷和恢复流程。
题目解析
Evicted 通常是 kubelet 在节点资源压力下主动驱逐 Pod,以保护节点继续运行;它与容器自己崩溃、OOMKilled 和控制器删除不是同一类事件。压力可能来自 memory、ephemeral-storage、inode、PID 或其他可驱逐资源,原因要以 Pod message、Node conditions 和 kubelet events 为准。
requests 和 QoS 会影响驱逐顺序,但提高 request 不能创造节点容量,日志、emptyDir、镜像层和临时文件仍可能耗尽磁盘。修复要处理增长源、资源声明、节点容量和控制器恢复,并确认状态数据由持久化卷和备份保护。
常见误区
- 误区:只删除 Evicted Pod。改正:先定位节点压力和增长源,再确认控制器、调度和业务恢复。
- 误区:忽略 ephemeral-storage 和 inode。改正:同时查看磁盘块、inode、日志、emptyDir、镜像层和临时文件。