现象
k8s无法正常调度, pod不是被驱逐,就是一直creating.
排查过程
- df -h 查看各节点, 发现根目录都被打满
- dmesg 出现写文件失败
- find / -type f -size +800M 找出大文件
- 最后定位到/var/log/messages 大小竟然几十个G, 都是k8s挂载存储不成功打入的信息, 具体为啥没挂载上还没搞清楚
临时解决方案
cat /dev/null > /var/log/message 将占用存储释放出来, 保证集群正常提供服务
systemctl restart kubelet
误删/var/log/messages 解决办法
一开始, 直接rm -rf /var/log/messages, 可能并不能真正释放空间, 可以通过 lsof|grep delete 查看. 当系统中某个文件被意外删除, 只要这个时候还有程序正在访问这个文件, 那么我们可以通过lsof 从/proc目录下恢复该文件内容.
恢复步骤:
- 找到rsyslogd进程id, lsof |grep /var/log/messages
- cp /proc/[pid]/fd/5 /var/log/messages
参考:
https://blog.csdn.net/ksn13/article/details/44062535
http://okhymok.lofter.com/post/1cce8fd7_668856a
网友评论