etcd 3.7
库和工具
etcd 3.7 开发、运维、升级、API 与内部原理中文指南
请注意,以下第三方库和工具未托管在 https://github.com/etcd-io 下,也未经 etcd 团队测试或维护。使用前应自行阅读相关资料并评估其可靠性。
工具
- etcdctl - etcd 的命令行客户端
- etcd-dump - 用于导出/恢复 etcd 的命令行工具
- etcd-fs - etcd 的 FUSE 文件系统
- etcddir - 实时同步 etcd 与本地目录的工具,支持 Windows 和 Linux
- etcd-browser - 基于 AngularJS 的 Web 端键值编辑器,用于 etcd
- etcd-lock - 基于 etcd 实现的领导者选举与分布式读写锁,支持 v2 版本
- etcd-console - 基于 PHP 的 Web 端键值编辑器,用于 etcd
- etcd-viewer - 使用 Java 编写的 etcd 键值存储编辑器/查看器
- etcdtool - 将 etcd 目录导出/导入/编辑为 JSON/YAML/TOML 格式,并使用 JSON Schema 验证目录
- etcdloadtest - 用于 etcd 3.0 及以上版本的命令行负载测试客户端
- etcd-tui - 用于与 etcd 数据库交互的现代终端用户界面(TUI),可在终端中导航键、查看值、过滤数据,并直接管理 etcd 集群
- etcdfinder - 一款快速、现代的 Web UI,支持 etcd v2 和 v3,具备即时搜索功能
- lucas - 用于 Kubernetes etcd 3.0+ 集群的 Web 端键值查看器
- etcd-manager - 一款现代、高效、跨平台且免费的 etcd 3.x 图形界面与客户端工具,支持 Windows、Linux 和 Mac
- etcd-backup-restore - 用于定期且增量备份与恢复 etcd 的工具
- etcd-druid - 用于部署 etcd 集群并管理日常运维操作的 Kubernetes Operator
- etcdadm - 用于操作 etcd 集群的命令行工具
- etcd-defrag - 更易用且智能的 etcd 碎片整理工具
- etcdhelper - 适用于 IntelliJ 平台的 etcd 插件
库
以下各节按语言列出了 etcd 客户端库。
Golang
- etcd/client/v3 - v3 版本的官方维护 Go 客户端
- go-etcd - 已弃用的官方客户端。对较旧版本(<2.0.0)的 etcd 可能仍有用处。
- encWrapper - encWrapper 是 etcd 客户端 Keys API/KV 的加密封装。
Java
- coreos/jetcd - 支持 v3
- justinsb/jetcd
- cdancy/etcd-rest - 使用 jclouds 提供 v2 API 的完整实现。
- IBM/etcd-java
Scala
- maciej/etcd-client - 支持 v2。基于 Akka HTTP 的完全异步客户端
- eiipii/etcdhttpclient - 支持 v2。基于 Netty 和 Scala Futures 的异步 HTTP 客户端
- mingchuno/etcd4s - 支持 v3,使用 gRPC,可选支持 Akka Stream
Perl
- hexfusion/perl-net-etcd - 支持 v3 gRPC 网关 HTTP API
- robn/p5-etcd - 支持 v2
Python
- kragniz/python-etcd3 - v3 版本客户端
- jplana/python-etcd - 支持 v2 版本
- russellhaering/txetcd - 基于 Twisted 的 Python 库
- cholcombe973/autodock - Docker 部署自动化工具
- lisael/aioetcd - (Python 3.4+) Asyncio 协程客户端(支持 v2)
- txaio-etcd - 面向 Twisted(当前)和 asyncio(未来)的异步 etcd v3 专用客户端库
- dims/etcd3-gateway - 使用 HTTP gRPC 网关的 etcd v3 API 库
- aioetcd3 - (Python 3.6+) asyncio 专用的 etcd v3 API
- Revolution1/etcd3-py - (Python 2.7 和 Python 3.5+) 使用 gRPC-JSON-Gateway 的 etcd v3 Python 客户端
节点
- mixer/etcd3 - 支持 v3
- stianeikeland/node-etcd - 支持 v2(使用 CoffeeScript)
- lavagetto/nodejs-etcd - 支持 v2
- deedubs/node-etcd-config - 支持 v2
Ruby
- iconara/etcd-rb
- jpfuentes2/etcd-ruby
- ranjib/etcd-ruby - 支持 v2
- davissp14/etcdv3-ruby - 支持 v3
C
- apache/celix/etcdlib - 支持 v2
- jdarcy/etcd-api - 支持 v2
- shafreeck/cetcd - 支持 v2
C++
- edwardcapriolo/etcdcpp - 支持 v2
- suryanathan/etcdcpp - 支持 v2(带等待)
- nokia/etcd-cpp-api - 支持 v2
- etcd-cpp-apiv3/etcd-cpp-apiv3 - 支持 v3
Clojure
- aterreno/etcd-clojure
- dwwoelfel/cetcd - 支持 v2
- rthomas/clj-etcd - 支持 v2
Erlang
- marshall-lee/etcd.erl - 支持 v2
- zhongwencool/eetcd - 支持 v3+(仅 GRPC)
Elixir
- team-telnyx/etcdex - 支持 v3+(仅限 GRPC)
.NET
- wangjia184/etcdnet - 支持 v2
- drusellers/etcetera
- shubhamranjan/dotnet-etcd - 支持 v3+(仅 GRPC)
- SimplifyNet/etcd.Microsoft.Extensions.Configuration
PHP
- linkorb/etcd-php
- activecollab/etcd
- ouqiang/etcd-php - v3 gRPC 网关的客户端
Haskell
R
Nim
Tcl
- efrecon/etcd-tcl - 支持 v2,但不支持 wait。
Rust
- jimmycuadra/rust-etcd - 支持 v2
Gradle
- gradle-etcd-rest-plugin - 支持 v2
Lua
- api7/lua-resty-etcd - 支持 v2 和 v3(gRPC 网关 HTTP API)
部署工具
Chef 集成
Chef 转译包
BOSH 发行版
使用 etcd 的项目
- etcd Raft 用户 - 使用 etcd 的 Raft 库实现的项目。
- Apache APISIX - 将 etcd 用作配置存储的 API 网关。
- apache/celix - 适用于 C 和 C++ 的 OSGi 规范实现。
- binocarlos/yoda - etcd + ZeroMQ。
- blox/blox - 一组用于容器管理与编排的开源项目,支持 AWS ECS。
- calavera/active-proxy - 使用 etcd 配置的 HTTP 代理。
- chain/chain - 用于运行并连接高度可扩展的许可区块链网络的软件。
- derekchiang/etcdplus - 基于 etcd 构建的一组分布式同步原语。
- go-discover - Go 语言中的服务发现。
- gleicon/goreman - 支持 etcd 的 Go Foreman 克隆分支。
- garethr/hiera-etcd - 使用 etcd 作为后端的 Puppet hiera 后端。
- mattn/etcd-vim - 在 vim 内部进行键的 SET 和 GET 操作。
- mattn/etcdenv - 集成 etcd 的 “env” shebang。
- kelseyhightower/confd - 使用模板和来自 etcd 的数据管理本地应用配置文件。
- configdb - 基于任意数据库后端的 REST 关系型抽象,旨在存储配置和清单。
- kubernetes/kubernetes - 由 Google 推出的容器集群管理器。
- mailgun/vulcand - 使用 etcd 作为配置后端的 HTTP 代理。
- duedil-ltd/discodns - 使用 etcd 作为名称和记录数据库的简单 DNS 名称服务器。
- skynetservices/skydns - 符合 RFC 的 DNS 服务器。
- xordataexchange/crypt - 使用 GPG 加密在 etcd 中安全存储值。
- spf13/viper - Go 配置库,支持从 ENV、pflags、文件和 etcd 读取值,可选加密。
- lytics/metafora - Go 语言分布式任务库。
- ryandoyle/nss-etcd - 用于从 etcd 解析名称的 GNU libc NSS 模块。
- Gru - 使用 Go 实现的简易编排。
- Vitess - 用于 MySQL 水平扩展的数据库集群系统。
- lclarkmichalek/etcdhcp - 使用 etcd 实现持久化和协调的 DHCP 服务器。
- openstack/networking-vpp - 一个网络驱动程序,用于编程 FD.io VPP 数据平面 ,以提供 OpenStack 云虚拟网络。
- OpenStack - OpenStack 服务可依赖 etcd 作为基础服务。
- CoreDNS - CoreDNS 是一个可插件链式组合的 DNS 服务器,属于 CNCF 和 Kubernetes 项目。
- Uber M3 - M3:Uber 开源的大规模指标平台,兼容 Prometheus。
- Rook - Kubernetes 的存储编排。
- Patroni - 基于 ZooKeeper、etcd 或 Consul 的 PostgreSQL 高可用性模板。
- Trillian - Trillian 实现了一种默克尔树,其内容由数据存储层提供,以支持极大规模树的可扩展性。
- purpleidea/mgmt - 新一代分布式、事件驱动、并行配置管理工具。
- Portworx/kvdb - 用于存储 Portworx 集群配置的内部 kvdb。
- Apache Pulsar - Apache Pulsar 是一个面向云的开源分布式消息与流平台。
来源与许可
文档取自 pig.center · 上游文档
- 版本
- 3.7
- 许可
- CC-BY-4.0
- 来源修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609- 译文修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609