小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ

etcd RangeStream在Kubernetes v1.37中升级为beta,配合etcd v3.7,通过流式分块读取减少API服务器和etcd的内存占用,使峰值使用更可预测。它替代分页Range,按字节而非键数限制块大小,边读边释放内存。默认启用,若etcd较旧则自动回退。

Kubernetes v1.37:etcd RangeStream 降低大规模列表读取的内存占用

Kubernetes Blog Kubernetes Blog · 2026-09-01T18:30:00Z

> 本文是写作规划,不是可发布正文。拆解对象:etcd 在 Kubernetes 控制面与生产协调场景下的服务器内核——以 etcd v3.5.33(2026-07-23 补丁线;源码 tag v3.5.33)为主线,把一次写入/读取/Watch/Lease 从 gRPC → Raft propose → WAL →…

etcd / 生产内核 — 系列规划

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T14:44:17Z

本文介绍Kubernetes v1.30.3中kube-apiserver的watch cache机制,核心是Cacher组件:它通过watchCache环形缓冲存储事件,用Ready门控制启动同步,dispatch实现内存多路分发,bookmark维持资源版本推进。当缓存未命中或未就绪时回退到etcd,可能引发List风暴,需调整缓存容量和bookmark频率优化。

【kube-apiserver】Watch cache / cacher:dispatch、bookmark 与穿透 etcd

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文分析Kubernetes中`kubectl get pods -A`在大集群下变慢的原因,指出常见误判为etcd慢,实际可能是cacher或etcd3的List路径问题。文章详解了`resourceVersion`语义(`rv=""`走etcd强一致,`rv="0"`走缓存)、continue token的编码结构、分页成本模型,以及label selector在etcd侧无索引导致的全量扫描放大问题,并给出优化建议。

【kube-apiserver】List、Pagination 与一致性 List:continue token 与 etcd Range 成本

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30中kube-apiserver的过载保护机制,包括旧的max-in-flight全局并发限制和新的API Priority and Fairness(APF)公平排队系统。APF通过FlowSchema和PriorityLevel配置,使用SFVR算法实现流量分类和公平调度。文章详细区分429、504等超载症状的排查路径,强调先检查APF等待指标,再排查etcd或Webhook,并提供默认配置和调参建议。

【kube-apiserver】APF 与 max-in-flight:公平排队、504 与 etcd lag 分列

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

kube-apiserver无leader选举,多实例并发运行共享etcd,与controller-manager等不同。运维要点包括:滚动升级逐实例替换、处理409冲突、APF容量为各实例之和。核心flag有--etcd-servers、--etcd-servers-overrides(分集群events)、--request-timeout、--shutdown-delay-duration(需≥LB健康检查间隔×失败阈值)、--encryption-provider-config。升级顺序:etcd→apiserver→controller-manager→scheduler→kubelet,版本偏差不超过2个minor。健康检查中/readyz反映etcd连通性,/healthz不等价于etcd健康。

【kube-apiserver】运维与升级:HA、flags、graceful shutdown 与 etcd 联检

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes控制面内核系列文章,聚焦kube-apiserver与etcd间的存储层。文章指出当前知识缺口,定义五条排障坐标系:Storage/etcd耦合、Watch/cache、Admission、AuthN/AuthZ、流控。版本锚定v1.30.3,提供16篇阅读路线,强调通过分层定位504、410等故障,而非简单直连etcd排查。

【kube-apiserver】控制面全景:缺口、五轴坐标系与 16 篇路线

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文拆解kube-apiserver请求路径,从TLS终止到etcd写入,需经过APF流控、认证、授权、Admission等拦截点。APF在认证前,Admission在REST handler内。请求失败时需区分是Webhook拒绝、APF排队还是etcd问题,不能简单归因于etcd慢。GVR路由将请求映射到对应storage实现。

【kube-apiserver】进程与请求路径:generic apiserver、HandlerChain 与 REST 路由

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

kube-apiserver通过storage.Interface与etcd交互,存储protobuf序列化数据,key由前缀拼接,value经Transformer加密。GuaranteedUpdate用etcd Txn实现乐观并发写,Create/Delete/Watch各有路径。排障需关注etcd延迟、转换失败等指标,区分apiserver与etcd问题。

【kube-apiserver】storage.Interface 与 etcd3:codec、prefix 与 CRUD 路径

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文解析Kubernetes中resourceVersion字段的语义与常见误用。该字段源自etcd的mod_revision,仅对同一对象有单调性,跨对象比较无意义。文章详述了Watch起点、continue token分页机制及一致性保证,指出不同读路径的一致性差异,并解释了410 Gone错误的来源与处理方式。

【kube-apiserver】resourceVersion 与 Revision 映射:mod revision、continue 与一致性读期望

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文总结kube-apiserver排障系列终章,提出机制排除树,按症状(401/403、webhook 503、APF 429、etcd延迟、Watch错误等)定位至Auth、Admission、APF、Storage或Watch轴。回收etcd系列停损线,明确Kine SQL后端Watch语义差异及events分集群边界。列出三个开放问题(watch cache SLO、线性读一致性、Lease fencing),强调以实测关闭,并给出ADR友好收束建议。

【kube-apiserver】选型收束与开放问题:排除树、Kine 与 events 分集群

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍etcd生产内核系列文章,聚焦Raft共识、WAL持久化、MVCC存储、Watch同步和Lease TTL五条排障坐标系。文章指出常见问题如proposal卡顿、follower读stale、Watch追赶OOM等,并规划16篇阅读路线,强调K8s apiserver与etcd的耦合关系,为运维排障提供系统化框架。

【etcd】生产全景:缺口、五轴坐标系与 16 篇路线

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

etcd集群采用单一Raft组管理所有键值数据,与TiKV的Multi-Raft形成对比。EtcdServer负责状态机,raftNode适配Raft库。Leader处理写请求,Follower转发,Learner不参与投票。写路径经Raft提交,读路径可本地或ReadIndex,Watch和Lease各有独立机制。

【etcd】单 Raft 组与服务器角色:Leader、Follower、Learner 与 request 路由

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

本文介绍etcd v3.5.33中WAL日志与快照的实现机制。WAL通过CRC保护的64MB段文件持久化Raft日志,快照在applied index每增10万时触发并截断旧日志。崩溃恢复按WAL重放、加载快照、追赶日志顺序进行。committedIndex与appliedIndex分离,前者由Raft推进,后者由apply协程推进,二者差值过大时可能导致Watch延迟或重启后未就绪。

【etcd】WAL 与快照:预写日志、crash recovery 与 commit vs applied

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

本文介绍etcd v3.5.33的MVCC数据模型,核心是Revision(main/sub)全序、keyIndex的generation生命周期,以及内存treeIndex与bbolt后端的职责分工。相比ZooKeeper的覆盖写和一次性Watch,etcd v3保留历史版本直到compaction,支持持久Watch和Txn compare可见性。文章还涉及与Watch、Txn、K8s resourceVersion的接口,以及历史保留与磁盘占用的权衡。

【etcd】MVCC 数据模型:Revision、keyIndex 与 generation

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

etcd v3.5.33将MVCC映射至bbolt,采用mmap预分配与批量提交(100ms或10000条)优化fsync。单写者约束使写路径串行,读路径并发。delete操作立即提交保证线性一致。bucket布局以revision为键,treeIndex管理逻辑映射。

【etcd】bbolt 后端:mmap、batch 与单写者约束

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

本文介绍etcd v3.5.33中Raft提交条目如何通过apply管道转为MVCC revision并触发Watch。核心是区分committed index与applied index:commit仅表示日志复制完成,apply才更新MVCC状态。applyAll循环处理快照和条目,treeIndex内存索引过滤revision后批量读bbolt。Watch在事务End时同步通知。apply滞后会通过ErrTooManyRequests背压客户端,排障需区分Raft复制慢还是apply慢。

【etcd】treeIndex 与 Apply 管道:propose → commit → apply

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

本文介绍etcd v3.5.33的写入路径与容量管理。写入经gRPC→Propose→Raft提交→quota检查→MVCC apply,ModRevision在事务内共享。当后端大小超配额时触发NOSPACE alarm,拒绝写操作但允许读和删除,需defrag恢复。还涉及apply积压导致的ErrTooManyRequests错误,以及K8s控制面相关故障排查。

【etcd】写入路径深读:Txn、mod revision 与 quota/alarm

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

etcd v3.5.33 读路径分三种:默认线性一致读用 ReadIndex 确认 Leader 并等待 apply;Serializable 读本地执行,可能读到旧数据;Lease 读不经 Raft,直接访问 Leader 的 lessor。混用易致排障混淆。线性读等待 apply 后走 MVCC,历史读超 compact 返回 ErrCompacted。选型建议:控制面用线性读,扩展用 Serializable,锁用线性加版本比较。

【etcd】读路径与一致性:ReadIndex、Serializable 与 Lease read

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z

本文介绍etcd v3.5.33的Watch机制核心实现。watchableStore将watcher分为synced和unsynced两组:synced接收新事件,unsynced由后台循环从bbolt追赶历史。当channel满时,事件进入victims队列重试。compaction会触发ErrCompacted错误,客户端需重建缓存。Watch事件按revision严格有序,但可能早于Put响应到达,且不替代线性一致读。

【etcd】Watch 机制:watchableStore、synced/unsynced 与 ErrCompacted

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码