Live data from Hacker News

Etcd Clustering in AWS

engineering.monsanto.com

11–20 of 31 posts

Re: Etcd Clustering in AWS

#11
post #6

"If this happened our cluster would become unavailable and may have trouble re-clustering." This was basically the repeated experience I had which caused me to abandon etcd for the time being. If it can barely ever heal, what the fuck good is it? And I found that it could barely ever heal. A 3-node CoreOS cluster I ran _always_ crashed when it attempted a coordinated update, and rarely could be repaired with the help…

I had way more trouble with Consul then I ever had with etcd. Actually, I've had almost no trouble with etcd whatsoever, it was way more resilient and tolerant to dying machines then Consul was, which would repeatedly get into inconsistent states and attempt to connect to nodes that were no longer there. I've been running CoreOS on production with dozens of AWS instances over the past year and I really don't have many complaints. Most issues I've come across actually have a lot more to do with docker then the stuff CoreOS has built.

But I also handle upgrading releases differently, that's not something I trusted from the beginning and it's easy enough to disable their update system and stand up new instances with upgraded CoreOS images.

Also, looking at your quote I would consider it very out of context, the previous sentence right before that:

"If there were any changes to these etcd machines, AWS would reboot them to apply the changes, potentially all at the same time."

So they had Cloudformation potentially rebooting all there machines at the same time, I think any cluster is going to have an issue when that happens and really has nothing to do with CoreOS's update system.

Re: Etcd Clustering in AWS

#12
post #10

I can't get over how bad a name etcd is. Everytime I see it I think it's some sort of daemon for /etc files.

I think what they were going for was:

/etc is where your config files go on your server etcd is where your config goes for the distributed system

Re: Etcd Clustering in AWS

#13

From my experience etcd is pretty rock solid, until you start using it across availability zones. Then if you add in SSL into the mix, the reliability drops even further if you are using the default configuration. At that point you need to start tweaking the heartbeat and timeout parameters for a the cluster to stay stable.

We have fixed the SSL issue in 2.1. We are also considering back-port it to 2.0 release if possible.

Re: Etcd Clustering in AWS

#16
post #11
post #6

"If this happened our cluster would become unavailable and may have trouble re-clustering." This was basically the repeated experience I had which caused me to abandon etcd for the time being. If it can barely ever heal, what the fuck good is it? And I found that it could barely ever heal. A 3-node CoreOS cluster I ran _always_ crashed when it attempted a coordinated update, and rarely could be repaired with the help…

I had way more trouble with Consul then I ever had with etcd. Actually, I've had almost no trouble with etcd whatsoever, it was way more resilient and tolerant to dying machines then Consul was, which would repeatedly get into inconsistent states and attempt to connect to nodes that were no longer there. I've been running CoreOS on production with dozens of AWS instances over the past year and I really don't have man…

Your experience with Consul and mine with etcd may suffer that of the pref for hard drive brands.

> Also, looking at your quote I would consider it very out of context, the previous sentence right before that:

> "If there were any changes to these etcd machines, AWS would reboot them to apply the changes, potentially all at the same time."

>So they had Cloudformation potentially rebooting all there machines at the same time, I think any cluster is going to have an issue when that happens and really has nothing to do with CoreOS's update system.

Two things:

(a) I'm saying that etcd has a tendency to break in _exactly_ _the_ _same_ _way_ without AWS rebooting anything.

(b) Production systems have a tendency to fail completely and all power on (or experience the end of a network partition) at the same time. It is absolutely necessary for anything as essential as etcd claims to be to be able to deal with a situation where all machines are powered off or unreachable to each other, and that comes to a sudden end.

CoreOS's update system happens to trigger this on its' own, because when it updates, it relies on etcd.

If you're not going to rely on CoreOS to update itself, what in the world is the point of CoreOS?

I'm just saying there are other boxes of sticks, putting some sticks in a box ain't that fuckin' hard, and these particular stick-gatherers are suffering from a dangerous bout of megalomania.

Feel free to lean your livelihood up against whatever box of sticks you please. :)

Re: Etcd Clustering in AWS

#17
post #7

Earlier quoted context omitted.

Have you tried using Mesos? We're doing a POC but ran into some issues that we're going to wait out. Also, I've spoken to Mesos and they stated that they had no intentions to make deployments easier/more stable, in favour of pushing their commercial offering.

> Also, I've spoken to Mesos Mesos is an Apache project, did you mean Mesosphere?

Yeah, we're clearly talking about Mesosphere.

Re: Etcd Clustering in AWS

#18
post #7
post #6

"If this happened our cluster would become unavailable and may have trouble re-clustering." This was basically the repeated experience I had which caused me to abandon etcd for the time being. If it can barely ever heal, what the fuck good is it? And I found that it could barely ever heal. A 3-node CoreOS cluster I ran _always_ crashed when it attempted a coordinated update, and rarely could be repaired with the help…

Have you tried using Mesos? We're doing a POC but ran into some issues that we're going to wait out. Also, I've spoken to Mesos and they stated that they had no intentions to make deployments easier/more stable, in favour of pushing their commercial offering.

I pointed at an open-source project by Cisco that pretty much sidesteps them entirely.

Obviously, CoreOS is going to start wanting your money pretty soon, as well.

Having worked for one of the earliest commercial linux distributors, I have little faith in such an effort to get anywhere. Red Hat and Canonical can barely make a dime.

Mesosphere isn't really an alternative to etcd, though. It relies on Zookeeper, which isn't perfect, but is much more battle torn than either Consul or etcd.

I have high hopes for something to replace Zookeeper, but I'm not deploying something in infancy which inherently can't heal from outages.

Re: Etcd Clustering in AWS

#19
post #6

"If this happened our cluster would become unavailable and may have trouble re-clustering." This was basically the repeated experience I had which caused me to abandon etcd for the time being. If it can barely ever heal, what the fuck good is it? And I found that it could barely ever heal. A 3-node CoreOS cluster I ran _always_ crashed when it attempted a coordinated update, and rarely could be repaired with the help…

While I like Consul, and actuallly run Consul in the CoreOS cluster I'm currently building, I have had far fewer problems with Etcd in AWS than Consul. For starters there's a long standing issue supposedly to do with ARP caching that makes restarting Consult iffy (we need to keep the Consul instance down for 3 minutes to prevent the cluster membership from flapping continuously after it rejoins, for example).

On the other hand I've never seen the problem you describe where the cluster won't heal after an upgrade.

Re: Etcd Clustering in AWS

#20

Running docker clusters on AWS seems a little foolish to me unless your trying to save money. Instead of manage containers why not just manage instances?

If you're trying to save money, you wouldn't be using AWS in the first place.

Here's one reason to run Docker on AWS: Putting everything in Docker containers makes it far easier to migrate off AWS if/when you want to.

Post reply on HN