讲师中心 微信公众号
AI工具推荐 视频效率加速

K8s怎么排查NFS网络抖动引发的Pod大量只读挂起

冬敏小哥_6120

冬敏小哥_6120

发布时间:2026-11-02 06:18:20

|

279人浏览过

|

来源于php中文网

原创

NFS挂载卡死时进程呈D状态,需用umount -l强制卸载并配置hard,intr,timeo=600,retrans=3,noac,actimeo=0等参数防死锁。

k8s怎么排查nfs网络抖动引发的pod大量只读挂起

当NFS服务器响应延迟飙升或出现间歇性中断时,挂载了NFS卷的Pod会卡在ls /mnt/nfs、cat config.yaml等任意系统调用上,表现为大量进程状态为D(uninterruptible sleep),kubectl exec进容器后连ps aux都卡住,且这种挂起具备传染性——一个Pod卡死会拖慢整个节点上的I/O调度队列。

确认NFS挂载是否处于D状态卡死

在宿主机上执行ps aux | grep nfs,若看到大量形如nfsd 0.0 0.0 0 - D或rpciod 0.0 0.0 0 - D的进程,说明内核NFS客户端已陷入不可中断等待;此时ls /var/lib/kubelet/pods/*/volumes/kubernetes.io~nfs/也会无响应——这一步必须在节点上做,容器内ps早已失效。

运行cat /proc/mounts | grep nfs,检查挂载项中是否含hard,intr,soft,timeo=600,retrans=3等参数;若只有hard而无timeo和retrans,则NFS一旦断连将永久阻塞,【这是只读挂起最直接的配置诱因】。

定位抖动源头:区分是服务端还是网络层

方法一:用tcpdump抓包比对RTT波动

在Pod所在节点执行:tcpdump -i any -w nfs.pcap port 2049 and host <nfs-server-ip></nfs-server-ip>,持续30秒后Ctrl+C停止;用Wireshark打开pcap,过滤nfs.opcode == 17(READ操作),观察Response Time列——若出现>500ms的尖峰且密集成簇,说明服务端处理慢;若RTT正常但大量重传(Retransmission标记),则是中间网络丢包或MTU不匹配。

方法二:绕过K8s直接复现

在该节点新建临时挂载:mkdir /tmp/testnfs && mount -t nfs4 -o hard,intr,timeo=600,retrans=3 <nfs-server-ip>:/export/path /tmp/testnfs</nfs-server-ip>;随后在/tmp/testnfs下执行dd if=/dev/zero of=testfile bs=1M count=100 oflag=sync。若同样卡住,则问题与K8s无关,纯属NFS服务或链路问题。

紧急止血:解挂所有NFS并防止自动重试

第一步:强制解除卡死挂载

执行umount -f -l /var/lib/kubelet/pods/*/volumes/kubernetes.io~nfs/*,【-l(lazy)参数必不可少,-f单独使用在D状态时无效】。

第二步:阻止kubelet自动重挂

编辑/var/lib/kubelet/config.yaml,将volumePluginDir路径临时注释掉,然后重启kubelet:systemctl restart kubelet。这能立即终止所有NFS volume插件的后台轮询,避免新Pod重复踩坑。

第三步:清理残留挂载点

uk8s
uk8s

创建 UK8S Kubernetes 集群。通过 ucloud-cli 调用 API,自动获取 VPC/子网/版本/镜像,生成配置并创建集群。

下载

执行find /var/lib/kubelet/pods -name "nfs" -type d -exec umount -l {} \;,再rmdir所有空目录。此时mount | grep nfs应无输出。

修复挂载策略:让NFS在抖动时主动降级而非死锁

修改Pod的Volume定义,在volumeMounts中添加mountOptions:

mountOptions:

- hard

- intr

- timeo=600

- retrans=3

- noac

- actimeo=0

其中noac禁用属性缓存,actimeo=0强制每次访问都校验服务端元数据——看似牺牲性能,实则避免因本地缓存过期导致的误判式挂起;timeo=600单位是0.1秒,即60秒超时,配合retrans=3意味着最多等待3分钟,超时后返回EIO错误而非无限等待。

若NFS服务端支持NFSv4.1+,务必在spec.volumes.nfs中指定server字段为IPv4地址而非主机名,规避DNS解析抖动引发的首次挂载失败连锁反应。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

0

2026.11.02

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

0

2026.11.02

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

100

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

80

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

240

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

160

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

140

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn