CentOS 上可用的 Kubernetes 存储方案概览
在 CentOS 环境中,Kubernetes 的持久化存储通常由以下几类构成:节点本地卷(如 emptyDir、hostPath、Local PV)、网络文件/块存储(如 NFS、GlusterFS、Ceph RBD/CephFS)、以及 CSI 插件(如 Longhorn、云厂商 CSI)。这些方案通过 PV/PVC 与 StorageClass 接入集群,实现静态供给与动态供给两种模式,满足从开发测试到生产级别的不同需求。
常见方案与适用场景
| 方案 | 类型 | 典型访问模式 | 主要优点 | 适用场景 | 关键要点 |
|---|---|---|---|---|---|
| emptyDir | 临时本地卷 | — | 配置简单、Pod 内多容器共享 | 缓存、临时处理 | 生命周期与 Pod 一致,Pod 删除数据即丢失 |
| hostPath | 节点本地目录/文件 | ReadWriteOnce | 直接复用节点存储 | 访问节点日志/工具 | 强耦合节点,Pod 漂移会丢失可达性 |
| Local PV | 节点本地磁盘 | ReadWriteOnce | 高性能、低延迟 | 数据库、有状态服务 | 需配合 nodeAffinity,做好污点与容忍 |
| NFS | 网络文件存储 | ReadWriteMany | 易部署、共享方便 | 内容管理、共享配置 | 需稳定 NFS 服务与网络,注意权限与防火墙 |
| GlusterFS | 分布式文件系统 | ReadWriteMany | 横向扩展、高可用 | 大文件、媒体/日志 | 常配合 Heketi 管理卷生命周期 |
| Ceph RBD | 分布式块存储 | ReadWriteOnce | 高性能、可快照克隆 | 数据库、虚拟机镜像 | 需 cephx 认证,支持 RBD 动态供给 |
| CephFS | 分布式文件系统 | ReadWriteMany | 多客户端并发读写 | 共享目录、多写场景 | 需 MDS 与数据/元数据池 |
| Longhorn(CSI) | 分布式块存储 | ReadWriteOnce | 轻量易运维、云原生 | 通用有状态应用 | 通过 CSI 动态供给与备份恢复 |
| 云厂商块/文件存储 CSI | 公有云盘/NAS | EBS/PD: RWO;EFS/FSx: RWX | 与云盘特性深度集成 | 云上生产负载 | 需对应云厂商 CSI 驱动 与权限配置 |
| 上述方案均可在 CentOS 上部署,并通过 PV/PVC/StorageClass 接入集群;其中 NFS、GlusterFS、Ceph 等常见网络存储在生产中应用广泛,CSI 为扩展第三方存储的标准接口。 |
快速上手示例
使用 NFS 提供共享存储(静态 PV/PVC)
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi 该方式适合多 Pod 共享同一目录(如内容站点、共享缓存)。
使用 GlusterFS + Heketi 提供动态文件存储
选型与最佳实践