特别放送 | 成员变更:为什么集群看起来正常,移除节点却会失败呢?
王超凡
该思维导图由 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
《etcd 实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(9)
- 最新
- 精选
- Simon这文章确实够干, 点赞~ 要是能在关键流程补充一些源码就更完美了 毕竟talk is cheap, show me the code
作者回复: 嗯,专栏特色就是实践加干货总结,全网唯一,文章出于源码,但又不止于源码,给大家带来不一样的收获。源码剖析可能部分同学可能不喜欢,所以我们希望以故障为线索,结合流程图,为大家重点介绍下背后的理论和实践中的注意问题。后面看大家需求和我们自身时间,针对etcd源码单独加餐比较合适。
2021-03-0810 - jeffery感谢老师的分享!让我们收获很多!也理解了成员变更带来的危害以及类似的case怎么有惊无险的去处理.谢谢老师的分享
作者回复: 大家有收获就好,每次看到一出新文章,大家给予的评价,让我和超凡晚上熬夜定稿、深度review、录音都不困了,满满的动力,也希望大家帮忙扩散宣传下
2021-03-088 - Y_Y超凡,聪哥,在一起!
作者回复: 哈哈哈,感谢对专栏支持
2021-12-17 - Turing例子真的很经典. 希望老师尽快更下课后疑问 ;)
作者回复: 好的,感谢支持
2021-08-24 - 唐聪感谢超凡为我们带来7000多字的干货分享,通过一个诡异的案例,为大家娓娓道来这背后的故事,希望能帮助大家深入的理解成员管理,在线上安全的变更集群。专栏再过1周多,计划的内容定时更新就要结束了,但是与大家一块学习、精进却才开始,未来我将不定期输出加餐与特别放松文章,分享有趣的案例,解答大家的疑问,谢谢大家的订阅与支持。2021-03-0820
- 销毁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
收起评论