etcd
注意:在开发过程中,main
分支可能处于不稳定甚至损坏的状态。对于稳定版本,请查看发布版本。
etcd是一个分布式可靠的键值存储系统,用于存储分布式系统中最关键的数据,主要特点包括:
- 简单:定义明确的面向用户的API(gRPC)
- 安全:自动TLS,可选客户端证书认证
- 快速:基准测试达到10,000次写入/秒
- 可靠:使用Raft算法实现适当的分布式
etcd使用Go语言编写,并采用Raft共识算法来管理高可用的复制日志。
etcd被许多公司在生产环境中使用,开发团队在关键部署场景中为其提供支持,etcd经常与Kubernetes、locksmith、vulcand、Doorman等应用程序配合使用。通过严格的稳健性测试进一步确保了其可靠性。
有关简单的命令行客户端,请参见etcdctl。
原始图片来自xkcd.com/2347,由Josh Berkus修改。
维护者
维护者致力于塑造一个包容性的开源项目文化,让用户的声音得到倾听,让贡献者感到受尊重和赋能。维护者旨在建立跨公司和跨学科的富有成效的关系。阅读更多关于维护者的角色和责任。
入门指南
获取etcd
获取etcd的最简单方法是使用预构建的发布二进制文件,这些文件可用于OSX、Linux、Windows和Docker,可在发布页面上找到。
更多安装指南,请查看play.etcd.io和操作etcd。
运行etcd
首先启动一个单成员的etcd集群。
如果使用预构建的发布二进制文件安装etcd,请从安装位置运行它,如下所示:
/tmp/etcd-download-test/etcd
如果将etcd移动到系统路径中,可以简单地运行etcd命令,如下所示:
mv /tmp/etcd-download-test/etcd /usr/local/bin/
etcd
这将启动etcd,监听2379端口用于客户端通信,监听2380端口用于服务器间通信。
接下来,让我们设置一个键,然后检索它:
etcdctl put mykey "这真是太棒了"
etcdctl get mykey
etcd现在正在运行并响应客户端请求。更多信息,请查看:
etcd TCP端口
etcd的官方端口是2379用于客户端请求,2380用于节点间通信。
运行本地etcd集群
首先安装goreman,它用于管理基于Procfile的应用程序。
我们的Procfile脚本将设置一个本地示例集群。使用以下命令启动:
goreman start
这将启动3个etcd成员infra1
、infra2
和infra3
,以及可选的etcd grpc-proxy
,它们在本地运行并组成一个集群。
每个集群成员和代理都接受键值读取和键值写入。
按照Procfile脚本中的注释向集群添加一个learner节点。
安装etcd客户端v3
go get go.etcd.io/etcd/client/v3
下一步
现在是深入了解完整etcd API和其他指南的时候了。
- 阅读完整[文档]。
- 查看etcd[常见问题]。
- 探索完整的gRPC [API]。
- 设置[多机集群][clustering]。
- 了解[配置格式、环境变量和标志][configuration]。
- 查找[语言绑定和工具][integrations]。
- 使用TLS[保护etcd集群][security]。
- [调优etcd][tuning]。
联系方式
社区会议
etcd贡献者和维护者每周四上午11:00(美国太平洋时间)召开会议,会议在社区会议和问题分类会议之间交替进行。会议议程记录在[共享Google文档][shared-meeting-notes]中,欢迎大家提出额外主题或其他议程。
问题分类会议旨在处理我们的PR和Issues积压。分类会议对任何贡献者开放;你不必成为审核者或批准者就可以提供帮助!这也可能是开始贡献的好方法。
会议主持人角色在etcd维护者或sig-etcd负责人之间轮换,并记录在[共享Google表格][shared-rotation-sheet]中。
会议录像上传到官方etcd [YouTube频道]。
通过加入etcd-dev邮件组获取日历邀请。
加入CNCF资助的Zoom频道: zoom.us/my/cncfetcdproject
贡献
有关设置开发环境、提交补丁和贡献工作流程的详细信息,请参阅CONTRIBUTING。
请参阅community-membership.md了解成为etcd项目成员的信息。我们欢迎并期待您对项目的贡献!
请同时参考路线图,了解未来几个主要或次要版本的优先事项详情。
报告错误
有关报告任何问题的详细信息,请参阅报告错误。在开issue之前,请检查它是否已在我们的[常见问题]中涉及。
报告安全漏洞
有关如何报告安全漏洞以及etcd团队如何管理它的详细信息,请参阅安全披露和发布流程。
问题和PR管理
有关如何管理问题的详细信息,请参阅问题分类指南。
有关如何管理拉取请求的指南,请参阅PR管理。
etcd荣誉维护者
这些荣誉维护者在其职业生涯中致力于etcd,审查代码、分类错误并在很长一段时间内推动项目向前发展。我们非常感谢他们的贡献。
- Fanmin Shi
- Anthony Romano
- Brandon Philips
- Joe Betz
- Gyuho Lee
- Jingyi Hu
- Xiang Li
- Ben Darnell
- Sam Batschelet
- Piotr Tabor
- Hitoshi Mitake
许可证
etcd采用Apache 2.0许可证。有关详细信息,请参阅LICENSE文件。