节点磁盘利用率高的问题排查
问题现象
节点磁盘利用率高,执行df -h命令,输出中存在使用率超过90%的场景:
问题根因
以下原因均可能导致节点磁盘利用率偏高:
- 场景一:磁盘上存在大文件。
- 场景二:由于容器挂载hostPath或者emptyDir的,大量容器数据写入主机导致。
- 场景三:容器自身log日志打印,日志未设置保存天数,导致日志过大。
解决方法
- 场景一:排查是否存在大文件
这个命令从根目录/开始查找所有大小超过 1GB 的文件(包括隐藏文件)。
示例如下:
- 场景二:查询容器挂载路径
kubectl describe pods | grep -Pz Volumes
输出示例如下:
如果容器挂载hostPath或者emptyDir,则需进一步排查挂载路径文件夹里的文件大小。
- 场景三:查询日志存储配置
使用建议
- 清理无用的文件。
- 对于需要写入大量数据的Pod,建议使用云存储。详情请参见存储概述。
- docker、containerd的日志文件配置maxSize和maxFile。
更新配置需要重启docker服务或kubelet服务,请谨慎操作。
- 定期清理节点上没有使用的镜像。
- 使用containerd容器引擎的节点:
- 查看节点上的本地镜像。
crictl images -v
- 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。
crictl rmi {镜像ID}
- 查看节点上的本地镜像。
- 使用docker容器引擎的节点:
- 查看节点上的本地镜像。
docker images
- 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。
docker rmi {镜像ID}
- 查看节点上的本地镜像。
- 使用containerd容器引擎的节点: