Kubernetes 存储学习全景指南
Kubernetes 的存储是支撑有状态应用的核心,理解其原理与实践至关重要。下面是一份系统化的学习路线图,从基础概念到高级应用,辅以实践建议与最佳实践。

第一阶段:核心概念筑基 (Fundamentals)
目标:理解 Kubernetes 抽象出来的存储模型和核心 API 对象。
1. 容器存储的本质 (The Need for Storage)
问题:容器本身是瞬态的,其文件系统随容器生命周期而存在,重启或重建会丢失数据。
需求:需要将外部存储“注入”容器,保证数据持久化。
2. Kubernetes 存储核心对象
Volume (卷)
最基础的抽象,生命周期与 Pod 绑定。类型:emptyDir、hostPath、configMap、secret、nfs 等。
PersistentVolume (PV)
集群级别资源,代表存储的“物理实体”。配置参数:容量、访问模式、回收策略、存储类、后端类型。
PersistentVolumeClaim (PVC)
用户对存储的“申请”。通过标签选择器、存储类、容量等与 PV 匹配。
StorageClass (SC)
存储的“分类蓝图”,启用
动态供给。关键字段:provisioner、parameters、回收策略。
3. 存储访问模式 (Access Modes)
RWO (ReadWriteOnce):单节点读写(EBS、PD 等块存储)。
ROX (ReadOnlyMany):多节点只读。
RWX (ReadWriteMany):多节点读写(NFS、CephFS)。
实践任务 1
创建一个 emptyDir Pod,写入数据,重启容器 → 数据丢失。创建一个 hostPath Pod,在节点上写文件 → 删除 Pod 再建 → 数据依旧存在。手动创建 NFS PV + PVC,并让 Pod 使用。部署 WordPress 前端 Pod,共享一个 RWX PVC(如 NFS)。
第二阶段:动态供给与常用插件 (Dynamic Provisioning & Plugins)
目标:掌握生产环境中的动态存储供给。
1. 动态供给原理
流程:PVC → StorageClass → Provisioner → 存储后端 → PV → 绑定 PVC。
优势:自动化,无需手动干预。
2. 常见存储后端
云厂商托管存储
AWS EBS/EFS、Azure Disk/File、GCP PD、阿里云云盘/NAS。
开源/自建存储
NFS:经典文件共享,通常结合 nfs-subdir-external-provisioner。Ceph:块存储(RBD)/文件存储(CephFS)。GlusterFS:分布式文件系统。Local PV:基于节点本地磁盘,需配合调度约束(nodeAffinity)。
实践任务 2
在云平台上创建 gp3 StorageClass。提交 PVC,观察 PV 自动创建并绑定。部署 MySQL StatefulSet,PVC 自动供给。
第三阶段:有状态应用与 StatefulSet
目标:学会可靠管理有状态应用。
1. StatefulSet 特性
与 Deployment 区别:
稳定网络标识(需
Headless Service)。稳定存储(VolumeClaimTemplate 为每个 Pod 动态创建 PVC)。有序部署与扩缩容。
2. 模式与实践
每实例独立卷:Kafka、Elasticsearch、Etcd 等。
共享卷:Web 前端共享 RWX 卷。
实践任务 3
部署 Redis/MySQL 三节点 StatefulSet,观察 PVC 逐个生成。扩缩容 StatefulSet → 新 PVC 自动生成。配合 Headless Service,验证网络与存储的稳定性。
第四阶段:高级主题与生态系统
目标:掌握现代存储架构与运维能力。
1. Container Storage Interface (CSI)
优势:解耦 Kubernetes 与存储厂商。架构:Node Plugin + Controller Plugin。几乎所有新驱动都基于 CSI(如 EBS CSI、Ceph CSI)。
2. 存储运维与监控
VolumeSnapshot:备份与恢复。
克隆 (Cloning):快速复制 PVC。
扩容 (Expansion):在线/离线扩容。
监控指标:延迟、IOPS、带宽。
3. 数据安全与合规
加密:KMS 集成(AWS KMS、Vault)。
灾备:跨集群/跨区域复制。
自动化快照策略:定时备份。
4. 新兴存储解决方案
Rook:Operator 驱动的 Ceph 管理。
OpenEBS:容器附加存储 (CAS),轻量灵活。
Longhorn:Rancher 出品的分布式块存储,适合中小集群。
实践任务 4
部署 EBS CSI driver。使用 Rook 部署 Ceph 集群,并创建 Ceph RBD SC。对 PVC 创建快照,从快照恢复新卷。
学习资源推荐
官方文档:Kubernetes → Storage 概念。
GitHub:Rook、Longhorn、CSI 插件列表。
课程:Udemy、Coursera、KubeAcademy。
博客:云厂商存储与 K8s 集成文章。
总结
学习路径:
概念 → 静态供给 → 动态供给 → StatefulSet → CSI → 运维与安全 → 新兴方案
存储是 Kubernetes 最接地气的部分,需要在不同环境(本地 Minikube、云集群)反复实践,才能真正掌握。