etcd介绍
# etcd介绍
etcd (opens new window)是由 CoreOS 团队于 2013 年 6 月发起的开源项目(GO语言编写),于 2018 年 12 月正式加入云原生计算基金会(CNCF,全称 Cloud Native Computing Foundation),并由 CNCF 支持。CNCF 是一个厂商中立的基金会、云原生技术推广和普及的领导者。
etcd 是一个强一致性、高可用(CAP定理的CP)分布式键值对(key-value)数据库,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它优雅地处理网络分区期间的leader选举(Raft共识算法),并且可以容忍机器故障,甚至在leader节点中也是如此。
etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. It gracefully handles leader elections during network partitions and can tolerate machine failure, even in the leader node.
简单来说,etcd是个强一致性、高可用、可靠的分布式键值对(key-value)存储中间件。
# etcd名称由来
不知道第一次接触etcd这个开源项目的时候,有多少人跟我一样好奇etcd的名称的由来?是什么的缩写吗?
其实,"etcd"这个名字源于两个想法,即 unix "/etc" 文件夹和分布式系统 "d"istributed。 "/etc" 文件夹为单个系统存储配置数据的地方,而 etcd 则意为存储大规模分布式系统的配置信息。因此,"d"istributed 的 "/etc" ,是为 "etcd"。
etc
etc不是什么缩写,是"and so on"的意思,来源于法语的 “et cetera”,翻译成中文就是 “等等” 的意思。至于为什么在/etc下面存放配置文件,按照unix的说法该目录下面放的都是一堆零零碎碎的东西,就叫etc,这其实是个历史遗留。
# etcd特点
- 交互简单:使用标准的HTTP工具(如cURL)读写值。(安装配置也简单)
- 键值对存储:将数据存储在分层组织的目录中,类似于日常使用的标准文件系统。
- 监视变更:监视特定键或目录的更改,并对值的更改做出反应。
- 安全:可选的SSL客户端证书身份验证。
- 快速:以每个实例每秒 1000 次写入为基准。在官方Benchmark报告 (opens new window)中:一个实例支持每秒 2k+ 读操作。
- 过期淘汰:可选的键值过期机制(TTLs)。
- 可靠:基于 Raft 共识算法,实现分布式系统内部数据存储、服务调用的一致性和高可用性。
# 使用场景
目前使用etcd的组件有(但不限于):Kubernetes、Rook、CoreDNS、M3等等
# 快速开始
# 安装
# 启动ETCD服务端
# 客户端调用-Hello World
# 参考
官方文档(权威、更新及时)](https://etcd.io/docs/):根据自己的版本号看,在撰写etcd相关文章时采用的版本为v3.5 (opens new window)
其他:Etcd 教程 (opens new window)、Etcd官方文档中文版(已经不更新) (opens new window)