pod正常运行一段时间发现pod被驱逐了(启动了新的pod),原来的pod状态是error,有如下异常错误The node was low on resource: ephemeral-storage. Container m2m was using 201832260Ki, which exceeds its request of 0。出现的原因的node磁盘资源不足,导致pod被驱逐了。

pod被驱逐有好几种情况,上面是我遇到的。接下来罗列一下所有情况

节点(node)压力驱逐_内存

​memory.available​ 的值来自 cgroupfs,而不是像 ​free -m​ 这样的工具。 这很重要,因为 ​free -m​ 在容器中不起作用,如果用户使用 ​节点可分配资源​ 这一功能特性,资源不足的判定是基于 cgroup 层次结构中的用户 Pod 所处的局部及 cgroup 根节点作出的。

​kubelet 支持以下文件系统分区:

  1. ​nodefs​​:节点的主要文件系统,用于本地磁盘卷、emptyDir、日志存储等。 例如,​​nodefs​​ 包含 ​​/var/lib/kubelet/​​。
  2. ​imagefs​​:可选文件系统,供容器运行时存储容器镜像和容器可写层。

该配置存放路径以及示例:

[root@deng ~]# cat /etc/kubernetes/kubelet-customized-args.conf

KUBELET_CUSTOMIZED_ARGS=" --eviction-hard=imagefs.available<15%,memory.available<300Mi,nodefs.available<10%,nodefs.inodesFree<5% --system-reserved=cpu=50m,memory=1779Mi --kube-reserved=cpu=50m,memory=1779Mi --kube-reserved=pid=1000 --system-reserved=pid=1000 "

参阅文档:​​节点压力驱逐 | Kubernetes​