k8s服务故障,出现大量的Evicted状态的pod
kubectl get pod -A 发现出现Evicted 状态的pod高达8000多个。
一、随机查看一个处于Evicted状态pod的描述:
kubectl describe pod -n monitor csp-monitor-api-5d4c5dbb8f-zpw5w
Status: Failed
Reason: Rvicted
Message: Pod The node had condition: [Diskpressure].
二、查看磁盘果然发现满了,首先清理一波磁盘空间
[root@csp1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 12G 0 12G 0% /dev
tmpfs 12G 0 12G 0% /dev/shm
tmpfs 12G 1.2G 11G 10% /run
tmpfs 12G 0 12G 0% /sys/fs/cgroup
/dev/vda3 71G 71G 0 100% /
/dev/vdb1 50G 34G 17G 67% /var/lib/docker
/dev/vda1 1014M 240M 775M 24% /boot
三、然后批量删除Evicted状态的pod:
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) | "kubectl delete pods \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n 1 bash -c
出现错误:
bash: jq: command not found...
yum install -y jq ,然后在执行批量删除
最后查看pod状态都为正常