etcd

Etcd - 图1. com/etcd-io/etcd)

Etcd - 图2 gh/etcd-io/etcd)

Etcd - 图3 etcd-io/etcd/actions/workflows/tests.yaml)

Etcd - 图4
Etcd - 图5

注意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,请从安装位置运行它,如下所示:

  1. /tmp/etcd-download-test/etcd

etcd 命令可以是如果它被移动到如下系统路径,只需运行:

  1. mv /tmp/etcd-download-test/etcd /usr/local/bin/
  2. etcd

如果 etcd 是 [从主分支构建][dl-build],按如下方式运行:

  1. ./bin/etcd

这将启动 etcd 监听端口 2379 用于客户端通信和端口 2380 用于服务器到服务器通信。

接下来,让我们设置一个键,然后检索它:

  1. etcdctl put mykey "this is awesome"
  2. etcdctl get mykey

etcd 现在正在运行并服务于客户端请求。更多内容请查看:

etcd TCP端口

official etcd ports 是 2379 用于客户端请求,2380 用于对等通信。

运行本地etcd集群

先安装goreman 将建立一个本地示例集群。开始它:

  1. goman start

这将产生 3 个 etcd 成员 infra1infra2infra3 以及可选的 etcd grpc-proxy,它们在本地运行并组成一个集群。

每个集群成员和代理都接受键值读取和键值写入。
按照 Procfile.learner 中的步骤将学习者节点添加到集群。使用以下命令启动学习者节点:

  1. goreman -f ./Procfile.learner start

下一步

现在是时候深入了解完整的 etcd API 和其他指南了。

[文档]: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