I run a single node cluster.
My single node has 256 gb of ram and 24 cores. I do this because, if you want a lot of ram/cores/storage, it is cheaper to get a used "tower server" type device and then upgrade it as you go over time, than it is to buy entirely new devices for every bit of ram you want to add to the cluster.
I like kubernetes because I like configuration as code, gitops, the way it abstracts over components so I can swap components out easily, the way that helm charts are an easier way of orchestrating containers, and a bunch of other things.
Clustering is merely one of many benefits of kubernetes, one that isn't particularly important to me. Although, my opinion on that has changed somewhat recently. Waiting for a reboot is annoying, since I am rebooting the whole thing and I have to wait for each service to go down or come up before the machine reboots properly. But if I was running kubernetes as a virtual machines inside incus with multiple nodes, I could update each node one by one without the whole thing going down. Or, I could snapshot them, allowing me to reboot the host without waiting for kubernetes. But these things are mostly just somewhat nice to have, rather than a core feature I really require.


When people say that linux adds a second life to bad hardware, they don't just mean making 8 gb of ram usable again. They also mean stuff like this, using dying hardware to it's last breath.
Related: https://lorenz.brun.one/dealing-with-bad-ram-on-linux/
You can mark the failing parts of ram as explicitly bad so Linux avoids them, just like with hard drives. Another way to get more lifespan out of this hardware.