一次简单的pod Evicted排查

早上开发人员反馈一个测试集群经常有后端或者其他的程序无故挂掉。由于是开发自测环境 常年没人维护,上去一看发现很多pod都是evicted状态居然s达到了2000多个。。
不过也没大事儿,evicted都是驱逐 要么是标签驱逐 要么是资源驱逐。都很好解决

具体查看某个pod的日志可知.

1
kubectl describe pod  xxxxxx

日志显示的是节点的磁盘不足导致。加相关目录磁盘即可解决。
lvm扩容磁盘步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@node2 ~]# vgextend centos /dev/sdb
[root@node2 ~]# lvextend -L +190G /dev/centos/root
[root@node2 ~]# xfs_growfs /dev/centos/root

[root@node2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 48G 0 part
├─centos-root 253:0 0 230G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm
sdb 8:16 0 200G 0 disk
└─centos-root 253:0 0 230G 0 lvm /
sr0 11:0 1 1024M 0 rom

完事了。


现有的evictedpod可以用命令一起删除

1
kubectl get pods   | grep Evicted | awk '{print $1}' | xargs kubectl delete pod

默认由于资源的驱逐规则

1
2
3
4
memory.available<100Mi
nodefs.available<10%
nodefs.inodesFree<5%
imagefs.available<15%

官方文档

官网解读kubernetes配置资源不足处理


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!