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 容器持久化存储集成全景 从应用声明到阵列卷落地的完整链路 应用层 · 声明式请求 StatefulSet / Pod PersistentVolumeClaim StorageClass 访问模式 / 容量 控制平面 · Pure CSI 驱动 CSI Controller CreateVolume / DeleteVolume CSI Node NodeStage / NodePublish Snapshot / Clone VolumeSnapshotClass 拓扑感知 Topology 存储平台 · Pure Storage 阵列 FlashArray (块存储) iSCSI / FC / NVMe-oF FlashBlade (文件/对象) NFS / S3 卷 / 快照 / 保护组 容量、QoS、复制策略 交付价值 秒级卷供给 快照/克隆加速 CI 与恢复 全闪性能与 QoS 隔离 跨站点复制 声明式接口不变,底层由企业级全闪存承载

核心价值:不只是"能挂盘"

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 或对象存储即可,不必引入块存储集成,否则会增加不必要的复杂度与成本。

学习路径:从认知到落地

本课程按"认知—搭建—使用—运维—进阶"推进,建议按顺序学习:

  1. 全景与准备(本章):理解链路、明确实验环境要求。
  2. 环境搭建:部署 Kubernetes 集群、配置 Pure CSI 驱动、验证驱动 Pod 状态。
  3. 基础使用:创建 StorageClass、PVC、Pod 挂载,观察 PV 绑定与阵列卷对应关系。
  4. 数据服务:快照、克隆、扩容、卷迁移。
  5. 生产运维:多路径、QoS、监控告警、故障排查。
  6. 进阶架构:双活、跨站点复制、与 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 状态。

提示:实验环境建议先用单阵列、单 StorageClass 跑通全流程,再逐步引入快照、克隆和多路径。一次引入太多变量,排障时很难定位是驱动、网络还是阵列配置的问题。
注意:生产环境不要直接复用实验用的 API Token 和 StorageClass 命名。Token 应遵循最小权限原则,StorageClass 应明确绑定到特定阵列与保护策略,避免误删或跨环境污染。