ETCD

随着 Kubernetes 成为容器编排领域霸主,etcd 也越来越火热,越来越多的软件工程师使用 etcd 去解决各类业务场景中遇到的痛点。你知道吗?etcd 的 GitHub star 数已超过 34.2K,它的应用场景相当广泛,从服务发现到分布式锁,从配置存储到分布式协调等等。可以说,etcd 已经成为了云原生和分布式系统的存储基石。

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

ETCD 使用过程的典型问题

我们在使用 Kubernetes、etcd 的过程中,很可能也会遇到下面这些典型问题:

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

应该怎么学 etcd?

首先,你能知道什么是 etcd,了解它的基本读写原理、核心特性和能解决什么问题。

然后,在使用 etcd 解决各类业务场景需求时,能独立判断 etcd 是否适合你的业务场景,并能设计出良好的存储结构,避免 expensive request。

其次,在使用 Kubernetes 的过程中,你能清晰地知道你的每个操作背后的 etcd 是如何工作的,并遵循 Kubernetes/etcd 最佳实践,让你的 Kubernetes 集群跑得更快更稳。

接着,在运维 etcd 集群的时候,你能知道 etcd 集群核心监控指标,了解常见的坑,制定良好的巡检、监控策略,及时发现、规避问题,避免事故的产生。

最后,当你遇到 etcd 问题时,能自己分析为什么会出现这样的错误,并知道如何解决,甚至给社区提 PR 优化,做到知其然知其所以然。

基础篇

基础篇分为了以下的学习小目标:

  • etcd 基础架构。通过为你梳理 etcd 前世今生、分析 etcd 读写流程,帮助你建立起对 etcd 的整体认知,了解一个分布式存储系统的基本模型、设计思想。
  • Raft 算法。通过为你介绍 Raft 算法在 etcd 中是如何工作的,帮助你了解 etcd 高可用、高可靠背后的核心原理。
  • 鉴权模块。通过介绍 etcd 的鉴权、授权体系,带你了解 etcd 是如何保护你的数据安全,以及各个鉴权机制的优缺点。
  • 租约模块。介绍 etcd 租约特性的实现,帮助你搞懂如何检测一个进程的存活性,为什么它可以用于 Leader 选举中。
  • MVCC/Watch 模块。通过这两个模块帮助你搞懂 Kubernetes 控制器编程模型背后的原理。

实践篇

实践篇分为以下的学习小目标:

  • 问题篇。为你分析 etcd 使用过程中的各类典型问题,和你细聊各种异常现象背后的原理、最佳实践。
  • 性能优化篇。通过读写链路的分析,为你梳理可能影响 etcd 性能的每一个瓶颈。
  • 实战篇。带你从 0 到 1 亲手参与构建一个简易的分布式 KV 数据库,进一步提升你对分布式存储系统的认知。
  • Kubernetes 实践篇。为你分析 etcd 在 Kubernetes 中的应用,让你对 Kubernetes 原理有更深层次的理解。
  • etcd 应用篇。介绍 etcd 在分布式锁、配置系统、服务发现场景中的应用。

本文内容摘抄自极客时间专栏 etcd 实战课

《ETCD》上有1条评论

评论已关闭。