什么是 etcd?
什么是 etcd?
etcd 是一个分布式、可靠的键值(Key-Value)存储系统,专为分布式系统中的配置共享、服务发现和一致性协调设计。它基于 Google 开源的分布式一致性算法 Raft 实现,确保在集群节点故障时仍能提供数据的一致性、高可用性和可靠性,是云原生生态(尤其是 Kubernetes)中的核心基础设施组件之一。
一、etcd 的核心定位与设计目标
etcd 的诞生初衷是解决分布式系统中的“数据一致性”和“集群协调”问题,其设计目标可概括为以下 4 点:
- 强一致性:基于 Raft 算法,确保集群中所有节点的数据最终完全一致(而非“最终一致性”),适合存储对准确性要求高的信息(如集群配置、服务地址)。
- 高可用性:支持多节点集群部署(通常推荐 3/5/7 个节点,奇数节点避免“脑裂”),即使部分节点故障,集群仍能正常读写,满足生产环境的高可用需求。
- 高性能:针对读操作优化(读请求可由任意节点处理,写请求需通过 Leader 节点协调),单集群支持每秒数千次写操作和数万次读操作,满足大多数分布式场景的性能需求。
- 安全可靠:提供 TLS 加密(节点间通信、客户端访问)、身份认证(基于用户名/密码或证书)和权限控制(细粒度的 Key 路径权限),防止数据泄露或未授权访问。
二、etcd 的核心特性
除了上述设计目标外,etcd 还具备以下关键特性,使其成为云原生场景的首选存储:
- 键值存储与数据结构:支持基本的键值对存储,同时支持“目录式”的键结构(如
/app/config
、/service/nginx/ip
),可模拟层级结构