【kube-apiserver】resourceVersion 与 Revision 映射:mod revision、continue 与一致性读期望
钉 Kubernetes resourceVersion 字段与 etcd mod revision 的对应关系;分析 continue token 的分页语义与成本;说明不同 List 路径的一致性期望差异;以及 410 Gone 与 ErrCompacted 的分列。版本锚定 Kubernetes v1.30.3…
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 29 篇文章 · 返回首页
钉 Kubernetes resourceVersion 字段与 etcd mod revision 的对应关系;分析 continue token 的分页语义与成本;说明不同 List 路径的一致性期望差异;以及 410 Gone 与 ErrCompacted 的分列。版本锚定 Kubernetes v1.30.3…
kube-apiserver 高可用模式:多实例共享 etcd、无需内部 leader election;核心 flag 语义(--etcd-servers、--etcd-servers-overrides、--shutdown-delay-duration、encryption-provider-config);与…
用机制排除树收束何时查 apiserver 轴、何时穿透 etcd 轴、何时两轴联查;回收 etcd/13 写下的 apiserver 停损线;Kine SQL backend 的 Watch 语义差与 Jepsen 覆盖空白;events --etcd-servers-overrides 分集群运维;列出 watc…
深入剖析 etcd 的核心机制:持久化 Watch 与 Revision 追溯、Lease 租约机制、基于 BoltDB 的 MVCC 存储引擎、与 Raft 共识的联动方式,以及在 Kubernetes 中的关键角色。涵盖性能调优策略、容量限制与规模化方案。
钉 kube-apiserver 与 etcd 的分层边界;resourceVersion 如何映射 Revision MVCC;Node Lease 如何落在 Lease 轴;以及 apiserver 超时应如何分列到 Raft/Watch/Quota 五轴。
用机制排除树收束何时该留 etcd、何时迁 TiKV/FDB/ZK;回收 distributed/39、tikv-htap/18、foundationdb/18 的 etcd 叶;列出 Watch 背压、Lease+fencing、quota 迁移等开放问题;以 ADR 语言关闭续作边界。
补齐 distributed 百科单篇之上的 etcd 生产内核:单 Raft 组、WAL/快照、Revision MVCC、bbolt 单写者、Watch/Lease、K8s apiserver 耦合,并以排障与相对 TiKV/FoundationDB 的选型收束。
Raft 论文 18 页,etcd raft 库 ~15000 行 Go。中间的差距不是代码量,是论文没提的工程 edge case:PreVote、流水线复制、ReadIndex、joint consensus。
相对 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 的 bbolt 后端:bucket 布局、mmap 预映射、100ms/10000 条 batch commit、ConcurrentReadTx 与单写者如何约束 MVCC 读写并发。
走读 etcd v3.5.33 从 Raft commit 到 MVCC apply 的串行管道:treeIndex 与 bbolt 分工、consistent index、watchableStore 通知触发点,以及 committed/applied 分列排障。
走读 etcd v3.5.33 写入路径:raftRequest 背压、Txn compare/mod 与 ModRevision 分配、backend quota 与 NOSPACE alarm 如何把集群推入只读。
分列 etcd v3.5.33 三种读语义:默认线性一致读的 ReadIndex 循环、Serializable 本地读、Raft ReadOnlyLeaseBased 与不经 Raft 的 Lease 路径;follower 读风险与 K8s 期望。
钉 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。
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 漂移。
Raft 论文 18 页就能读完,但 etcd/raft 用了 15000 行 Go 才把它变成能在生产环境跑的代码。这篇文章从论文的每一个核心机制出发,逐一拆解工程实现中论文没说的东西:PreVote、ReadIndex、LeaderTransfer、ConfChange V2、流水线复制、Async Apply,…
用一致性级别、事务模型与 Layer 边界收束 FoundationDB / TiKV / etcd 选型;给出站内阅读地图、全系列学术谱系与开放问题,标志 FoundationDB 内核系列完成。
拆解 TiKV 的 Multi-Raft 架构:为什么每个 Region 是独立的 Raft 组,与 etcd 单 Raft 组对照差在哪;跨 Region 事务代价作为开放问题收束,不重写 Raft 协议本身。
给出分布式强一致 KV 的扩展决策树:数据规模、事务需求、新鲜度要求如何在 TiKV、etcd、FoundationDB、单机 RocksDB、湖仓+CDC 之间做选型;回链全系列 18 篇,收束学术谱系与开放问题,标志系列完成。
配置应该放在代码里、环境变量里、还是配置中心里?本文从 12-Factor App 的配置理念出发,拆解配置的分层模型,深入分析 Apollo、Nacos、etcd 三大配置中心的架构与取舍,讨论动态配置灰度发布、配置加密与审计、Feature Flags 等工程实践。
2014 年 6 月,Google 将其内部容器编排系统 Borg 的设计思想提炼并开源,发布了 Kubernetes(简称 K8s)项目。Borg 在 Google 内部运行了超过十年,管理着数百万个容器实例,支撑了搜索、Gmail、YouTube 等核心服务。根据 Google 2015 年发表的论文《Large…
完整还原 Kleppmann 与 Antirez 关于 Redlock 的技术争论,拆解 Fencing Token 方案的原理与实现,对比基于 etcd 和 ZooKeeper 的分布式锁正确实现,讨论锁粒度、Advisory Lock 与 Mandatory Lock 的区别,以及用版本号代替锁的替代思路。