Skip to content

Kubernetes-持久化存储之NFS

NFS (Network File System) 作为 Kubernetes 中常用的持久化存储解决方案,因其简单易用、成本低廉的特点,在测试环境和部分生产环境中得到广泛应用。本文将全面解析 Kubernetes 中 NFS 持久化存储的实现原理、配置方法、生产实践以及高级动态供给方案。

NFS 存储基础

NFS 是一种分布式文件系统协议,允许客户端计算机像访问本地存储一样访问网络上的文件。在 Kubernetes 环境中,NFS 通过 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 机制与集群集成,为容器化应用提供持久化存储能力。

核心优势

  • 多Pod共享:支持 ReadWriteMany 访问模式,多个Pod可同时读写同一存储卷
  • 简单部署:相比 Ceph、GlusterFS 等分布式存储,NFS 部署和维护成本低
  • 兼容性好:与大多数应用兼容,适合共享配置文件、静态资源等场景

工作原理

  1. 管理员在 Kubernetes 集群外部部署 NFS 服务器并配置共享目录
  2. 在 Kubernetes 中创建 PV 资源,关联 NFS 服务器和共享路径
  3. 用户通过 PVC 申请存储资源,Kubernetes 将 PVC 绑定到合适的 PV
  4. Pod 通过 volumeMounts 将 PVC 挂载到容器内部指定路径

基本架构组件

  • NFS Server:提供共享存储服务的服务器
  • PersistentVolume (PV):集群中的存储资源,对应 NFS 共享目录
  • PersistentVolumeClaim (PVC):用户对存储资源的请求
  • StorageClass:动态供给时定义存储类特性