Skip to content

v2.3.0

Compare
Choose a tag to compare
@gyuho gyuho released this 18 Mar 17:48

We are pleased to announce etcd 2.3.0. etcd 2.3 contains many new features, improvements and a stable v2 auth API.

etcd 2.3 is fully compatible with etcd 2.2. Upgrading from etcd 2.2 to etcd 2.3 is a zero-downtime rolling upgrade. The basic approach is to upgrade a cluster running etcd 2.2 by upgrading each member, one-by-one, to etcd 2.3. For more details, please read the upgrade guide.

Also, with this release, etcd 2.3 is the current stable etcd release. All bug fixes and feature improvements will go into new etcd 2.3.x releases, and won't normally be backported to etcd 2.2.x.

New features

Strict runtime reconfiguration check

In version 2.3, etcd will reject reconfiguration that might cause quorum loss when strict checking is enabled. For example, when adding new members to an existing cluster, it is recommended to add one member at a time, because the quorum increases whether the new member is reachable or not. Adding multiple unreachable peers can actually cause the cluster to lose quorum. The new --strict-reconfig-check option causes etcd to reject such membership change requests, and prevents quorum loss due to newly-added, but as-yet unreachable, members.

Runtime profiling

Enable runtime profiling by specifying the --enable-pprof option to etcd. Profiling data is available over HTTP at a new /debug/pprof URL. Endpoints are served by the net/http/pprof package. Please visit the net/http/pprof documentation for more detail.

Refreshing TTL keys

Time-to-Live (TTL) keys in etcd now can be refreshed without notifying watchers. This avoids generating noisy traffic when a watcher is only interested in the expiration of TTL keys, and doesn’t care about refresh updates. For more details, please check the API doc

Experimental v3 support

v3 server

etcd 2.3 is first release of etcd that supports the experimental v3 API, including the cluster, kv, lease, and watcher APIs.

The etcd v3 API is now ready for experimentation and testing. The v3 API is almost stable; we do not expect it to significantly change.

To enable the v3 api, start etcd with the additional --experimental-v3demo and --experimental-gRPC-addr options.

v3 client API

A v3 etcd client now is available for experimental use and development. The client API is currently unstable; it may change in the next release. However, feel free to experiment with the new client. Your feedback is welcome!

v3 etcdctl

A v3 etcdctl now is available for experimental use and testing. The command, its arguments, options, and output format are unstable; all may change in the next release. However, feel free to experiment with the new etcdctl. Your feedback is welcome!

Getting Started

OS X

To get started on OSX run the following in a terminal:

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

Open another terminal:

./etcdctl set mykey "this is awesome"
./etcdctl get mykey

Linux

To get started on Linux run the following in a terminal:

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

Open another terminal:

./etcdctl set mykey "this is awesome"
./etcdctl get mykey

Docker

To get started with Docker on Linux run the following in a terminal:

docker run -p 2379:2379 -v /usr/share/ca-certificates/:/etc/ssl/certs quay.io/coreos/etcd:v2.3.0

ACI/rkt

The etcd ACI is now signed by the CoreOS App Signing Key so you'll need to explicitly choose to trust the key. To get started with rkt on Linux run the following commands in a terminal:

# for more info about rkt command line, see related doc at https://github.com/coreos/rkt/blob/master/Documentation/commands.md#rkt-run
rkt trust --prefix coreos.com/etcd
# gpg key fingerprint is: 18AD 5014 C99E F7E3 BA5F  6CE9 50BD D3E0 FC8A 365E
rkt run --volume data-dir,kind=host,source=/tmp --mds-register=false coreos.com/etcd:v2.3.0