Version 3.3.12 home Download and build Libraries and tools Branch management Demo Discovery service protocol etcd release guide Frequently Asked Questions (FAQ) Logging conventions Metrics Production users Reporting bugs Tuning Benchmarks Benchmarking etcd v2.1.0 Benchmarking etcd v2.2.0 Benchmarking etcd v2.2.0-rc Benchmarking etcd v2.2.0-rc-memory Benchmarking etcd v3 Storage Memory Usage Benchmark Watch Memory Usage Benchmark Developer guide etcd API Reference etcd concurrency API Reference Experimental APIs and features gRPC naming and discovery Interacting with etcd Set up a local cluster System limits Why gRPC gateway etcd v3 API Learning etcd client architecture Client feature matrix Data model etcd v3 authentication design etcd versus other key-value stores etcd3 API Glossary KV API guarantees Learner Operations guide Clustering Guide Configuration flags Design of runtime reconfiguration Disaster recovery etcd gateway Failure modes gRPC proxy Hardware recommendations Maintenance Migrate applications from using API v2 to API v3 Monitoring etcd Performance Role-based access control Run etcd clusters inside containers Runtime reconfiguration Supported systems Transport security model Versioning Platforms Amazon Web Services Container Linux with systemd FreeBSD Upgrading Upgrade etcd from 2.3 to 3.0 Upgrade etcd from 3.0 to 3.1 Upgrade etcd from 3.1 to 3.2 Upgrade etcd from 3.2 to 3.3 Upgrade etcd from 3.3 to 3.4 Upgrade etcd from 3.4 to 3.5 Upgrading etcd clusters and applications

Download and build

You are viewing documentation for etcd version: v3.3.12

etcd v3.3.12 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest release, v3.4.0, or the current documentation.

System requirements

The etcd performance benchmarks run etcd on 8 vCPU, 16GB RAM, 50GB SSD GCE instances, but any relatively modern machine with low latency storage and a few gigabytes of memory should suffice for most use cases. Applications with large v2 data stores will require more memory than a large v3 data store since data is kept in anonymous memory instead of memory mapped from a file. For running etcd on a cloud provider, see the Example hardware configuration documentation.

Download the pre-built binary

The easiest way to get etcd is to use one of the pre-built release binaries which are available for OSX, Linux, Windows, appc, and Docker. Instructions for using these binaries are on the GitHub releases page.

Build the latest version

For those wanting to try the very latest version, build etcd from the master branch. Go version 1.9+ is required to build the latest version of etcd. To ensure etcd is built against well-tested libraries, etcd vendors its dependencies for official release binaries. However, etcd’s vendoring is also optional to avoid potential import conflicts when embedding the etcd server or using the etcd client.

To build etcd from the master branch without a GOPATH using the official build script:

$ git clone https://github.com/etcd-io/etcd.git
$ cd etcd
$ ./build

To build a vendored etcd from the master branch via go get:

# GOPATH should be set
$ echo $GOPATH
/Users/example/go
$ go get -v go.etcd.io/etcd
$ go get -v go.etcd.io/etcd/etcdctl

Test the installation

Check the etcd binary is built correctly by starting etcd and setting a key.

Starting etcd

If etcd is built without using go get, run the following:

$ ./bin/etcd

If etcd is built using go get, run the following:

$ $GOPATH/bin/etcd

Setting a key

Run the following:

$ ./bin/etcdctl put foo bar
OK

(or $GOPATH/bin/etcdctl put foo bar if etcdctl was installed with go get)

If OK is printed, then etcd is working!

Download and build