Build your own bare-metal ARM cluster
blog.alexellis.io
blog.alexellis.io
That means you'll want to choose a platform that's very well supported by its parent company if you don't want to get stuck on an obsolete kernel in a year.
Hardkernel, who design and produce popular ARM SoCs, chose to produce x86 based platforms in the future for this reason.
I really wish we would see a standard Arm kernel instruction set come along and get adopted by every manufacturer who isn't doing something unusual enough to justify a custom architecture.
Haven't heard of any of the single-board platforms adopting it, though.
But...
There is a price to pay. Clustering isn't easy, convenient or without overhead. As soon as you cross the boundaries of what a single machine can give everything suddenly has a price, either in terms of latency, throughput, complexity or loss of control. Clustering software tries to hide some of this but under the hood these will always be there.
Here are some good hints about what limitations you are operating under no matter how good your distributed environment:
https://en.wikipedia.org/wiki/Fallacies_of_distributed_compu...
...doesn't Debian ship some multiarch/QEMU/binfmt plumbing to make this work? Binfmt to taste the binary, see that it's i386/amd64, and then launch QEMU (and associated ARM multiarch libs) with user-mode emulation?
Slow as dirt I'm sure but it'll work.
Also, while OpenStack/K8 could seem to be a reason having something like this, I discovered it is a bit overkill for home needs. For that part, I'd go for a small server instead and manage it manually (no shame).
https://thenewstack.io/how-low-can-kubernetes-go-rancher-arm...
Unfortunately, none of the tech referenced in this articled is available yet and should be released end of February. There is a more interesting part that isn't referenced in this article and the is that we'll have two variants of k8s for ARM. One is RKE which is our CNCF certified k8s distribution. The other will be based off k3s (github.com/ibuildthecloud/k3s) which is an optimized k8s distribution for small clusters (smaller memory, easier setup, etc). I expected the second will be far more suited for something like this project.
I guess with today's multi-core CPUs, it wasn't thought to be worthwhile, but it could still come in handy for resource-constrained systems like the Pi.
My cluster: https://www.youtube.com/watch?v=lZDUe-_mzHc
A tiny SDcard with just U-Boot on it, configured to netboot, has been actually reliable.
This should be backed up by some numbers. I have seen plenty of benchmarks now that pretty much show that many workloads on ARM64 are a lot faster.
(also the RK3399 based ROCKPro64 is even more awesome, bigger form factor, but two A72 cores for actually good performance! Oh and some other manufacturers even made RK3399 based RPi-sized boards!)
That being said, I had to buy an Asus Tinkerboard with 2GB RAM to serve as the cluster master because 1GB RAM was a bit short. My master node went below 100MB of free RAM and pod evictions (of kube-system pods) started to happen. If I were to do it again, I think I would use only Tinkerboards just for the convenience of having the same OS/hardware on each node.
[0] https://gist.github.com/alexellis/fdbc90de7691a1b9edb545c17d...