查询 etcd 集群成员信息kubectl -n kube-system exec ${etcd} -- \特点etcd作为一个受到ZooKeeper与doozer启发而催生的项目除了拥有与之类似的功能外更专注于以下四点。简单基于HTTPJSON的API让你用curl就可以轻松使用。安全可选SSL客户认证机制。快速每个实例每秒支持一千次写操作。可信使用Raft算法充分实现了分布式。简单curl可访问的用户的APIHTTP JSON安全可选的SSL客户端证书认证快速单实例每秒1000次写操作可靠使用Raft算法保证一致性主要功能1. 基本的key-value存储2. 监听机制3. key的过期及续约机制 用于监控和服务发现4. 原子Compare And Swap和Compare And Delete, 用于分布式锁和leader选举架构命令1、获取etcd成员列表etcdctl member list从etcd查询数据etcdctl get auth模糊查询匹配到前缀为a的数据etcdctl get --prefix a查询匹配到前缀为a的key不返回valueetcdctl --prefix --keys-onlytrue get a查所有的keyetcdctl get --prefix --keys-only查看etcd各个节点的资源使用情况etcdctl endpoint status查看etcd各个节点的资源使用情况etcdctl endpoint status --write-outtableetcd 被设计为大型分布式系统的通用基板。这些大型系统需要避免脑裂问题并且愿意牺牲可用性来实现此目的。 etcd 以一致且容错的方式存储元数据。 etcd 集群旨在提供具有稳定性、可靠性、可伸缩性和性能的键值存储。两个机房网络中断导致每个机房都会选出自己的leader。解决方案引入“过半概念”投票选举只有经过过半数的同意票才能够被选举为leader。那么网络故障致使的分区问题解决了可是它的限制也很明显就是若是出现过半的机器宕机会致使整个集群没法正常提供服务数Etcd主要分为四个部分【http server、store、raft、WAL】HTTP Server 用于处理用户发送的API请求以及其他etcd节点的同步与心跳信息请求Store: 用于处理 etcd 支持的各类功能的事务包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等是 etcd 对用户提供的大多数 API 功能的具体实现。Raft Raft 强一致性算法的具体实现是 etcd 的核心。WALWrite Ahead Log预写式日志/日志先行是 etcd 的数据存储方式也是一种实现事务日志的标准方法。etcd通过 WAL 进行持久化存储所有的数据提交前都会事先记录日志。Snapshot 是为了防止数据过多而进行的状态快照Entry 表示存储的具体日志内容。Etcd使用Raft协议来维护集群内各个节点状态的一致性。简单说ETCD集群是一个分布式系统由多个节点相互通信构成整体对外服务每个节点都存储了完整的数据并且通过Raft协议保证每个节点维护的数据是一致的。Raft算法Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能但是它的算法结构和 Paxos 不同使得 Raft 算法更加容易理解并且更容易构建实际的系统。一致性算法允许一组机器像一个整体一样工作即使其中一些机器出现故障也能够继续工作下去。正因为如此一致性算法在构建可信赖的大规模软件系统中扮演着重要的角色。Raft算法分为三部分分别是Leader选举、日志复制和安全性。