Kubernetes 节点磁盘治理实战:overlay2 爆盘、容器占盘与 Registry 清理
适用场景K8s GPU 集群节点、Docker 容器运行时问题特征overlay2 存储层暴增、开发容器吃满磁盘、/var/lib/docker 所在分区 100%核心手段du 精准定位 软链迁移 在线扩容 journald 限日志 Registry API 删镜像 目录背景与问题全景overlay2 爆盘排查长驻开发容器占盘定位与清理磁盘目录迁移在线扩容日志治理私有 Registry 镜像清理踩坑清单小结一、背景与问题全景在 AI/GPU 集群的日常运维中磁盘问题比 CPU/内存问题更隐蔽、更致命——服务不会立刻崩溃但会在某个深夜悄悄把/var/lib/docker撑到 100%然后 kubelet 开始驱逐 Pod、容器无法启动、节点直接变为 NotReady。本次治理覆盖了生产环境中最典型的五类磁盘问题overlay2 单容器层占 3.1T.vscode-server的 pylance 扩展缓存爆炸长驻开发容器单实例吃 130G/var/lib/docker和/var/lib/kubelet挂错分区云盘需要在线扩容systemd journal 日志无限制增长私有 registry 镜像堆积需要 API 级清理二、overlay2 爆盘排查精准定位元凶2.1 快速定位哪个目录最大先看整体磁盘使用df-h进入 overlay2 目录逐层排查cd/var/lib/docker/overlay2du-h-x--max-depth1|sort-hr|head-202.2 找到具体容器和文件本次排查中发现单个容器层占3.1T / 3.3T罪魁祸首是.vscode-server下的Pylance 扩展缓存根据 overlay2 的 long ID 反查容器dockerps-a--no-trunc|grepoverlay2-id-prefix或者直接进容器层看cd/var/lib/docker/overlay2/id/diffdu-h-x--max-depth2|sort-hr|head-10定位到/root/.vscode-server/extensions/ms-python.vscode-pylance-*/ 经验AI 开发场景中Pylance 索引大型 Python 项目时会疯狂写缓存单个扩展目录轻松突破 TB 级。解决方案是给.vscode-server配置settings.json排除目录或在镜像构建时预装 Pylance 并限制其缓存路径。。三、长驻开发容器占盘定位与清理算法同学的长驻开发容器Jupyter / SSH 开发容器经常在不知不觉中吃掉上百 GB因为数据集、conda 环境、pip cache 全都写入容器可写层。。3.1 找出占盘大户实时查看容器磁盘占用。用dockerstats --no-stream--formattable {{.Name}}\t{{.Size}}\t{{.MemUsage}}按容器查具体目录大小。小dockerinspectcontainer-id|grep-imerged 输出类似/var/lib/docker/overlay2/id/mergeddu-sh/var/lib/docker/overlay2/id/merged本次查出的典型案例本次排查出的典型案例容器名占盘大小原因dev-container-7f3a134 GB数据集直接下载到容器层notebook-8821131 GBConda 环境 pip cache 未清理3.2 清理策略方案 1进入容器内部清理不停服dockerexeccontainer-idbash-cconda clean -a -y pip cache purge rm -rf ~/.cache方案 2直接删容器确认数据已持久化到 PVC 后dockerrm-fcontainer-id方案 3限制容器可写层大小docker run 时dockerrun --storage-optsize50G...四、磁盘目录迁移软链方案与批量执行当/var/lib/docker所在分区空间不足而数据盘有空闲时最快捷的方案是停服务 → 迁移数据 → 建软链。4.1 单节点迁移停 Docker 和 kubelettsystemctl stopdockersystemctl stop kubelet迁移数据mv/var/lib/docker /home/data/dockermv/var/lib/kubelet /home/data/kubelet建软链ln-s/home/data/docker /var/lib/dockerln-s/home/data/kubelet /var/lib/kubelet启动服务systemctl startdockersystemctl start kubelet4.2 Ansible 批量迁移移批量移动适用于多节点统一调整。ansible gpu-nodes-mshell-amv /data1/data/docker /data批量创建软链。链ansible gpu-nodes-mfile-asrc/data/docker dest/var/lib/docker statelink forceyes⚠️ 迁移前务必确认目标分区有足够空间mv跨文件系统实际是 copydelete大目录可能耗时很久。五、在线扩容growpart resize2fs云环境新增云盘容量后不需要重启直接在线扩容分区和文件系统。查看磁盘和分区lsblkdf-hT扩展分区以 /dev/vdb1 为例growpart /dev/vdb1扩展文件系统ext4 resize2fs /dev/vdb1 xfs xfs_growfs /data步骤命令说明查看lsblk/df -hT确认分区和文件系统类型扩分区growpart /dev/vdb 1将分区 1 扩展到整个磁盘扩文件系统resize2fs/xfs_growfs让文件系统识别新空间六、日志治理journald docker log6.1 systemd journal 日志清理临时清理只保留最近 3 天或 500Mjournalctl --vacuum-time3d journalctl --vacuum-size500M永久限制修改配置文件cat/etc/systemd/journald.confEOF SystemMaxUse1G SystemKeepFree2G MaxRetentionSec1week EOF重启 journald 生效systemctl restart systemd-journald6.2 Docker 容器日志限制在/etc/docker/daemon.json中配置{log-driver:json-file,log-opts:{max-size:100m,max-file:3}}systemctl reloaddocker七、私有 Registry 镜像清理用 API 删远程镜像私有 Registrymaster0:5000/images/*镜像堆积时不能只删除本地 tag必须从 Registry 存储中真正删除。。7.1 开启 Registry 删除功能确保 Registry 启动时设置了环境变量REGISTRY_STORAGE_DELETE_ENABLEDtrue7.2 通过 API 删除镜像获取镜像的 config digestTOKEN$(curl-s-uuser:pass\https://master0:10000/v2/eflops/image/manifests/tag\-HAccept: application/vnd.docker.distribution.manifest.v2json\|python-cimport sys,json;print(json.load(sys.stdin)[config][digest]))删除 manifest这才是真正删镜像curl-XDELETE\-uuser:pass\https://master0:10000/v2/eflops/image/manifests/$TOKEN触发 Registry 垃圾回收收dockerexecregistry-containerregistry garbage-collect /etc/docker/registry/config.yml⚠️ 注意直接 DELETE manifest 是不可逆操作删除前确认没有人在用这个版本。生产环境建议先用skopeo list-tags列出所有 tag再逐个确认。八、踩坑清单现象排查点overlay2 突然 100%查.vscode-server/pylance/conda/pip cachegrowpart 报 “unexpected output”分区表类型不对GPT vs MBR或分区正在被使用journald 日志删了又满只 vacuum 没改journald.conf重启后又涨回来开发容器删了盘没释放overlay2 的deleted文件仍被进程占用用lsof | grep deleted排查九、小结磁盘治理的核心经验定位要快du -h -x --max-depth1是排查 overlay2 爆盘的最快手段。段2.迁移要稳停服务 → mv → 软链 → 验启动顺序不能乱。乱3.限制要早journald 的SystemMaxUse和 Docker 的log-opts部署时就该配好。好4.清理要彻底Registry 镜像不能只删 tag要用 API 删 manifest garbage-collect。t有问题欢迎在评论区贴出报错信息我看到后会回复。。

相关新闻

Python函数基础内容

Python函数基础内容

Python函数基础自学笔记TOC 什么是函数 函数本质,是将一套完整的业务逻辑打包封装。当同样的逻辑需要反复运行时,我们不用反复粘贴代码,直接调用这个封装好的函数就可以。 封装函数带来的优势: (1).代码复用:同一套逻辑…

2026/10/12 2:33:26 阅读更多 →
一图文看懂 RAG 原理!从基础流程、评估指标到 GraphRAG/Agentic RAG 进阶玩法

一图文看懂 RAG 原理!从基础流程、评估指标到 GraphRAG/Agentic RAG 进阶玩法

目录大模型原生缺陷:为什么需要 RAG?RAG 核心五步流水线拆解向量数据库选型对照表(Demo / 生产 / 分布式场景)RAG 怎么评估好坏?不能靠主观感受企业落地最容易踩的 3 个大坑RAG 进阶玩法:Query 改写、Graph…

2026/10/12 2:33:26 阅读更多 →
中文信息处理视域下的姓名生僻字解析:从Unicode扩展区编码、生僻字库到政务系统互通实务

中文信息处理视域下的姓名生僻字解析:从Unicode扩展区编码、生僻字库到政务系统互通实务

在现代政务服务、金融征信、民航铁路票务以及各类互联网身份认证系统的工程落地中,生僻字与冷僻姓名字符的数字化处理长期以来都是兼具文化传承与计算机技术挑战的复合型课题。随着国家标准GB 18030—2022《信息技术 中文编码字符集》的正式实施,全面支持…

2026/10/12 2:33:26 阅读更多 →

最新新闻

GBase 8a异构迁移实战:Oracle/MySQL到GBase全链路可控迁移指南

GBase 8a异构迁移实战:Oracle/MySQL到GBase全链路可控迁移指南

简介:本资源是GBase数据库官方迁移工具GBaseMigrationToolkit 8.5.23.3的Windows 64位完整安装包,面向DBA、数据工程师及企业级数据库迁移实施人员,专用于解决Oracle/MySQL/SQL Server等异构数据库向GBase列式数据库迁移,或跨GBas…

2026/10/12 3:27:02 阅读更多 →
REA 实战指南:让 AI Agent 替你逆向二进制、Electron 应用与 .NET 程序

REA 实战指南:让 AI Agent 替你逆向二进制、Electron 应用与 .NET 程序

REA 实战指南:让 AI Agent 替你逆向二进制、Electron 应用与 .NET 程序 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea REA&#xff08…

2026/10/12 3:27:02 阅读更多 →
智能投放系统实操攻略:用自动化规则帮中小团队守住预算红线

智能投放系统实操攻略:用自动化规则帮中小团队守住预算红线

做投放这些年,见过太多中小企业把钱白白烧在广告后台里。预算明明不算多,团队也没专职优化师,结果大部分精力耗在盯数据、调出价、导报表这些重复劳动上,真正该花心思的素材和策略反而没人管。后来接触了智能投放系统,…

2026/10/12 3:27:02 阅读更多 →
Ubuntu搭建PPPoE Server与协议报文深度分析

Ubuntu搭建PPPoE Server与协议报文深度分析

1. 项目概述:为什么在Ubuntu上亲手搭一个PPPoE服务器,比直接用现成设备更有价值?PPPoE——这个缩写词在宽带接入领域几乎等同于“拨号上网”的代名词。但多数人只见过客户端那一端:Windows里点几下“新建连接”,输入账…

2026/10/12 3:27:02 阅读更多 →
python-docx 形状 API 详解:InlineShapes 集合与 InlineShape 内联形状的访问与尺寸操作

python-docx 形状 API 详解:InlineShapes 集合与 InlineShape 内联形状的访问与尺寸操作

后端 【免费下载链接】python-docx Create and modify Word documents with Python 项目地址: https://gitcode.com/gh_mirrors/py/python-docx 点击查看 免费下载 导读 在 python-docx 中,图片、图表等图形对象以“形状(shape)…

2026/10/12 3:27:02 阅读更多 →
深度学习2-卷积神经网络

深度学习2-卷积神经网络

一、卷积神经网络概念卷积卷积是一种数学运算,在深度学习(尤其是计算机视觉)中,特指二维互相关运算(通常简称为卷积)。其基本操作是:用一个小的卷积核(filter/kernel)在输…

2026/10/12 3:26:01 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →