v3.0.0
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
Linux
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
./etcd
To try out etcdctl
ETCDCTL_API=3 ./etcdctl --endpoints=localhost:2379 put foo "bar"
ETCDCTL_API=3 ./etcdctl --endpoints=localhost:2379 get foo
OS X
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
./etcd
To try out etcdctl
ETCDCTL_API=3 ./etcdctl put foo "bar"
ETCDCTL_API=3 ./etcdctl get foo
ACI/rkt
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.
Docker
To run etcd with Docker
docker run --name etcd quay.io/coreos/etcd:v3.0.0
For more details, please check docker guide.