etcd实战课 / etcd 核心原理到大规模实践

唐聪
腾讯云资深工程师,etcd活跃贡献者
  • 课程目录
  • 课程介绍
  • 开篇词|为什么你要学习etcd?

    我希望你能够用最低的学习成本,掌握etcd核心原理和最佳实践,让etcd为你所用。

  • 01 | etcd的前世今生:为什么Kubernetes使用etcd?

    我们从etcd的前世今生讲起,让我们一起穿越回2013年,看看etcd最初是在什么业务场景下被设计出来的。

  • 02 | 基础架构:etcd一个读请求是如何执行的?

    今天,我想跟你介绍一下etcd v3的基础架构,让你心中能构筑起一幅etcd模块全景图。

  • 03 | 基础架构:etcd一个写请求是如何执行的?

    希望通过这节课,让你了解一个key-value写入的原理,对etcd的基础架构中涉及写请求相关的模块有一定的理解。

  • 04 | Raft协议:etcd如何实现高可用、数据强一致的?

    希望通过这节课,让你了解etcd在节点故障、网络分区等异常场景下是如何基于Raft算法实现高可用、数据强一致的。

  • 05 | 鉴权:如何保护你的数据安全?

    今天这节课,我将为你介绍etcd的鉴权模块,深入剖析etcd如何解决上面的这些痛点和挑战。

  • 06 | 租约:如何检测你的客户端存活?

    希望通过本节让你对Lease如何关联key、Lease如何高效续期、淘汰、什么是checkpoint机制有深入的理解。

  • 07 | MVCC:如何实现多版本并发控制?

    希望通过本节课,帮助你搞懂MVCC含义和MVCC机制下key-value数据的更新、查询、删除原理

  • 08 | Watch:如何高效获取数据变化通知?

    希望通过这节课,你能在实际业务中应用Watch特性,快速获取数据变更通知。

  • 09 | 事务:如何安全地实现多key操作?

    通过转账案例为你剖析etcd事务实现,让你了解etcd如何实现事务ACID特性,以及MVCC版本号在事务中的重要作用。

  • 10 | boltdb:如何持久化存储你的key-value数据?

    今天我将通过一个写请求在boltdb中执行的简要流程,分析其背后的boltdb的磁盘文件布局。

  • 11 | 压缩:如何回收旧版本数据?

    希望通过今天的这节课,能帮助你理解etcd压缩原理,在使用etcd过程中能根据自己的业务场景,选择适合的压缩策略。

  • 12 | 一致性:为什么基于Raft实现的etcd还会出现数据不一致?

    希望通过这节课,帮助你搞懂为什么基于Raft实现的etcd有可能出现数据不一致,以及我们应该如何提前规避、预防类似问题。

  • 13 | db大小:为什么etcd社区建议db大小不超过8G?

    我将通过一个大数据量的etcd集群为案例,为你剖析etcd db大小配额限制背后的设计思考和过大的db潜在隐患。

  • 14 | 延时:为什么你的etcd请求会出现超时?

    希望通过这节课,帮助你掌握etcd延时抖动、超时背后的常见原因和分析方法。

  • 15 | 内存:为什么你的etcd内存占用那么高?

    希望通过这节课,帮助你掌握etcd内存抖动、异常背后的常见原因和分析方法,当你遇到类似问题时,能独立定位、解决。

  • 16 | 性能及稳定性(上):如何优化及扩展etcd性能?

    希望你通过本文当遇到读etcd性能问题时,能从请求执行链路去分析瓶颈,解决问题,让业务和etcd跑得更稳、更快。

  • 17 | 性能及稳定性(下):如何优化及扩展etcd性能?

    这节课我将通过写性能分析链路图,为你从上至下分析影响写性能、稳定性的若干因素,为你总结出etcd写性能优化和扩展方法。

  • 18 | 实战:如何基于Raft从0到1构建一个支持多存储引擎分布式KV服务?

    希望通过metcd这个小小的实战项目,能够帮助你进一步理解etcd乃至分布式存储服务的核心架构、原理、典型问题解决方案。

  • 19 | Kubernetes基础应用:创建一个Pod背后etcd发生了什么?

    希望通过本节课,让你知道在Kubernetes集群中每一步操作的背后etcd会发生什么。

  • 20 | Kubernetes高级应用:如何优化业务场景使etcd能支撑上万节点集群?

    当你遇到etcd性能瓶颈时,希望这节课介绍能让你获得启发,帮助你解决类似问题。

  • 21 | 分布式锁:为什么基于etcd实现分布式锁比Redis锁更安全?

    希望通过这节课,让你了解etcd分布式锁的应用场景、核心原理。

  • 22 | 配置及服务发现:解析etcd在API Gateway开源项目中应用

    希望通过这节课,让你了解etcd在配置系统和服务发现场景工作原理,帮助你选型适合业务场景的配置系统、服务发现组件。

  • 23 | 选型:etcd/ZooKeeper/Consul等我们该如何选择?

    今天我将带你了解主要分布式协调服务的基本原理和彼此之间的差异性。

  • 24 | 运维:如何构建高可靠的etcd集群运维体系?

    希望通过这节课,帮助你构建高可靠的etcd集群运维体系。

  • 特别放送 | 成员变更:为什么集群看起来正常,移除节点却会失败呢?

    受唐聪邀请,我将给你分享一个我前阵子遇到的有趣的故障案例,并通过这个案例来给你介绍下etcd的成员变更原理。

  • 结课测试题|这些相关etcd知识你都掌握了吗?

    《etcd实战课》课程即将结课,来做一个小测试吧!

  • 结束语 | 搞懂etcd,掌握通往分布式存储系统之门的钥匙

    感谢你的一路相伴。

【完结特惠丨立省 ¥30】

完结特惠+口令「happy2021」立省 ¥30,仅限 50 个名额!

你将获得

  • etcd 系统学习路径
  • etcd 核心原理解析
  • 掌握实践中各类 etcd 问题的解决方案
  • 构建高可靠的 etcd 集群运维体系

讲师介绍

唐聪,腾讯云资深工程师,etcd 活跃贡献者。

唐聪一直从事于内部公共组件建设,曾负责大规模排行榜、Redis 平台建设,目前负责腾讯云及内部公共 etcd 平台的建设与维护,是腾讯云 etcd 负责人。

他主导了腾讯 etcd 平台从 0 到 1 的建设,解决过众多大规模业务增长过程中遇到的存储稳定性、可扩展性等痛点,拥有万级 Kubernetes 和 etcd 集群规模的实战、治理经验。同时,他也是 2020 年 etcd 社区全球 Top3 的活跃贡献者,修复了 etcd 数据不一致、内存泄露、死锁、panic 等众多问题,提升了 etcd 在大规模数据场景下的启动、读性能等。

课程介绍

随着 Kubernetes 成为容器编排领域霸主,etcd 也越来越火热。目前,etcd 的 GitHub star 数已超过 34.2K,它的应用场景相当广泛,从服务发现到分布式锁,从配置存储到分布式协调等等。可以说,etcd 已经成为了云原生和分布式系统的存储基石。

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

但是很多同学在使用 Kubernetes、etcd 的过程中,或多或少都会遇到下面这些问题:

  • etcd Watch 机制能保证事件不丢吗? (原理类)
  • 哪些因素会导致你的集群 leader 发生切换呢? (稳定性类)
  • 为什么基于 Raft 实现的 etcd 还可能会出现数据不一致呢? (一致性类)
  • 当你在一个 namespace 下创建了数万个 Pod/CRD 资源时,同时频繁通过标签去查询指定 Pod/CRD 资源时,APIServer 和 etcd 为什么扛不住呢? (最佳实践类)

基于此,唐聪老师从自己万级 Kubernetes 集群和 etcd 集群规模的治理相关经验出发,把 etcd 的学习过程分为了大中小三个目标,让你由小及大,从掌握一个个知识点的小目标出发,做到了解、熟练使用 etcd 的中等目标,最终能够完美解决业务过程中的各类痛点。

模块设置

课程主体分为两大模块,分别是基础篇实践篇

基础篇

基础篇会帮助你建立起对 etcd 的整体认知,搞懂读写请求、各个核心特性背后的原理,为后面的实践篇打下基础。

另外,基础篇也是对一个中小型分布式存储系统从 0 到 1 的实现案例解读,学习它你收获的不仅仅是 etcd,更是如何构建分布式存储系统的理论知识。

实践篇

实践篇将带你从 0 到 1 亲手参与构建一个简易的分布式 KV 数据库,进一步提升你对分布式存储系统的认知。为你分析 etcd 在 Kubernetes 中的应用,让你对 Kubernetes 原理有更深层次的理解。

当然,顾名思义,实践篇还会为你解读 etcd 在实际使用过程中可能会出现的各类典型问题,帮助你提前避坑,遇到类似问题时能独立分析、解决。

课程目录

特别放送