etcd
etcd-io/etcd/actions/workflows/tests.yaml)
注意:main
分支在开发过程中可能处于不稳定甚至损坏的状态。有关稳定版本,请参阅 releases。
etcd是分布式系统最关键数据的分布式可靠键值存储,重点是:
- 简单:定义明确,面向用户的 API (gRPC)
- 安全:具有可选客户端证书身份验证的自动 TLS
- 快速:基准测试 10,000 次写入/秒
- 可靠:使用 Raft 正确分发
etcd 用 Go 编写并使用 [Raft]算法来管理高可用的复制日志。
etcd 被许多公司用于生产,开发团队在关键部署场景中支持它,其中 etcd 经常与 [Kubernetes][k8s]、[locksmith][ ]、[vulcand][]、[Doorman][] 等等。[严格测试](https://github.com/etcd-io/etcd/tree/main/tests/functional)进一步确保了可靠性。
有关简单的命令行客户端,请参阅 [etcdctl][etcdctl]。
[Raft]:https:
//raft.github.io/
[k8s]:http ://kubernetes.io/
[doorman]: https://github.com/youtube/doorman
[locksmith]:https://github.com/coreos/locksmith
[vulcand]: https://github.com/vulcand/vulcand
[etcdctl]: https://github.com/etcd-io/etcd/tree/main/etcdctl
开始
获取 etcd
的最简单方法是使用 发布页面 上可用于 OSX、Linux、Windows 和 Docker 的预构建发布二进制文件之一。
更多安装指南请查看play.etcd.io和操作etcd。
对于那些想要尝试最新版本的人,[构建最新版本的 etcd][dl-build] 从 main
分支。这首先需要安装 Go(需要 版本 1.16+)。所有开发都发生在“main”上,包括新功能和错误修复。错误修复首先针对 main
,然后移植到发布分支,如 branch management 指南中所述。
[dl-build]: https:// etcd.io/docs/latest/dl-build#build-the-latest-version
运行 etcd
首先启动一个 etcd 的单成员集群。
如果使用 pre-built release binaries 安装 etcd,请从安装位置运行它,如下所示:
/tmp/etcd-download-test/etcd
etcd 命令可以是如果它被移动到如下系统路径,只需运行:
mv /tmp/etcd-download-test/etcd /usr/local/bin/
etcd
如果 etcd 是 [从主分支构建][dl-build],按如下方式运行:
./bin/etcd
这将启动 etcd 监听端口 2379 用于客户端通信和端口 2380 用于服务器到服务器通信。
接下来,让我们设置一个键,然后检索它:
etcdctl put mykey "this is awesome"
etcdctl get mykey
etcd 现在正在运行并服务于客户端请求。更多内容请查看:
etcd TCP端口
official etcd ports 是 2379 用于客户端请求,2380 用于对等通信。
运行本地etcd集群
先安装goreman 将建立一个本地示例集群。开始它:
goman start
这将产生 3 个 etcd 成员 infra1
、infra2
和 infra3
以及可选的 etcd grpc-proxy
,它们在本地运行并组成一个集群。
每个集群成员和代理都接受键值读取和键值写入。
按照 Procfile.learner 中的步骤将学习者节点添加到集群。使用以下命令启动学习者节点:
goreman -f ./Procfile.learner start
下一步
现在是时候深入了解完整的 etcd API 和其他指南了。
- 阅读完整的[文档][]。
- 探索完整的 gRPC [API][]。
- 设置【多机集群】【集群】。
- 学习配置格式、环境变量和标志。
- 查找语言绑定和工具。
- 使用 TLS [保护 etcd 集群][安全]。
- [调整 etcd] [调整]。
[文档]:https://etcd.io/docs/latest
[api]:https://etcd.io/docs/latest/learning/api
[集群]:https://etcd.io/docs/latest/op-guide/clustering
[安全]: https:// /etcd.io/docs/latest/op-guide/security