Interestingly this seems like a pretty popular problem to solve.
I made a similar thing recently as well, although with the goal to handle ingress and monitoring out the box as well, whilst still able to run comfortably on a small box.
I took a fairly similar approach, leveraging docker-compose files, and using a single data directory for ease of backup (although it's on my to-do list to split out conf/data).
If there was a way to get a truly slim and easy to setup k8s compatible environment I'd probably prefer that, but I couldn't find anything that wouldn't eat most of my small servers ram
Huh, nice! I think the main problem yours and my project have is that they're difficult to explain, because it's more about the opinions they have rather than about what they do.
I'll try to rework the README to hopefully make it more understandable, but looking at your project's README I get as overwhelmed as I imagine you get looking at mine. It's a lot of stuff to explain in a short page.
It is quite slim and easy to setup k8s environment, thanks to microk8s and k3s. Microk8s comes with newer version of ubuntu. k3s is a single binary installation.
Interesting, I wasn't actually aware of that. Checking my running server with 1024mb of RAM, docker appears to be consuming ~50mb of that. This is running 17 containers of nginx, postgres, nodejs, haproxy etc.
I'm ok with this level of overhead for the benefits of containerization - several years ago I was running a bunch of PHP sites on Apache, one was compromised and this took down the rest as well. In addition to the isolation it also simplifies my deployment story significantly.
If K3s has a similar level of overhead then I should probably move to this, something for me to look into, however my understanding was that components like etcd require a fairly significant amount of resource even for tiny one node "clusters".
I made a similar thing recently as well, although with the goal to handle ingress and monitoring out the box as well, whilst still able to run comfortably on a small box.
I took a fairly similar approach, leveraging docker-compose files, and using a single data directory for ease of backup (although it's on my to-do list to split out conf/data).
If there was a way to get a truly slim and easy to setup k8s compatible environment I'd probably prefer that, but I couldn't find anything that wouldn't eat most of my small servers ram
https://github.com/mnahkies/shoe-string-server if you're interested