@gyuho gyuho released this Jun 30, 2016 · 1846 commits to master since this release

Today we're announcing etcd v3.0.0, the first stable of etcd 3.0. Check out our blog post.

etcd 3.0 features have all been internally tested. We will try our best to not break any of the stable v3 APIs (except the experimental features) after this release, and the system is generally considered ready for use. However, we cannot test all possible configurations, and etcd 3.0 needs user testing before being declared ready for production use. Please help test the new features in your environment and give feedback to the team.

Notable Enhancements

We released etcd v2.0.0 a year ago. etcd v3 incorporates much expert feedback and thousands of hours of production use by the etcd community. The v3 API solves many issues related to etcd v2 scalability, with a new storage engine, and a new API fully supporting Multi-Version Concurrency Control (MVCC). All v3 API calls are served via gRPC and HTTP/2. For more detail, please see this performance documentation.

What’s new?

Some highlights of etcd 3.0 server improvements:

  • Improved latency and throughput
    • Less protocol overhead via gRPC API layer
    • Better disk utilization in write ahead log
  • New storage backend: lower memory overhead per key
  • Automatic TLS configuration

Some highlights of the new stable etcd3 API:

  • Flat binary keyspace: no key-value hierarchy / directories
    • Support key get and watch by prefix
    • Support key get and watch by interval
  • Multiversion keyspace: access historical revisions of keys
  • Transactions: combine multiple requests into one operation
  • Leases: a single TTL for sets of keys
  • Maintenance/Alarm: protect etcd from accidental overutilization with storage quotas

Some highlights of new etcdctl:

  • Mirror: mirror etcd to another data center
  • Lock: mutex on top of etcd
  • Elect: leader election
  • Snapshot: stores point-in-time state of etcd backend
  • Endpoint: health checking

Experimental Features/APIs:

  • v3 Auth API
  • etcd gateway subcommand

Getting Started


To run etcd on Linux, run the following in a terminal

curl -L https://github.com/coreos/etcd/releases/download/v3.0.0/etcd-v3.0.0-linux-amd64.tar.gz -o etcd-v3.0.0-linux-amd64.tar.gz
tar xzvf etcd-v3.0.0-linux-amd64.tar.gz
cd etcd-v3.0.0-linux-amd64

To try out etcdctl

ETCDCTL_API=3 ./etcdctl --endpoints=localhost:2379 put foo "bar"
ETCDCTL_API=3 ./etcdctl --endpoints=localhost:2379 get foo


To run etcd on OS X

curl -L https://github.com/coreos/etcd/releases/download/v3.0.0/etcd-v3.0.0-darwin-amd64.zip -o etcd-v3.0.0-darwin-amd64.zip
unzip etcd-v3.0.0-darwin-amd64.zip
cd etcd-v3.0.0-darwin-amd64

To try out etcdctl

ETCDCTL_API=3 ./etcdctl put foo "bar"
ETCDCTL_API=3 ./etcdctl get foo


To run etcd with rkt

rkt trust --prefix coreos.com/etcd
rkt run --volume data-dir,kind=host,source=/tmp --mds-register=false coreos.com/etcd:v3.0.0

For more details, please check rkt commands.


To run etcd with Docker

docker run --name etcd quay.io/coreos/etcd:v3.0.0

For more details, please check docker guide.