Etcd 2.0 – First Major Stable Release
coreos.com
coreos.com
If running in a docker container, you'll need to mount /etc/ssl/certs, as the etcd container is minimal, and will require finding some x.509 roots or something, even when running without HTTPS communication (that's what you get for using Go, I guess).
My setup for command line flags is
-name "{{ hostname }}" \
-initial-advertise-peer-urls "http://{{ clusterip }}:7001" \
-advertise-client-urls "http://{{ clusterip }}:4001" \
--listen-client-urls 'http://0.0.0.0:4001' \
--listen-peer-urls 'http://0.0.0.0:7001' \
-discovery "{{ discovery url }}"
I manually specify the proxy nodes by putting adding -proxy 'on' (my vpn host was becoming a master, which was not optimal), this may not be a problem for you.Removing and re-adding node was funky for me, as although :7001/members is great, removing a node there does not remove it from the discovery node, making rejoining with a clean etcd from the name machine rather painful. Not much that can be done about that though.
All in all, I think I'll start writing my Etcd compatible interface to zookeeper :)
If you are using etcd.discovery.io for your discovery url, you need to have dns working.
At some point, passing multiple --dns to docker didn't cause failover to be working. Or at least, dns resolution was failing in the etcd container, despite the docker daemon having `--dns 127.0.0.1 --dns 8.8.8.8 --dns 8.8.4.4`. I don't even know.
EDIT: Master election too :)
(Disclaimer: etcd dev here)
[1] https://github.com/coreos/etcd/blob/master/raft/raft_paper_t...
They've added "consistent=true"/"quorum=true" URL parameters for GETs per https://github.com/coreos/etcd/issues/741 as a workaround.
You can also had to fine tune some timeouts (election and compression if I remember correctly) to get the best performance out it.
Seriously, this was originally 0.5. However, because people had started to use 0.4.6 as a pseudo-1.0 in production, and because the internals are completely different, it's a little bit of version jumping to a base we actually want to call our stable branch.
Still, if you think that getting on HN is the highest level of PR mastery, I have a hello_world.go-to-io.js transpiler to sell you.
It's not difficult to get on the front page but it has massive PR implications however. My previous startup is living proof of that.
And this isn't the first time Docker announce something on HN and CoreOS follow straight up with something else. That's why I was wondering.