清理k8s集群内docker容器日志
1.清理全部【停止状态的容器,未使用的镜像,未使用的网络】资源
docker system prune
2.清理容器内日志
2.1.过滤占用存储GB的资源
docker system df -v |grep GB
2.2进入容器清理日志资源
日志文件目录常见:
/usr/local/tomcat/logs/
/var/log/nginx/
/mcloud/xxxx/storage/logs
/mcloud/xxxx/runtime
docer exec -it 容器id bash
#统计根目录除去proc和挂载目录webtv,nas后剩余目录占用存储大小
du -sh /* --exclude='*webtv*' --exclude='*nas*' --exclude='*proc*'
#统计上述得到的几个G的存储下各目录的占用空间 如/usr
du -sh /usr/* |grep G
du -sh /usr/local/* |grep G
du -sh /usr/local/tomcat/logs/* |grep G 得到catalina.out占用存储大
#重写此文件
cd /usr/local/tomcat/logs/
echo '' >catalina.out
#如/var/log/nginx/下的访问日志占用存储比较大
du -sh /var/log/nginx/*
#查询/var/log/nginx/access/访问日志时间在30天前的
find /var/log/nginx/access/ -mtime +30 -type f -exec ls -lh {} \;
#删除30天前的日志文件
find /var/log/nginx/access/ -mtime +30 -type f -exec rm {} \;
特殊容器清理存储
web
命名空间下的thumbor
和 thumbor-crms
是缓存的静态资源,删除pod重启空间就释放了
清理主机上容器挂载的日志文件
主机上常用日志目录
/datalog
/log
/logs
#统计除去webtv,nas,var,proc目录下其他目录存储占用
du -sh /* --exclude='*webtv*' --exclude='*nas*' --exclude='*proc*' --exclude='*var*'
查找/datalog目录下文件在15天前的
find /datalog/ -mtime +15 -type f -exec ls {} \;
删除/datalog目录下文件在15天前的
find /datalog/ -mtime +15 -type f -exec rm {} \;
使用du和df查看磁盘容量不一致
df -h查看磁盘使用了80G,du -sh / 统计共占用20G
原因1:du -sh 不统计隐藏文件夹,可以用du -ah替代
原因2:新挂盘挂载点中有数据,磁盘挂载后导致数据看不到
原因3:被删除文件,有进程还在使用这个文件的句柄
解决:
lsof |grep deleted
确认业务无用后,kill对应进程id可释放
如:上图的业务是nginx进程,使用nginx -s reload 可重启子进程