配置与存储54 条

NFS 卷挂载

直接在 Pod 里声明 nfs 卷(server + path),多节点共享读写;所有节点需要能访问 NFS 服务并具备挂载工具。

Kubernetes 速查云更新于 2026-10-13

共享目录怎么挂

共享文件系统卷让多个 Pod 同时读写同一份目录,适合多副本共享配置或数据文件的场景。写法是直接声明服务端地址与导出路径,由节点负责完成挂载。所有可能运行该 Pod 的节点都必须能访问服务端并具备挂载工具,否则容器会卡在等待挂载的状态。

基本信息

适用平台Kubernetes 1.20+,节点需安装共享文件系统客户端工具
访问模式支持多节点同时读写
配置内容服务端地址、导出路径、是否只读
前置条件节点到服务端网络可达且导出策略允许
生产替代专用存储驱动,可动态供卷与扩容

典型使用场景

  • 多个副本共享同一份静态资源或上传目录
  • 自建环境没有分布式存储,用现成文件服务器承接共享数据
  • 迁移期兼容老应用的共享目录访问方式
  • 需要多节点同时读写的日志或中间文件目录
  • 临时验证存储方案,先直挂共享目录

Pod 内共享卷

Pod 内共享卷
volumes:
  - name: share
    nfs:
      server: 10.0.8.11     # 服务端地址
      path: /export/app     # 导出路径
      readOnly: false       # 需要写入时保持可写
containers:
  - name: app
    image: registry.example.com/app:1.26.0
    volumeMounts:
      - name: share
        mountPath: /data/share

节点侧检查

节点侧检查
showmount -e 10.0.8.11                    # 查看导出列表是否包含目标路径
sudo mount -t nfs 10.0.8.11:/export/app /mnt/check   # 手工挂载验证
mount | grep nfs                           # 确认已挂载
# 发行版差异:RHEL 系装 nfs-utils,Debian 系装 nfs-common

字段与现象读法

项目含义异常表现
服务端地址文件服务器地址地址错误时容器卡在等待挂载
导出路径服务端导出的目录未导出时挂载被拒绝
只读开关是否允许写入需要写入时设为只读会导致业务报错
节点工具挂载所需客户端缺失时报挂载命令不存在
生产集群更常见的是使用专用存储驱动:可以按声明动态创建卷、支持扩容与快照。直接挂载共享目录适合共享固定目录的小规模场景。
共享文件服务通常是单点:服务端故障或网络中断时,所有挂载它的 Pod 会一起卡住。排查应先确认服务端与网络,再怀疑业务。

易错点

  • 节点缺少挂载工具:Pod 一直处于等待状态,事件里提示挂载失败
  • 导出策略未包含目标网段:节点可连通但挂载被拒绝,容易被误判为网络故障
  • 共享文件服务单点故障:所有依赖它的 Pod 同时卡住,影响面远超单个业务
  • 多个副本同时写同一文件:没有并发控制时数据互相覆盖,且难以复现

数据来源与参考

  • Kubernetes 官方文档 · Volumes(nfs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌