etcd
注意:main 分支在开发期间可能处于不稳定甚至损坏的状态。如需稳定版本,请参阅 releases。
etcd 是一个分布式可靠键值存储,用于存储分布式系统中最关键的数据,其重点在于:
- 简单:定义明确、面向用户的 API (gRPC)
- 安全:自动 TLS 及可选的客户端证书认证
- 快速:基准测试达到每秒 10,000 次写入
- 可靠:使用 Raft 正确实现分布式
etcd 使用 Go 编写,并利用 Raft 共识算法来管理高可用的复制日志。
etcd 被 许多公司在生产环境中使用,开发团队在关键部署场景中为其提供支持,在这些场景中,etcd 经常与 Kubernetes、locksmith、vulcand、Doorman 等应用程序配合使用。严格的 健壮性测试 进一步确保了可靠性。
请参阅 etcdctl 以获取一个简单的命令行客户端。

原始图片版权归 xkcd.com/2347 所有,由 Josh Berkus 修改。
文档
您最常需要的 API 文档可以在这里找到:
- go.etcd.io/etcd/api/v3
- go.etcd.io/etcd/client/pkg/v3
- go.etcd.io/etcd/client/v3
- go.etcd.io/etcd/etcdctl/v3
- go.etcd.io/etcd/pkg/v3
- go.etcd.io/etcd/raft/v3
- go.etcd.io/etcd/server/v3
维护者
维护者 致力于塑造一个包容的开源项目文化,让用户的声音被听到,让贡献者感到受到尊重和赋能。维护者旨在建立跨公司和跨学科的生产性关系。阅读更多关于 维护者角色与职责 的内容。
入门
获取 etcd
获取 etcd 最简单的方法是使用预构建的发布二进制文件,这些文件可在 发布页面 上用于 OSX、Linux、Windows 和 Docker。
如需更多安装指南,请查看 play.etcd.io 和 etcd 运维。
运行 etcd
首先启动一个单成员 etcd 集群。
如果 etcd 是使用 预构建的发布二进制文件 安装的,请从安装位置按以下方式运行:
/tmp/etcd-download-test/etcd
如果将 etcd 命令移动到如下系统路径中,则可以简单地按以下方式运行:
mv /tmp/etcd-download-test/etcd /usr/local/bin/
etcd
这将启动 etcd,使其在端口 2379 上监听客户端通信,在端口 2380 上监听服务器间通信。
接下来,让我们设置一个键,然后检索它:
etcdctl put mykey "this is awesome"
etcdctl get mykey
etcd 现已运行并正在处理客户端请求。如需了解更多,请查看:
etcd TCP 端口
官方 etcd 端口 为 2379(用于客户端请求)和 2380(用于对等通信)。
运行本地 etcd 集群
首先安装 goreman,它用于管理基于 Procfile 的应用程序。
我们的 Procfile 脚本 将设置一个本地示例集群。使用以下命令启动:
goreman start
这将启动 3 个 etcd 成员 infra1、infra2 和 infra3,以及可选的本地运行并组成集群的 etcd grpc-proxy。
每个集群成员和代理都接受键值读取和键值写入。
请遵循 Procfile 脚本 中的注释,以向集群添加一个学习者节点。
安装 etcd 客户端 v3
go get go.etcd.io/etcd/client/v3
后续步骤
现在是时候深入了解完整的 etcd API 和其他指南了。
- 阅读完整的[文档]。
- 查看 etcd[常见问题]。
- 探索完整的 gRPCAPI。
- 设置多机集群。
- 了解配置格式、环境变量和标志。
- 查找语言绑定和工具。
- 使用 TLS保护 etcd 集群。
- 调优 etcd。
联系方式
社区会议
etcd 贡献者和维护者每周四在太平洋时间上午 11:00 举行会议,会议在社区会议和问题分诊会议之间交替进行。会议议程记录在共享 Google 文档中,欢迎大家提出额外的主题或其他议程。
议题分诊会议旨在处理我们的 PR 和 Issue 积压。分诊会议对所有贡献者开放;你不必是审查者或批准者也能帮忙!它们也是开始贡献的好方式。
会议主持角色在每次会议之间在 etcd 维护者或 sig-etcd 负责人之间轮换,并记录在共享 Google 表格中。
会议录像上传至官方 etcd [YouTube 频道]。
通过加入 etcd-dev 邮件组获取日历邀请。
加入 CNCF 资助的 Zoom 频道:zoom.us/my/cncfetcdproject
贡献
请参阅 CONTRIBUTING 了解设置开发环境、提交补丁和贡献流程的详细信息。
请参阅 community-membership.md 了解成为 etcd 项目成员的信息。 我们欢迎并期待你对项目的贡献!
请参阅 roadmap 以获取有关未来几个主要或次要版本优先事项的更多详细信息。
报告错误
请参阅 reporting bugs 了解报告任何问题的详细信息。在打开问题之前,请检查它是否未在我们的[常见问题]中涵盖。
报告安全漏洞
有关如何报告安全漏洞以及 etcd 团队如何管理漏洞的详细信息,请参阅 security disclosure and release process。
Issue 和 PR 管理
有关 issue 管理方式的详细信息,请参阅 issue triage guidelines。
有关 pull request 管理指南,请参阅 PR management。
etcd 荣誉维护者
etcd emeritus maintainers 将职业生涯的一部分奉献给了 etcd,在相当长的一段时间内审查代码、分诊 bug 并推动项目发展。他们的贡献值得高度赞赏。
许可证
etcd 采用 Apache 2.0 许可证。有关详细信息,请参阅 LICENSE 文件。