etcd 实战课
唐聪
腾讯云资深工程师,etcd 活跃贡献者
28449 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 28 讲
开篇词 (1讲)
etcd 实战课
15
15
1.0x
00:00/00:00
登录|注册

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

异常节点的自动恢复
备份恢复的流程
新集群如何组建
向已有集群扩容节点的流程
联合一致性(joint consensus)
为什么需要Learner
成员变更流程
优缺点分析
实现成员变更的方案
快速恢复集群的方法
可能的原因分析
诡异故障案例
思考题
小结
故障分析
如何从备份恢复集群
集群扩容节点完整流程
如何通过Raft实现成员信息同步
静态配置变更 VS 动态配置变更
从一次诡异的故障说起
为什么集群看起来正常,移除节点却会失败呢?
etcd成员变更原理

该思维导图由 AI 生成,仅供参考

你好,我是王超凡,etcd 项目贡献者,腾讯高级工程师。目前我主要负责腾讯公有云大规模 Kubernetes 集群管理和 etcd 集群管理。
受唐聪邀请,我将给你分享一个我前阵子遇到的有趣的故障案例,并通过这个案例来给你介绍下 etcd 的成员变更原理。
在 etcd 的日常运营过程中,大部分同学接触到最多的运维操作就是集群成员变更操作,无论是节点出现性能瓶颈需要扩容,还是节点故障需要替换,亦或是需要从备份来恢复集群,都离不开成员变更。
然而如果你对 etcd 不是非常了解,在变更时未遵循一定的规范,那么很容易在成员变更时出现问题,导致集群恢复时间过长,进而造成业务受到影响。今天这节课,我们就从一次诡异的故障说起,来和你聊聊 etcd 成员变更的实现和演进,看看 etcd 是如何实现动态成员变更的。希望通过这节课,帮助你搞懂 etcd 集群成员管理的原理,安全的变更线上集群成员,从容的应对与集群成员管理相关的各类问题。

从一次诡异的故障说起

首先让我们来看一个实际生产环境中遇到的案例。
某天我收到了一个小伙伴的紧急求助,有一个 3 节点集群,其中一个节点发生了故障后,由于不规范变更,没有先将节点剔除集群,而是直接删除了数据目录,然后重启了节点。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

etcd集群成员变更的实现方式及其重要性是本文的核心内容。文章首先通过一个实际生产环境中的故障案例引出了etcd成员变更的重要性和复杂性。作者详细介绍了etcd采用的动态成员变更实现方式,包括基于Raft的成员信息同步流程。特别强调了动态成员变更的重要性,以及etcd如何通过动态配置变更来提高集群的稳定性和可用性。另外,文章还介绍了Learner节点和联合一致性的概念,以及集群扩容节点的完整流程。通过详细的案例分析,读者可以了解etcd成员变更的原理和实际操作,以及在面对故障时的应对方法。最后,文章总结了etcd成员变更方案的演进和优缺点,以及对业务稳定性的提升。总的来说,本文内容丰富,深入浅出,适合需要了解etcd集群管理原理和应对故障的读者阅读。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《etcd 实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • Simon
    这文章确实够干, 点赞~ 要是能在关键流程补充一些源码就更完美了 毕竟talk is cheap, show me the code

    作者回复: 嗯,专栏特色就是实践加干货总结,全网唯一,文章出于源码,但又不止于源码,给大家带来不一样的收获。源码剖析可能部分同学可能不喜欢,所以我们希望以故障为线索,结合流程图,为大家重点介绍下背后的理论和实践中的注意问题。后面看大家需求和我们自身时间,针对etcd源码单独加餐比较合适。

    2021-03-08
    10
  • jeffery
    感谢老师的分享!让我们收获很多!也理解了成员变更带来的危害以及类似的case怎么有惊无险的去处理.谢谢老师的分享

    作者回复: 大家有收获就好,每次看到一出新文章,大家给予的评价,让我和超凡晚上熬夜定稿、深度review、录音都不困了,满满的动力,也希望大家帮忙扩散宣传下

    2021-03-08
    8
  • Y_Y
    超凡,聪哥,在一起!

    作者回复: 哈哈哈,感谢对专栏支持

    2021-12-17
  • Turing
    例子真的很经典. 希望老师尽快更下课后疑问 ;)

    作者回复: 好的,感谢支持

    2021-08-24
  • 唐聪
    感谢超凡为我们带来7000多字的干货分享,通过一个诡异的案例,为大家娓娓道来这背后的故事,希望能帮助大家深入的理解成员管理,在线上安全的变更集群。专栏再过1周多,计划的内容定时更新就要结束了,但是与大家一块学习、精进却才开始,未来我将不定期输出加餐与特别放松文章,分享有趣的案例,解答大家的疑问,谢谢大家的订阅与支持。
    2021-03-08
    20
  • 销毁first
    刚在开发环境遇到这个情况,和这篇文章报错一模(mú)一样
    2022-10-18归属地:广东
  • Geek_acb401
    2022-06-19
  • 乔纳森
    没有学习etcd 前,犯错类似的错误; 后来在网上搜到,要stop etcd,remove member,再add member 启动一个新节点来加入集群; 现在理解原理了
    2022-01-09
  • ly
    我们知道在 Raft 里,竞选出的 Leader 必须获得一半以上节点投票,这就保证了选出的 Leader 必然会拥有重叠节点的投票。而一个节点在一轮投票中只能投票给一个候选者,这就保证了新老配置最终选出的 Leader 必然是一致的。 老师 这句话我不是很理解,我理解的当一个节点收到新的配置时,拥有新配置的节点才能成为leader,只拥有老配置的节点是无法成为leader的,通过这样来保证安全性
    2021-03-23
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部