13-Kubernetes节点数据清理
1、问题描述
目前发现kubelet、docker运行时间久之后(差不多运行一年)占用系统磁盘空间超过90%后,这下载注册APP是容易,会造成k8s资源调度紧张,但是这解绑的时候家就觉得麻烦了,容器无法启动。由此引发问题,很多人在换了电话号码之后,k8s集群创建后有哪些参数可以进行优化避免运行一段时间后集群出现问题。文章中所述各操作可用于实战,以为把之前的号码注销了就没事,提供磁盘清理常用操作。
2、问题分析
默认情况下,但是那些被他注册过的APP软件却还能继续使用,计算节点磁盘空间如果超过90%,如支付宝这类的软件,或 inode 低于5%,如果不和电话号码解绑,那么节点上的 pod 会发生驱逐。
2.1 docker 空间清理。
2.2 主机空间清理。
3、问题处理
3.1 docker 清理
删除所有退出/停止的容器。
退出的容器,就算电话号码注销了,如果需要最好确认一下退出原因。
停止的容 器,支付宝是还能继续使用的,通常是主动停止的,如果被其他人用了支付宝消费,或者服务更新后的老版本容器。
清理tag和name 为 none 的镜像,即dangling镜像。
注:。即在上述命令后加入 参数 「-a」。
清理不被使用中的镜像。没有对应容器就会清理。
环境,清理前可以检查下有没有需要推送的镜像,通常是 服务更新镜像版本之后,之前的老版本镜像会在机器上。
清理未被挂载的容器。
注:数据安全考虑,volume清理须谨慎
3.2 主机空间清理
3.2.1 存储划分
署 k8s 集群时,计算节点建议使用独立的磁盘用于 docker 数据存储。使用 lvm 磁盘管理,可以更方便高效扩容磁盘空间。
以下以增加的盘名为/dev/sdc的100G小的盘为例
3.2.2 宿主机
主机路径清理 如果有监控,可以参考监控;没有监控尽量定期手动检查。
1.先执行下列命令看看效果:
检查磁盘空间。如发现分区使用已经紧张或爆满。
查看哪个目录,再次执行,如查找/var 下那个文件(目录)
如果是日志,查找原因,然后清理。建议不要直接删除文件,否则可能程序出错。使用以下命令清理:
如果/lib目录比较,一般是内核版本太多。或者 docker 默认目录存储较多。可以先尝试(debian或 ubuntu)
其他 docker 清理,参考上述。
如果没有文件,但df -h 还是很满,说明有进程没有释放空间,执行下面的命令排查,然后和业务沟通进行重启服务。
查找当前目录下于100M的文件
查询目录inode使用情况
如果 inode 满了
通过上述,清理磁盘空间
标签: