1. 课程导入与全景认知
在 Kubernetes 已经成为容器编排事实标准的今天,越来越多的企业把有状态应用——数据库、消息队列、日志检索、AI 训练数据管道——搬进集群。但容器天生是"无状态、可随时重建"的,一旦 Pod 被调度到别的节点,本地磁盘上的数据就随之消失。于是"持久化存储"成为容器平台能否承载核心业务的分水岭。本课程聚焦 Pure Storage 与容器平台的持久化存储集成,帮助你把企业级全闪存阵列的能力,安全、稳定、可运维地交付给 Kubernetes 工作负载。
为什么需要"容器持久化存储集成"
先厘清三个层次的概念。第一层是存储卷:Kubernetes 用 PersistentVolume(PV)描述一块可被 Pod 使用的存储资源,用 PersistentVolumeClaim(PVC)描述应用对容量和访问模式的需求,二者通过 StorageClass 动态绑定。第二层是存储供给:StorageClass 背后需要一个 CSI(Container Storage Interface)驱动,把 Kubernetes 的声明式请求翻译成存储阵列上的实际卷操作。第三层是存储平台:Pure Storage FlashArray 提供全闪存块存储,FlashBlade 提供文件与对象存储,二者通过 CSI 驱动接入集群。
把这三层串起来,就是本课程的主线:应用声明 PVC → StorageClass 匹配 → Pure CSI 驱动调用阵列 API → 阵列创建卷并挂载到节点 → Pod 获得持久化目录。理解这条链路,才能明白为什么"装个驱动"远远不够——容量规划、访问模式、快照与克隆、多路径、故障切换、性能隔离,每一项都决定生产环境是否可用。
核心价值:不只是"能挂盘"
Pure Storage 集成到 Kubernetes 后,最直接的价值是把存储运维从人工审批变成声明式自助。开发提交一个 PVC,几秒内卷就创建完成并挂载,无需存储管理员手工划 LUN。更深层的价值体现在四点:
- 性能确定性:全闪存阵列提供稳定的低延迟,配合 QoS 策略可限制单个命名空间的 IOPS,避免"吵闹邻居"拖垮关键库。
- 数据服务能力:通过 VolumeSnapshot 对 PVC 打快照,用克隆快速拉起一套与生产数据一致的测试环境,把"造数据"从数小时压缩到分钟级。
- 可用性与保护:多路径、ActiveCluster 双活、异步复制,让有状态应用具备跨节点甚至跨机房的重启能力。
- 统一运维:存储侧与 Kubernetes 侧使用同一套命名、标签和监控体系,容量与性能指标可被 Prometheus 采集。
典型适用场景
并非所有负载都需要这套集成。以下场景收益最明显:
| 场景 | 存储需求 | Pure 集成要点 |
|---|---|---|
| MySQL / PostgreSQL 主从 | 低延迟块存储、快照备份 | FlashArray + VolumeSnapshot,克隆做从库初始化 |
| Kafka / Elasticsearch | 高吞吐、大容量、多副本 | StorageClass 多实例,QoS 隔离不同 Topic 组 |
| AI 训练数据管道 | 高并发读、共享文件 | FlashBlade NFS,ReadWriteMany 访问模式 |
| CI/CD 构建缓存 | 快速创建销毁、低成本 | 克隆卷 + 短生命周期 PVC,自动回收 |
| 跨站点容灾 | 同步/异步复制、快速切换 | ActiveCluster + 拓扑感知调度 |
反之,纯无状态 Web 服务、临时计算任务、数据可随时重建的场景,用本地 emptyDir 或对象存储即可,不必引入块存储集成,否则会增加不必要的复杂度与成本。
学习路径:从认知到落地
本课程按"认知—搭建—使用—运维—进阶"推进,建议按顺序学习:
- 全景与准备(本章):理解链路、明确实验环境要求。
- 环境搭建:部署 Kubernetes 集群、配置 Pure CSI 驱动、验证驱动 Pod 状态。
- 基础使用:创建 StorageClass、PVC、Pod 挂载,观察 PV 绑定与阵列卷对应关系。
- 数据服务:快照、克隆、扩容、卷迁移。
- 生产运维:多路径、QoS、监控告警、故障排查。
- 进阶架构:双活、跨站点复制、与 GitOps 结合。
实验环境准备
为了让后续章节可动手复现,建议准备如下环境。以下参数为教学示例配置,实际部署时请按你的集群规模和阵列型号调整。
# 示例环境规格(教学用,非实测数据)
Kubernetes 版本 : v1.28+
节点数量 : 3 个 worker + 1 个 control-plane
节点操作系统 : Ubuntu 22.04 LTS
容器运行时 : containerd 1.7
网络插件 : Calico 或 Cilium
Pure FlashArray : Purity 6.x,已配置 iSCSI 或 FC 接口
管理网络连通性 : 节点可访问阵列管理 VIP 与数据 VIP
CSI 驱动版本 : pure-csi 最新稳定版(Helm 安装)
工具 : kubectl、helm、multipath-tools、iscsiadm
部署前需确认三件事:一是节点已安装并启用 iSCSI 或 multipath 服务;二是阵列侧已创建好用于 CSI 的 API Token 和主机组;三是集群节点能解析并访问阵列管理地址。这三点任一缺失,后续 PVC 都会卡在 Pending 状态。