【etcd】生产全景:缺口、五轴坐标系与 16 篇路线
相对 distributed/50、39、13 钉清 etcd 生产内核缺口;定义 Raft/WAL/MVCC/Watch/Lease 五轴排障坐标系,给出 16 篇阅读路线与 K8s 控制面耦合指针。版本锚定 v3.5.33。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 12 篇文章 · 返回首页
相对 distributed/50、39、13 钉清 etcd 生产内核缺口;定义 Raft/WAL/MVCC/Watch/Lease 五轴排障坐标系,给出 16 篇阅读路线与 K8s 控制面耦合指针。版本锚定 v3.5.33。
钉清 etcd v3.5.33 单 Raft 组拓扑、EtcdServer 与 go.etcd.io/raft/v3 边界、Leader/Follower/Learner 角色及 gRPC 写读路由;与 distributed/13 分工。
拆解 etcd v3.5.33 的 WAL 段文件、Raft snapshot 触发与重启 recovery 顺序;钉清 committed index 与 applied index 分叉对排障与 K8s 控制面的含义。
拆解 etcd v3.5.33 的 Revision (main, sub) 全序、keyIndex/generation 生命周期与 treeIndex 分工;简要对照 v2 平面键空间,交代 MVCC 与 Watch/compaction 的语义基础。
钉 etcd v3.5.33 watchableStore 的 synced/unsynced/victims 三分法、Apply 后 notify 与历史追赶 syncWatchersLoop,以及 CompactRevision 触发 ErrCompacted 时的客户端重同步边界。
钉 etcd v3.5.33 lessor 的 primary/demote/promote、KeepAlive 不经 Raft 的 Renew 路径、LeaseCheckpoint 与 Promote 时 TTL 展期,以及 Leader 切换对 Node Lease 的排障落格。
钉 etcd v3.5.33 Txn 的 compareToPath、MOD/CREATE/VERSION 比较与写 Txn 的 Raft 单槽 apply,并对照 Jepsen 3.4.3 的 strict-serializable 与 Lease 锁不安全子集。
钉 etcd v3.5.33 MVCC compaction 与 bbolt defrag 的分工、auto-compaction 保留窗口、quota-backend-bytes 与 NOSPACE alarm 写入门,以及 ErrCompacted 如何写进 Watch SLO。
钉 kube-apiserver 与 etcd 的分层边界;resourceVersion 如何映射 Revision MVCC;Node Lease 如何落在 Lease 轴;以及 apiserver 超时应如何分列到 Raft/Watch/Quota 五轴。
member add/remove/replace 与 learner promote 检查单;snapshot backup/restore 及 K8s 语境 revision bump;3.5.33 补丁线与 3.6/3.7 官方升级门禁项,不超前写未钉 tag 能力。
按 Raft、WAL、MVCC、Watch、Lease 五轴做症状否证;解释 etcdctl endpoint status/health 字段语义;并对照 K8s 控制面 apiserver 超时与 Node Lease 漂移。
用机制排除树收束何时该留 etcd、何时迁 TiKV/FDB/ZK;回收 distributed/39、tikv-htap/18、foundationdb/18 的 etcd 叶;列出 Watch 背压、Lease+fencing、quota 迁移等开放问题;以 ADR 语言关闭续作边界。