Kured – A Kubernetes Reboot Daemon
weave.works
weave.works
Kured has a feature to stop reboots if there are triggered Prometheus alerts; that’s a nice touch.
IMO good reliability practices counsel against this approach, certainly not without testing these upgrades in a staging environment first.
Our monitoring system - satellite will report failure to the upgrade process that will stop.
Administrator will use our diagnostic utility to diagnose the problem, fix it and proceed with upgrade from the last failed step, but in the manual mode.
> Does it apply to the entire OS, including kernel upgrades, or just your own software?
Right now it only applies to our software
See: pets vs cattle
Arguably data locality (as a parent-sibling comment suggests) is one reason you'd want to keep the substrate image around for a long time, but even then, there's no reason you have to destroy a data volume when reprovisioning an os volume. (nor do you even need an os volume if you run your substrate from ram).
[1]http://warewulf.lbl.gov/trac/wiki/Documentation [2]https://xcat.org/
Amusing side note: That was an interesting project with regard to system provisioning. The team responsible for the "south" cluster was from SDSC made up of folks who developed ROCKS[1], and the "north" cluster was managed by my team at LBNL, made up of folks who developed Warewulf (though at the time it was called Perceus). Each team was adamant about using their own tooling, so it made for some really long conference calls about keeping runtimes in sync.
I'm familiar with rocks, but I've never seen a warewulf cluster in the wild -- are you still using it?
I was only with the group a couple years nearly a decade ago (my job is up in the clouds these days) but it looks like Warewulf is still actively used: http://metacluster.lbl.gov/warewulf
For instance, if the nodes are storage nodes in a redundant storage system, taking each one offline briefly for a reboot, and letting the others handle the slightly higher load, is a lot quicker than spinning up a new node and replicating all of the data over there so you can de-provision the old one.
Also, even if they don't have a lot of data, the time and resulting expense of spinning up and provisioning a new node while the old one is still online could add up to higher costs than just performing a reboot during a point of lower load.