共享目录怎么挂
共享文件系统卷让多个 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 会一起卡住。排查应先确认服务端与网络,再怀疑业务。