万字长文:etcd 问题、调优、监控
etcd 原理解析:读《etcd 技术内幕》这篇文章主要是原理性的内容,本文主要是实践角度,谈谈平时用到的一些操作和监控 高可用 etcd 是基于 raft算法的分布式键值数据库,生来就为集群化而设计的,由于Raft算法在做决策时需要超半数节点的投票,所以etcd集群一般推荐奇数节点,如3、5或者7个节点构成一个集群。 以上是etcd集群部署的基础概念,但是还需要注意以下问题: 选主过程 etcd 是高可用的,允许部分机器故障,以标准的3 节点etcd 集群,最大容忍1台机器宕机,下面以最简单的leader宕机来演示raft 的投票逻辑,以实际的运行日志来验证并理解。更多的场景可以看之前的原理解析 场景:正常运行的三台etcd:100、101、102。当前任期为 7,leader 为 101机器。现在使101 宕机 宕机前:101 为 leader,3 个 member 宕机后:102 成为新 leader,2 个 member 过程: 将 101 机器的 etcd 停止,此时只剩 2 台,但总数为 3 101停止etcd 的运行 102(91d63231b87fadda) 收到消息,发现101(8a4bb0af2f19bd46)心跳超时,于是发起了新一轮选举,任期为 7+1=8 91 d63231b87fadda [term 7 ] received MsgTimeoutNow