文档版本 v3.7-DRAFT 处于 草稿 状态。如需获取最新的稳定版文档,请参阅 v3.6。
库和工具
etcd 工具和客户端库的列表
请注意,以下提到的第三方库和工具(未托管在 https://github.com/etcd-io 上)并非由 etcd 团队测试或维护。在使用之前,建议用户阅读并自行评估这些工具。
工具
- etcdctl - etcd 的命令行客户端
- etcd-dump - 用于转储/恢复 etcd 的命令行工具。
- etcd-fs - 针对 etcd 的 FUSE 文件系统
- etcddir - 实时同步 etcd 与本地目录。支持 Windows 和 Linux。
- etcd-browser - 基于 Web 的 etcd 键值编辑器,使用 AngularJS 开发
- etcd-lock - 使用 etcd 实现主节点选举和分布式读写锁 —— 支持 v2
- etcd-console - 基于 Web 的 etcd 键值编辑器,使用 PHP 开发
- etcd-viewer - 使用 Java 编写的 etcd 键值存储编辑器/查看器
- etcdtool - 将 etcd 目录导出/导入/编辑为 JSON/YAML/TOML 格式,并使用 JSON 模式验证目录
- etcdloadtest - 针对 etcd 3.0 及以上版本的命令行负载测试客户端。
- lucas - 用于 Kubernetes etcd 3.0+ 集群的基于 Web 的键值查看器。
- etcd-manager - 现代化、高效、跨平台且免费的 etcd 3.x 图形界面(GUI)和客户端工具。支持 Windows、Linux 和 Mac。
- etcd-backup-restore - 定期并增量备份和恢复 etcd 的实用工具。
- etcd-druid - 一个 Kubernetes Operator,用于部署 etcd 集群并管理日常运维操作。
- etcdadm - 用于操作 etcd 集群的命令行工具。
- etcd-defrag - 更易使用且更智能的 etcd 碎片整理工具。
- etcdhelper - 一个适用于 IntelliJ 平台的 etcd 插件。
库
以下章节按编程语言列出 etcd 客户端库。
Go
- etcd/client/v3 - 官方维护的 Go 语言 v3 客户端
- go-etcd - 已弃用的官方客户端。可用于较旧版本的 etcd(<2.0.0)。
- encWrapper - etcd 客户端 Keys API/KV 的加密封装工具
Java
- coreos/jetcd - 支持 v3
- boonproject/etcd - 支持 v2,支持异步/同步及等待操作
- justinsb/jetcd
- diwakergupta/jetcd - 支持 v2
- jurmous/etcd4j - 支持 v2,支持异步/同步、等待操作和 SSL
- AdoHe/etcd4j - 支持 v2(针对实际生产集群进行了增强)
- 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 - 使用 gRPC 支持 v3,可选支持 Akka Stream。
Perl
- hexfusion/perl-net-etcd - 支持通过 HTTP API 的 grpc gateway 访问 v3
- 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-only 客户端库
- dims/etcd3-gateway - 使用 HTTP grpc gateway 的 etcd v3 API 库
- aioetcd3 - (Python 3.6+) 面向 asyncio 的 etcd v3 API
- Revolution1/etcd3-py - (python2.7 和 python3.5+) 基于 gRPC-JSON-Gateway 的 etcd v3 Python 客户端
Node
- mixer/etcd3 - 支持 v3
- stianeikeland/node-etcd - 支持 v2(使用 Coffeescript)
- lavagetto/nodejs-etcd - 支持 v2
- deedubs/node-etcd-config - 支持 v2
Ruby
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 cookbooks
BOSH 发行版
使用 etcd 的项目
- etcd Raft 用户 - 使用 etcd 的 raft 库实现的项目。
- apache/apisix - 一个动态、实时、高性能的 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 中设置和获取键值
- 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 配置库,支持从环境变量、pflags、文件和 etcd(可选加密)读取配置值
- lytics/metafora - Go 分布式任务库
- ryandoyle/nss-etcd - GNU libc NSS 模块,用于从 etcd 解析名称
- 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 实现了一种 Merkle 树,其内容由数据存储层提供服务,以支持超大规模树结构的可扩展性
- Apache APISIX - Apache APISIX 是一个动态、实时、高性能的 API 网关
- purpleidea/mgmt - 下一代分布式、事件驱动、并行化的配置管理系统!
- Portworx/kvdb - 用于存储 Portworx 集群配置的内部键值数据库
- Apache Pulsar - Apache Pulsar 是一个开源的、分布式的云原生消息和流数据平台