It looks like the cluster management choice made by a lot of Linux vendors is OpenStack. Minimum cluster is 3 machines – 1 cluster admin and 2 compute nodes. Your storage can be on either, or on separate nodes altogether.
OpenStack Block storage lets you put your application instances where ever you like, and have distributed, redudant, fast network block storage. In some cases, you can even live migrate applications from server to server, in case of failure, maintenance windows, upgrades, etc. At the very worst, you can reboot and come up on another node.
OpenStack networking can get as simple or complex as you like. From using basic Linux bridge to give every container access to your public network, to using proxy servers and private IPs on internal bridges, to networking plugins from Cisco or Juniper, to let the corporate networking team define what networks are available, instead of the cloud administrators.
OpenStack compute nodes can run Linux Containers, Microsoft Hyper-V guests, and/or KVM virtual machines. There are probably others, but I didn’t spend too much time there, yet.
There’s other features as well. The Atom server I bought could be my cluster admin/storage node. I just need to save up to get a couple more Atom servers, with larger SSD and multiple network ports, to configure as compute/storage nodes, and I could have my own “cloud.”