土法炼钢 · 系统与基础设施

【Rook / CSI】选型收束:排除树、开放问题与系列边界关闭

文章导航

分类入口
storagekubernetes
标签入口
#rook#csi#selection#open-questions#adr#tentacle#crimson#v1.20.4

目录

前 15 篇把 K8s 上的 Ceph 编排拆到可观测与可排障的精度,并对照了云 CSI、Longhorn、裸 Ceph。选型若再写成「各有优劣看场景」,等于把机制丢掉。

本文是终章:用机制排除树收束判断,回收系列开放问题与 ceph/18 点名的三条摩擦,写明何时不该跑 Rook,把 Tentacle+ / Crimson 留作 Ceph 系列指针,并以 ADR 可粘贴的语言关闭「Rook/CSI 续作边界」。不做跨方案延迟排行榜。

本文是「Rook / CSI:K8s 上的 Ceph 编排内核」系列第 16 篇(共 16 篇 · 终章)。→ 系列目录

篇目 核心内容
第 15 篇 · 多租户与安全 Secret、加密、fencing
第 16 篇 · 选型收束(终章) 排除树、开放问题、边界关闭

版本锚定:Rook v1.20.4;Ceph-CSI v3.17.0;K8s v1.31–v1.36;Ceph 后端 Squid v19.2.x / Tentacle v20.2.1+(机制默认对齐站内 Squid;Tentacle 特性须显式标注)。Crimson / SeaStore 生产边界见 ceph/18本系列不重开


一、先排除,再选择(机制判据)

排除树每一叶必须回答一个可证伪的机制问题,而不是「看场景」。

flowchart TD
  rados{"Need RADOS semantics\n(RBD and/or CephFS on one cluster)?"}
  rados -->|"No"| block{"Need K8s block PVC only?"}
  block -->|"No"| out["Out of scope\n(object-only, local disk, …)"]
  block -->|"Yes"| cloud{"On public cloud VMs\nwith managed disks?"}
  cloud -->|"Yes"| ebs["Cloud CSI\nDo not stack Rook"]
  cloud -->|"No"| eng{"Accept non-RADOS\nengine replication?"}
  eng -->|"Yes"| lh["Longhorn-class"]
  eng -->|"No"| other["Other engines / local PV"]
  rados -->|"Yes"| staff{"Can staff both\nPVC six-axis and Ceph five-axis?"}
  staff -->|"No"| hosted["Managed block/file\nor simpler stack"]
  staff -->|"Yes"| life{"Must Ceph lifecycle\nlive inside this K8s?"}
  life -->|"No"| bare["cephadm / bare Ceph\n(+ optional external CSI)"]
  life -->|"Yes"| feat{"Can enforce feature\nand upgrade gates?"}
  feat -->|"No"| defer["Do not run Rook yet"]
  feat -->|"Yes"| rook["Rook v1.20 +\nCeph-CSI Operator"]
机制判据(问句) 若「否」 倾向
需要 RADOS 语义(RBD/CephFS 同集群等)? 不要为品牌装 Ceph 云 CSI / Longhorn / 其它
公有云虚机 + 托管盘? 避免云盘做 OSD 再套 Rook 云 CSI(storage/70
付得起编排六轴 + Ceph 五轴编制? 机制再强也运维不起 托管或更简单引擎
Ceph 生命周期必须进本 K8s? Rook 税无对象 裸 Ceph ± 外挂 CSI
能执行 features 对齐与「一次一个主版本」闸门? 会稳定撞上 ceph/18 摩擦 先补门禁,再装 Rook
PVC 加密/fencing 威胁模型写清了? 默认双加密或未开 fencing 是隐性债 先写第 15 篇边界

甜区:私有云/裸金属,需要 RBD±CephFS(±RGW 入口)统一 RADOS,Ceph 生命周期与单一(或主)K8s 绑定,有双方言值班,P99 可接受副本+WAL 量级,能执行升级与 features 门禁。

苦区:公有云叠 Rook、无人懂 PG/CSI、把 Longhorn 与 Ceph 当同义词、跳主版本升级、用 VolumeSnapshot 冒充 CephFS 目录 .snap、双开加密当「更安全」却无威胁模型。


二、系列阅读路径回收

路径 篇目 回收什么
必读核心 01 → 02 → 05 → 06 → 07 → 09 → 13 坐标系 + CSI 接线 + CSI Operator + RBD + features + 快照语义 + 六轴
控制面 03 → 04 → 05 → 11 Operator / CephCluster / 升级闸门
文件系统与安全 08 → 09 → 15 CephFS、快照差、Secret/加密/fencing
对照选型 01 → 14 → 16 机制差 + 排除树
观测闭环 12 → 13 指标语义 → 选轴
完整通读 01 → … → 16 系统掌握

五个关键问题到终章仍然够用:

  1. PVC 失败落在哪一层?→ 六轴 + 五层坐标。
  2. features 为何「挂上但怪」?→ 轴三;门禁未做就不要进甜区。
  3. VolumeSnapshot 保证什么?→ 第 9 篇;CephFS ≠ RBD。
  4. 为何 v1.20 强制 CSI Operator?→ 第 5、11 篇;旧 ConfigMap 路径是假动作。
  5. 何时选 Rook?→ 本篇排除树。

三、显式关闭:ceph/18 的「Rook/CSI 续作边界」

Ceph 选型终章 §五 写明:Ceph 系列停在 RADOS 内核;编排摩擦只点名、留给续作。本系列交付后,边界如下——两边都不再假装对方的题是自己的未完待续

题目 归属 关闭状态
PG/BlueStore/peering/mClock/RBD COW/MDS caps ceph/ 已由 Ceph 01–18 覆盖
CSI RPC、sidecar、Rook CRD、CSI Operator 本系列 01–16 覆盖
features ↔︎ krbd 错位 本系列 07、13 轴三 已展开;开放的是「调度前失败」研究项
升级跳主版本 本系列 11、13 轴五 已展开为闸门纪律
VolumeSnapshot vs .snap 本系列 09、13 轴四 已展开语义差
Crimson / SeaStore / Tentacle 内核演进 ceph/18 Tentacle+ 本系列不写;见下节指针
多集群联邦存储、全域调度 未来专题 本系列明确不承诺

给读完两边的人一句分工口令

Ceph 终章承诺的续作边界,到此关闭。不是「以后永远不再写存储」,而是:同一条摩擦不应再以「留给 Rook 专题」为由在 Ceph 文里悬空。


四、何时不该跑 Rook(编排层否证)

下列任一成立,排除树上 Rook 叶判负(可写进 ADR 否证条件):

  1. 数据面不需要 RADOS——只要云块或引擎副本。
  2. 公有云托管盘已够——再叠 Rook 是双层税(第 14 篇)。
  3. Ceph 必须独立于该 K8s 生命周期——用 cephadm;CSI 可外挂。
  4. 编制上撑不住六轴+五轴——托管或收缩接口面。
  5. 不能执行升级主版本纪律或 features 门禁——装了也会在轴三/轴五反复炸。
  6. 把 Rook 当「点一下就有 Ceph」且无人读第 12–13 篇——观测与排障缺位等于无生产资格。

否证触发后应重跑排除树,而不是口头「我们一直用 Rook」。


五、Tentacle+ / Crimson:只做指针

本系列数据面机制默认钉 Squid 叙述(与站内 Ceph 系列一致)。下列主题故意不展开,避免编排文冒充内核预览手册:

主题 指针
Crimson tech preview 边界、CPU 集、不可生产 ceph/18 §三
Tentacle+ 特性标签纪律 ceph/18 §四
Classic 五轴能否搬到 Crimson ceph/16 开放问题
v20.2.0 + read affinity 风险 Rook/Ceph 官方 Upgrades;本系列第 11 篇闸门

编排结论不依赖 Crimson 是否在某日变默认:Rook 叶关心的是 CSI 与 Operator 生命周期;内核引擎换代时,先更新 Ceph 系列坐标系,再考虑编排 runbook 是否要分叉。


六、系列级开放问题(可证伪)

6.1 feature 能力能否在调度前失败

问题:RBD features 与节点 krbd 能力不匹配时,能否在调度/准入阶段失败,而不是轴三静默?
检验:固定 SC features,混部新旧内核节点,比较「仅运行后异常」vs「Pod 因亲和/准入起不来」。
入口:第 7、13 篇;CSI 能力上报讨论。

6.2 mon endpoint / Secret 漂移闭环

问题:Rook 条件类型能否稳定暴露「CSI 配置的 mon 列表与真实 mon map 不一致」?
检验:滚动 mon 地址后,轴六检测时延与是否依赖人工读日志。
入口:第 13 轴六;第 14 开放问题(外挂 CSI vs Rook)。

6.3 fencing 冷却与应用 RTO

问题out-of-service → blocklist → 新节点可写的时间是否可纳入 SLO?
检验:第 15 篇开放问题实验设计。
现状:机制已文档化;默认启用与否仍是平台策略。

6.4 sidecar 直方图与 Ceph slow ops 的自动归因

问题:CreateVolume OK 但延迟桶右移时,能否自动对齐到 OSD commit 尖刺?
检验:第 12 篇开放问题;失败则值班手册保持「先选层再选轴」人工纪律。

6.5 加密双税的合规逼迫下的可测量代价

问题:OSD+PVC 双加密相对单层的 CPU/延迟税,在固定 fio 口径下是否可复现为 ADR 数字?
约束:必须自测;本系列正文不引用虚构百分比。
入口:第 15 篇 Rook 双税警告原文。

关闭条件必须是测量或正式文档变更,不是路线图幻灯片。


七、给读完本系列的人三条收束(ADR 友好)

  1. 排除树进 ADR:写清卡在哪一叶机制判据;附否证条件(迁云、编制减员、Ceph 改独立生命周期、强制双加密、关闭 fencing 等)。示例句:
    「若块存储迁到公有云托管盘,或存储值班从双方言编制降为零,则 Rook+Ceph-CSI 叶必须重跑排除树,禁止以历史惯性续跑。」
  2. 若选了 Rook:第 13 篇六轴进发布门禁;第 11 篇主版本纪律进升级 runbook;第 7 篇 features 对齐进节点准入;第 15 篇威胁模型进安全评审——缺一项降级为试验集群。
  3. 若没选:用第 14 篇机制表做代际复盘;禁止无口径延迟截图重开「要不要 Rook」争论。需要 Ceph 内核判断时回 ceph/18

终章立场:Rook/CSI 值得写 16 篇,是因为失败可命名——RPC 状态码、VolumeAttachment、Driver CR、image features、Snapshot ready、主版本闸门、Secret/mon 锚、fencing blocklist。选型若离开这些名字,讨论退回安装量与品牌口号。记住一个动作:先排除,再上 CR,再扩租户——排除自带否证,CR 自带版本钉,租户自带 Secret 与 SC 边界。


八、与 Ceph 终章对齐的纪律

两边终章共用同一方法论,对象不同:

纪律 Ceph 18 本篇(Rook 16)
先排除再选 RADOS vs MinIO/云块/SPDK Rook vs 云 CSI/Longhorn/裸 Ceph
版本钉 Squid;Tentacle+ 标签 Rook v1.20.4 + CSI v3.17.0
预览隔离 Crimson 不可生产 不把 CSI 实验旗标写成默认甜区
续作边界 曾指向本系列 本系列关闭该指针的悬空状态
开放问题 可证伪实验 可证伪实验

读完两边后,不应再问「Ceph 系列为啥不讲 PVC」——那是分工,不是遗漏。


九、系列收束检查

交付前用四条自检代替口号:

  1. 排除树每一叶是否对应可观察机制?
  2. ceph/18 三条摩擦是否都有本系列落点?
  3. Tentacle+/Crimson 是否只以指针出现、未冒充编排结论?
  4. ADR 示例是否含否证条件?

若四条任一失败,正文还不能当选型依据,只能当问题清单。

若时间只够三篇:读 011316——带着坐标系、排障轴与排除树离开;缺的是 Operator/快照细节,不是选型语言。全量通读的价值在于把供给税、挂载税、快照税、升级税说成可命名机制,便于事故复盘对号入座。

写进 ADR 的最小附件清单

除排除树截图或表格外,建议附四份短附件(可以是链接,不必贴进同一文件):

  1. 版本钉:Rook / Ceph-CSI / K8s / Ceph 发行版四元组,以及「禁止跳主版本」一句。
  2. 排障归属:六轴 on-call 与 Ceph 五轴 on-call 是否同一人;不是同一人则写清升级与交接。
  3. 安全四问答案:第 15 篇审计四句的书面回复。
  4. 否证触发器:迁云、编制变化、Ceph 改独立生命周期、强制双加密等——触发后必须重开 ADR,而不是发变更单「微调 Helm」。

缺附件的选型文档,在复盘时通常无法回答「当初为什么选 Rook」,讨论会重新掉进品牌偏好。

终章不再承诺的事

本系列不承诺:多集群联邦存储专篇、Crimson 生产 runbook、云厂商托管 CSI 逐步点击教程、未实测的跨引擎延迟榜。这些若将来成文,应新开系列或挂回 ceph/ / storage/,而不是在本目录追加「第 17 篇续杯」。编排内核的叙事到第 16 篇结束。


参考资料

官方文档(A/B)

站内分工(关闭边界用)

论文谱系

上一篇:多租户与安全 · 系列目录

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-08-15 · storage / kubernetes

【Rook / CSI】编排全景:五轴坐标系与 16 篇路线

相对 ceph/ RADOS 内核与 storage/ 云块选型,钉清 Rook/CSI 编排层缺口;定义 CSI RPC、sidecar、Operator/CRD、数据面归属、升级闸门五条坐标系,给出 16 篇阅读路线与 PVC Bound 之后 I/O 仍走 krbd→PG→BlueStore 的边界。


By .