一 etcd集群概述
1.1 概述
静态启动etcd集群要求每个成员都知道集群中的另一个成员。Etcd运行在集群的每个coreos节点上,可以保证coreos集群的稳定,可靠的运行。当集群网络出现动荡,或者当前master节点出现异常时,etcd可以进行master节点的选举工作,同时恢复集群中损失的数据。
1.2 集群容错能力
1.3 集群基础
每个 etcd cluster 都由若干个 member 组成的,每个 member 是一个独立运行的 etcd 实例,单台机器上也可以运行多个 member。
在正常运行的状态下,集群中会有一个 leader,其余的 member 都是 followers。leader 向 followers 同步日志,保证数据在各个 member 都有副本。leader 还会定时向所有的 member 发送心跳报文,如果在规定的时间里 follower 没有收到心跳,就会重新进行选举。
客户端所有的请求都会先发送给 leader,leader 向所有的 followers 同步日志,等收到超过半数的确认后就把该日志存储到磁盘,并返回响应客户端。
每个 etcd 服务有三大主要部分组成:raft 实现、WAL 日志存储、数据的存储和索引。
WAL 会在本地磁盘(即 --data-dir)上存储日志内容(wal file)和快照(snapshot)。
提示:etcd 默认只保存 1000 个历史事件,因此不适合有大量更新操作的场景,否则会导致数据的丢失。etcd 典型的应用场景是配置管理和服务发现,即读多写少的。
1.4 引导机制
- 静态的
在启动 etcd server 的时候,通过 --initial-cluster 参数配置好所有的节点信息
- etcd Discovery
使用已有的 etcd cluster 来注册和启动
- DNS发现
使用 DNS 启动。
二 集群部署-静态
2.1 环境准备
ntp配置:略 #建议
