news 2026/8/28 11:09:22

kubernetes之容器数据写满磁盘解决方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kubernetes之容器数据写满磁盘解决方法

磁盘写满引发的后果

容器数据磁盘写满造成的后果:

  • Pod 不能删除 (一直 Terminating)
  • Pod 不能被创建 (一直 ContainerCreating)

磁盘写满分两种情况:

  • 磁盘空间全部使用完

    # 系统盘被占满$df-Th文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/vda1 ext4 50G 50G 0G100% / /dev/vdb1 ext4 100G 10G 90G10% /data
  • 磁盘 Inode 全部使用完

    # 数据盘 Inode 被占满$df-i文件系统 Inode 已用(I)可用(I)已用(I)% 挂载点 /dev/vda1327680032768000100% /

判断磁盘写满方法

下面命令能快速的排查磁盘占满原因:

  • docker info | grep 'Docker Root Dir'# 检查 Docker 存储目录
  • docker system df# 查看容器磁盘使用情况
  • df -hT# 检查宿主机磁盘空间使用情况
  • df -i# 检查宿主机Inode使用情况

解决方法

PS:保证业务能正常使用为第一原则解决问题

  • 标记 Node 为不可调度

    $ kubectl drain${node-name}
  • 查找那个容器输出日志占用最大

    $fornamein$(dockerps-a|awk'{print $1}'|grep-vCONTAINER);dodockerinspect$name|grepLogPath|awk'{print $NF}'|tr-d'",'|xargsdu-sh;done5G /var/lib/docker/containers/d0e330944a074268a1f0998fd66ee73f584642352a2fe77304c1fa49b819893a/d0e330944a074268a1f0998fd66ee73f584642352a2fe77304c1fa49b819893a-json.log
  • 清空容器日志文件

    注意:如果需要重启 docker服务,首先腾出一点磁盘空间,不然重启 docker 会失败。不能直接使用rm删除日志文件,这样磁盘空间是不会释放的。不小心这样操作,那只能通过systemctl restart docker重启 Docker 服务释放磁盘空间,如果磁盘还是没有释放,可以通过lsof | grep -i delete查找已删除的文件进程,找到后直接kill掉。

    # 通过 echo 命令 清空日志文件$echo>/var/lib/docker/containers/d0e330944a074268a1f0998fd66ee73f584642352a2fe77304c1fa49b819893a/d0e330944a074268a1f0998fd66ee73f584642352a2fe77304c1fa49b819893a-json.log
  • 清理节点不用的images,释放磁盘空间

    # 查看 docker 镜像$dockerimages# 删除不用的镜像$dockerrmi${images_id}

上面步骤操作完后(上面清理日志方法,可能对于收集日志程序会丢失一些日志,但一般情况能接受),可以选择驱赶节点上所有pod(kubectl drain ${node-name})再优化Docker配置。也可以不驱赶节点上pod,在现基础上优化容器日志方法,优化配置后重启 Docker,这会导致节点上pod中断一会,如果前端反向代理具备重试机制一般不会影响业务正常访问。

优化完 Docker配置后,把节点加入到k8s集群中,正常服务。

# 取消不可调度的标记$ kubectl uncordon${node-name}

定位问题根本原因及解决思路

  • 日志输出量大,导致磁盘写满

    • 减少日志输出,调整应用日志输出级别
    • 增大磁盘空间
    • 日志输出到统一日志收集中心
  • 容器镜像占满磁盘

    • 配置k8s垃圾回收策略
    • 节点运行 images 定时清理脚本
  • 可写层量大导致磁盘写满: 优化程序逻辑,不写文件到容器内或控制写入文件的大小与数量

具体优化方法

  • 配置 Docker日志轮转,数据目录不要存放在系统盘

    $vim/etc/docker/daemon.json{"registry-mirrors":["https://4xr1qpsp.mirror.aliyuncs.com"],"graph":"/data/docker","log-opts":{"max-size":"500m","max-file":"3"}}

    配置解释:

    • registry-mirrors 镜像加速配置
    • graph 定义数据存储目录
    • max-size=500m 意味着一个容器日志大小上限是500M
    • max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json

    配置完,重启 docker才能生效,日志轮转只对以后新创建的容器有效。

  • 清理 docker images

    定时清理脚本

    $vimdocker_delete_image.sh#!/usr/bin/env bashforimages_idin`dockerimages|grep'harbor.example.com'|awk'{print $3}'`dodockerrmi$images_iddone# 清理 <none> imagesforimages_id_1in`dockerimages|awk'$2 ~ "<none>"{print $3}'`dodockerrmi$images_id_1done

    kubernetes 垃圾回收配置,这里不在细讲,具体参考官方配置文档 https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/

🔥运维干货分享

  • 软考高级系统架构设计师备考学习资料
  • 软考中级数据库系统工程师学习资料
  • 软考高级网络规划设计师备考学习资料
  • 软考高级系统规划与管理师学习资料
  • 软考中级系统集成项目管理师学习资料
  • Kubernetes CKA认证学习资料分享
  • AI大模型学习资料合集
  • PuTTY中文版安装包
  • MobaXterm中文版安装包
  • pinginfoview网络诊断工具中文版
  • Xshell、Xsftp、Xmanager中文版安装包
  • 毕业设计高质量毕业答辩 PPT 模板分享
  • IT行业工程师面试简历模板分享
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 1:22:31

Termshark实战指南:5个技巧让你在3分钟内掌握终端网络分析

Termshark实战指南&#xff1a;5个技巧让你在3分钟内掌握终端网络分析 【免费下载链接】termshark A terminal UI for tshark, inspired by Wireshark 项目地址: https://gitcode.com/gh_mirrors/te/termshark 还在为服务器上庞大的pcap文件而烦恼吗&#xff1f;每次都要…

作者头像 李华
网站建设 2026/8/28 5:29:43

2025小模型革命:Jamba Reasoning 3B如何用30亿参数重构AI效率范式

导语 【免费下载链接】AI21-Jamba-Reasoning-3B 项目地址: https://ai.gitcode.com/hf_mirrors/ai21labs/AI21-Jamba-Reasoning-3B AI21 Labs推出的Jamba Reasoning 3B以30亿参数实现"速度-智能-成本"三角突破&#xff0c;混合架构设计使边缘设备推理成本降低…

作者头像 李华
网站建设 2026/8/28 5:14:22

UniHacker:Unity授权解决方案

UniHacker&#xff1a;Unity授权解决方案 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker 还在为Unity授权费用而烦恼吗&#xff1f;UniHacker作为一款强大的…

作者头像 李华
网站建设 2026/8/29 0:35:15

万亿级AI大模型开源新纪元:Kimi-K2-Base如何重构技术边界?

在人工智能技术快速迭代的当下&#xff0c;开源社区迎来重量级突破。Moonshot AI正式发布万亿参数规模的Kimi-K2-Base基础模型&#xff0c;这一混合专家架构的预训练模型以1万亿总参数和320亿激活参数的配置&#xff0c;为全球开发者和研究者提供了全新的技术基座。 【免费下载…

作者头像 李华
网站建设 2026/8/26 17:10:50

效率革命:Wan2.2-Animate-14B如何让动画制作成本降70%?

效率革命&#xff1a;Wan2.2-Animate-14B如何让动画制作成本降70%&#xff1f; 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 导语 阿里巴巴通义实验室于2025年9月19日正式开源Wan2.2-Animate-14B模型…

作者头像 李华