My First Kubernetes: k3s 'cluster' on 3 Orange Pi Zero 3's
raymii.org
raymii.org
Ultimately, I ripped it apart and stuck to using my x86 servers and now run Talos Linux[1] which is currently my favourite way to do Kubernetes on bare metal.
With Pi4, the cluster services just used too much of the available compute and though it was a fun project, want practical for my home lab.
Now the Pi5 is available (and I have some), I might look at adding them to my existing clusters for some mixed-architecture fun.
[0]https://2byt.es/post/bantamcloud/01-build/ [1] https://www.talos.dev/
Booted it few months ago, but only this week got to actually configure and use it.
Have you come across Longhorn[0]?
I wanted to have a look at that for storage when I was using Pis as it theoretically should be lighter-weight than Ceph, who knows. Didn't get around to it though.
To each it’s own.
I went through my own journey to get an understanding with k8s, in a homelab setting. It started with MicroK8s on a VM running on a 2011 macbook pro I had lying around. That was painful, but I eventually had something useful running, until it weirdly self combusted one day and weeks of hard work resulted in ssh failing to connect because the K8s instance seemed to have deleted itself from the VM. I think it was trying to tell me something.
I decided to persist, but this time with k3s, and no VM on an outdated Mac. Instead I went with an outdated HP Thinclient. A bargain on ebay, with extra RAM. That worked much better. Now I have a bunch of great self hosted software for home media, development servers, git repos, docker servers, CI/CD pipelines. With storage managed by a NAS. All managed via simple helm charts. It's really useful. I discovered Tailscale along the way, that opened up a whole new world of self hosting abilities.
I get the nerd sniping, I've seen k8s abused in work situations too, but underneath it, people just wanted to learn.
I had a similar situation recently trying to bake shokupan for the first time. There was a new bread maker. It made perfect rising normal bread. But trying the Shokupan recipe produced a damp brick. A total failure. I persisted, read a ton of recipes and blogs, watched countless youtube videos. I was convinced it was an equipment or method issue. Eventually, 3 damp bricks later, I realised the yeast was out of date. This was the first thing people recommended to check, but I thought I knew better because "it worked on my machine" with the normal bread. Anyway, the 4th attempt with new yeast produced a perfect loaf. And I learnt a ton of other useful info for baking great bread along the way. The elation when it finally worked, and I had amazing fluffy home made bread, was a very similar sense of reward and accomplishment to finally getting some program or system to work.
I thought about this a while back when there was a global shortage of Raspberry Pis. I'd see people with like 8 of them in a toy cluster and thought it was a shame because some people might have a real use for one but couldn't get one.
You can use things like docker-machine or Vagrant to easily spin up a bunch of VMs for things like this. Also you can use Rancher to automatically provision a cluster for you (but I guess you won't learn as much that way).
Having 3 nodes is quite redundant if they're all VMs on top of the same raspberry
These are also portable and quiet so you can stick it in your bedroom and leave it running 24/7 without feeling like you're in a data center (so it's more accessible to people in shared housing)
Actually, you might have a better chance of finding a fanless NUC than running latest RPi fanless.
My brandless fanless mini PCs from 2016 are doing great. i5, 32 GB RAM etc. For a lot more oomph, get https://store.minisforum.com/products/minisforum-um790-pro?v... (though Ryzen 9 -> fan).
I was thinking more these use cases where it's "quantity" over "quality" where you want multiple nodes to test/learn a topology but they end up sitting idle (well, idle CPU and using some RAM)
> I run the Orange Pi Boards without a Micro SD Card, they boot up via PXE with an NFS root file system, so I cannot use overlayfs2. Therefore during installation I provide an extra parameter to use the native shapshotter. Also some etcd timeouts are raised.
After a certain scale of course, no need for k8s when an app can run on single VM and barely get 1rps.
It is certainly an “edge“ though.
Many have tried forcing it (when all you know is Kube, everything looks like a Kube problem) though.
Both single-node (yeah, sue me) and multi-node have been working great, required minimal maintenance and have a super straight forward install procedure