For quite a few years, I've had a Raspberry Pi sitting on my local network, running a bunch of Docker'ized applications. It's managed by a bunch of shell scripts, and while it works, it's a bit hacky[1]The rPi also struggles a bit sometimes, since one of the things I run is Sonatype Nexus, and "pig for memory, runs like a dog" doesn't even begin to describe it
, and I've had a long-standing item on my to-do list to be a Big Boy and Do Things Properly i.e. run it all on Kubernetes ![]()
My workload is nowhere near big enough to warrant a full Kubernetes cluster, so I'll be using K3s, which is intended for smaller workloads, and for extra style and difficulty points, I'll be running it on Fedora CoreOS, a minimal OS designed for running container workloads. In particular, it's immutable, so you don't e.g. apply updates and install new packages, you blow the whole thing away and replace it with a new image.
There are any number of tutorials out there on the intarwebs for setting up both K3s and CoreOS, but it's a pretty trivial process. However, the devil is, as always, in the details[2]AKA it's always DNS SELinux
, and since there are quite a few niggling issues when setting up a usable server, I've documented the whole process here. It's relatively straight-forward once you've figured out how things work; the tricky thing is, of course, figuring out how things work ![]()
Tutorial index
- In which we set up the server
- In which we install CoreOS
- In which we install K3s
- In which we deploy a demo app
- In which we set up the Traefik dashboard
- In which we enable TLS for our demo app
- In which we enable SSH access into our demo container
- In which we install Open VM Tools into CoreOS
- In which we (don't) install other extra packages and tools into CoreOS
- In which we don't fix the problem of slow shutdowns
- In which we also don't configure the firewall
- Odds and ends.
If you liked this tutorial, there's another one here about setting up a bare-metal K8s cluster.
References
| ↑1 | The rPi also struggles a bit sometimes, since one of the things I run is Sonatype Nexus, and "pig for memory, runs like a dog" doesn't even begin to describe it |
|---|---|
| ↑2 | AKA it's always |










I am a 

Wow! These tutorials are amazing. I neglected my Raspberry Pi 2 for a year or more, and when I came back to it, it was dead. I never troubleshot it to see if it was the SD card, power supply, or rge board itself. Instead, I bought a Raspberry Pi 4, but I still haven't put it together... I'm lazy! Maybe this summer!
Thanks for the education and for Awasu, still everyday software for me!
No worries. There are lots of little tutorials online for each piece, but rather less that brings everything together, documenting everything you need to do to stand up a complete, working server.
A big reason for doing this was to get off a Raspberry Pi
They're great little machines, but I'm back on the road again soon, and I need to take some of the apps with me. And I was also getting completely fed up with so much stuff not being available for ARM, and having to jump through hoops compiling stuff from source :-/
But it's definitely worth getting yours going again, they're loads of fun, especially if you start doing a bit of hardware stuff