容器卡在terminate状态无法删除

1. pod卡在terminate状态无法删除。一般是lxcfx 卡住 或者 logcounter组件进程读容器数据盘分区导致的

2.  验证一下我们的猜测

cat /sys/fs/fuse/connections/*/waiting 看有不为0且数字连续不变的值,或有D状态的进程,堆栈卡在fuse_waited,  若有则是lxcfs卡住导致的。重启一下lxcfs服务即可恢复

看kubelet日志,journalctl -u kubelet -r  

 

 

若出现这种日志,则说明是logcounter组件进程还在读写容器数据盘分区导致回收容器时无法删除该分区,fuser查看是什么进程占用了分区


[root@ ~]# fuser -m -v /home/data/kubelet/pods/f27f2acc-6466-11eb-bf87-8030e04127a8/volumes/kubernetes.io~lvm/externalvolume
USER PID ACCESS COMMAND
/home/data/kubelet/pods/f27f2acc-6466-11eb-bf87-8030e04127a8/volumes/kubernetes.io~lvm/externalvolume:
root kernel mount /home/data/kubelet/pods/f27f2acc-6466-11eb-bf87-8030e04127a8/volumes/kubernetes.io~lvm/externalvolume
root 548083 f.... counter

看这个counter

[root@ ~]# ps -elf | grep 548083
4 S root 548083 548080 5 80 0 - 1437502 futex_ Mar31 pts/0 1-01:01:34 counter -p /etc/logengine/ -f config -t json

 

3.,logengine是日志服务loghouse的组件,以daemonset形式部署在所有节点上,kill后会自动拉起,所以直接kill掉就可以

kill -9 548083 后,容器就能正常删除(还删不掉就重启 一下kubelet)

 

posted @ 2021-06-13 14:06  心恩惠动  阅读(270)  评论(0编辑  收藏  举报