kubernetes 清理孤儿POD--转发
孤儿pod的产生
节点OOM以后或者节点异常崩溃的情况下,pod未能被正常的清理而导致的孤儿进程。
提示如下
Orphaned pod found - but volume paths are still present on disk
进入k8s的pod目录
cd /var/lib/kubelet/pods/
解决问题
过滤日志中的孤儿pod,删除pod。
#!/bin/bash
num=$(grep "errors similar to this. Turn up verbosity to see them." /var/log/messages |tail -1 | awk '{print $12}' |sed 's/"//g')
echo $num
while [ $num ]
do
[ -d "/var/lib/kubelet/pods/${num}" ] && rm -rf /var/lib/kubelet/pods/${num}
sleep 2s
num=$(grep "errors similar to this. Turn up verbosity to see them." /var/log/messages |tail -1 | awk '{print $12}' |sed 's/"//g')
[ -d "/var/lib/kubelet/pods/${num}" ] || num=
echo "$num remaining"
done
但是这个方法有一定的危险性
,还不确认是否有数据丢失
的风险,如果可以确认,再执行。
如果已经挂载了PVC等相关存储,先执行umount再执行删除。
再去查看日志,就会发现syslog不会再刷类似的日志了。