> 本文是写作规划,不是可发布正文。拆解对象:Rook + Ceph-CSI 在 Kubernetes 上的编排与挂载路径——以 Rook v1.20.4(2026-08;rook.io/docs/rook/v1.20/)与 Ceph-CSI v3.17.0 为主线,把一次 PVC 从 StorageClass / e…
本文介绍Rook v1.20与Ceph-CSI在Kubernetes上的编排内核,填补RADOS与PVC挂载间的缺口。提出五条坐标系:CSI RPC、Sidecar、Operator/CRD、数据面归属、升级闸门,并强调三个不变量。规划16篇系列文章,聚焦故障归因与升级路径,不重写底层存储细节。
本文介绍Kubernetes CSI存储规范,核心是将存储插件分为Controller(集群级供给)和Node(节点级挂载)两类。K8s通过external-provisioner等sidecar组件将API对象转换为CSI RPC调用。文章详细梳理了PVC从创建到Pod挂载的完整调用链,强调PVC Bound不等于挂载成功,排障时需区分供给、挂载和I/O问题所在层级。
Rook是Ceph的Kubernetes Operator,通过CRD声明期望状态并调和出守护进程。核心CRD包括CephCluster、CephBlockPool等,v1.20起CSI调谐由Ceph-CSI Operator负责。Rook不管理RADOS内核语义,数据面问题需转向Ceph自身。排障时需明确对象归属、权威控制器及变更来源,避免误判。
本文介绍Rook Operator管理Ceph集群的生命周期:从CephCluster CR创建mon形成quorum,到mgr、OSD设备发现与部署,最后通过健康闸门验证HEALTH_OK。强调设备前置条件、dataDirHostPath清理、HEALTH_ERR时拒绝升级等关键运维纪律,并对比自动发现与显式设备清单的取舍,指出生产应偏向显式配置。
Rook v1.20 强制引入 Ceph-CSI Operator,CSI 设置从旧 ConfigMap 迁至 OperatorConfig 与 Driver CR。OperatorConfig 管理共享默认,Driver 管理各驱动覆盖,Driver 名即 provisioner 名。Helm 必须安装 ceph-csi-drivers chart,清单安装需含 csi-operator.yaml。升级前需导出 CR,避免定制被覆盖。所有权明确:管理员通过 CR 调谐 CSI,Rook Operator 只管 Ceph 生命周期。
本文探讨Rook上RBD动态供给路径:PVC Pending时,需排查StorageClass的provisioner命名(须与Operator命名空间一致)、Secret、池及CreateVolume日志。StorageClass参数经external-provisioner映射为Ceph-CSI的CreateVolume,创建Format 2 image。imageFeatures须匹配节点内核能力,否则挂载失败。Bound仅表示image存在,不保证节点可挂载。
本文探讨Rook/CSI中RBD卷挂载的复杂问题。核心要点:PVC绑定后挂载成功不等于数据安全,因image features与节点内核krbd能力不匹配、read affinity在Tentacle v20.2.0存在损坏风险、节点丢失后未正确fencing会导致双挂。排障时应先检查挂载栈、features、内核、锁和read affinity,而非直接怀疑存储后端。
本文介绍Rook/CephFS CSI在Kubernetes中的使用。CephFS CSI通过subvolume提供ReadWriteMany共享存储,需先创建CephFilesystem。相比RBD,CephFS的"税"在MDS可用性、元数据池延迟和capability协议上。文章强调RWX不等于免费NFS,频繁fsync或元数据密集负载不适合。还讨论了kclient与fuse选择、跨Namespace静态PV共享、配额假满问题,以及常见故障排查。最后给出适用场景:多副本只读配置、制品缓存等,并建议避免将数据库等同步写负载放在CephFS上。
本文探讨Rook/CSI中K8s VolumeSnapshot API与Ceph快照机制的语义差异,指出RBD、CephFS subvolume和目录.snap快照粒度不同,VolumeSnapshot Ready状态并不代表应用一致性。重点分析external-snapshotter与CRD版本错位导致的快照故障,以及扩容、克隆、恢复演练中的操作纪律和责任划分。
本文探讨Rook中对象存储与NFS的边界:CephObjectStore管理RGW网关生命周期,不涉及PVC语义;NFS CSI为实验特性,不支持升级,依赖CephFS而非RGW。强调区分协议,避免混淆排障,生产路径应选RBD/CephFS CSI,对象走RGW或外部S3。
本文讨论Rook/Ceph/CSI升级纪律,强调升级需遵循一次一个主版本、避免HEALTH_ERR强推、注意CSI Operator迁移和快照CRD错位。列出升级前检查清单和反模式,主张数据面升级人工审批,确保版本兼容和健康检查,防止跳版本导致故障。
本文介绍Rook/CSI在K8s上编排Ceph的可观测性方法,强调先选观测层再读字段语义。核心是区分K8s API、CSI sidecar、Ceph数据面等层级,指出csi_liveness仅表示插件存活,不保证供给成功;mgr指标绿不代表CSI健康。排障时需结合PVC Events、sidecar直方图、toolbox命令,避免误判,并建议值班仪表盘同时监控租户面、CSI面和RADOS面三类信号。
本文介绍Rook/CSI在K8s上运行Ceph的故障排查方法,提出六轴归因框架:PVC Pending、MountFailed、RBD特性静默失败、快照未就绪、升级卡住、mon端点/密钥错配。每轴按API、Sidecar、CSI、Rook、Ceph五层顺序排查,强调先选轴再操作,避免盲目重启集群,并给出跨轴并发时的优先级建议。
本文对比Rook+Ceph-CSI、云托管块CSI、Longhorn和裸Ceph四条存储路径,指出它们赢在不同前提:云CSI适合公有云纯块需求,Longhorn适合中小规模块副本,裸Ceph适合独立生命周期,Rook则适合需RADOS语义且用K8s声明式管理的场景。强调选型应基于机制差异而非延迟榜单,避免在公有云云盘上叠Rook等反模式。
本文探讨Rook/CSI在Kubernetes多租户环境下的存储安全边界,重点分析信任模型、CSI Secrets的caps权限、PVC加密(RBD LUKS/CephFS fscrypt)、OSD加密带来的双重性能开销、网络fencing的blocklist机制,以及StorageClass作为租户隔离边界。文章强调威胁模型决定加密层级,避免盲目双重加密,并指出快照类也是数据外流通道。
本文为“Rook/CSI:K8s上的Ceph编排内核”系列终章,聚焦选型收束。通过排除树机制判断何时该用Rook,明确其甜区为私有云/裸金属需RADOS语义场景,苦区为公有云叠Rook等。关闭与ceph/18的续作边界,列出不该跑Rook的否证条件,并给出ADR友好收束建议,强调先排除再选择,附版本钉与开放问题。
该文章是一个关于Kubernetes存储编排的系列教程,重点介绍Rook与Ceph-CSI。内容涵盖CSI规范、Rook Operator、RBD/CephFS供给、快照克隆及升级闸门,共16篇。文章提供阅读路径和排障指南,帮助工程师理解PVC生命周期、故障定位及选型决策,强调在K8s环境中有效运维Rook-Ceph。
本文介绍了如何在Kubernetes实验室中使用Rook和Ceph设置可扩展的持久存储。Rook自动管理Ceph,提供自我管理和修复功能。通过创建Ceph集群和存储类,用户可以实现对象、块和文件系统存储,提升Kubernetes实验室的体验。
完成下面两步后,将自动完成登录并继续当前操作。