你好,我是唐聪,etcd 活跃贡献者,腾讯资深工程师,欢迎你和我一起学习 etcd。

它的应用场景相当广泛,从服务发现到分布式锁,从配置存储到分布式协调等等。可以说,etcd 已经成为了云原生和分布式系统的存储基石。

另外,etcd 作为最热门的云原生存储之一,在腾讯、阿里、Google、AWS、美团、字节跳动、拼多多、Shopee、明源云等公司都有大量的应用,覆盖的业务可不仅仅是 Kubernetes 相关的各类容器产品,更有视频、推荐、安全、游戏、存储、集群调度等核心业务。

我想为你解决哪些问题?

  1. etcd Watch 机制能保证事件不丢吗? (原理类)
  2. 哪些因素会导致你的集群 Leader 发生切换? (稳定性类)
  3. 为什么基于 Raft 实现的 etcd 还可能会出现数据不一致? (一致性类)
  4. 为什么你删除了大量数据,db 大小不减少?为何 etcd 社区建议 db 大小不要超过 8G?(db 大小类)
  5. 为什么集群各节点磁盘 I/O 延时很低,写请求也会超时?(延时类)
  6. 为什么你只存储了 1 个几百 KB 的 key/value, etcd 进程却可能耗费数 G 内存? (内存类)
  7. 当你在一个 namespace 下创建了数万个 Pod/CRD 资源时,同时频繁通过标签去查询指定 Pod/CRD 资源时,APIServer 和 etcd 为什么扛不住? (最佳实践类)

更多类似问题:

image.png

我和 etcd 的那些事

你应该怎么学 etcd?

  1. etcd 基础架构
  2. Raft 算法
  3. 鉴权模块
  4. 租约模块
  5. 租约模块

etcd 基础篇思维导图:

image.png

实践篇我将为你解读实际使用 etcd 时,可能会遇到的各种问题,帮助你提前避坑、遇到类似问题时能独立分析、解决。

  1. 问题篇
  2. 性能优化篇
  3. Kubernetes 实践篇
  4. etcd 应用篇

实践篇内容你可以参考下面的思维导图:

image.png