In my last post, I posed the question of what I was doing. Over the past couple days of messing about with OKD, k3s, and Microk8s I’ve come to the conclusion the answer to that question is…overthinking things.

A Matter of Course

Over the past decade, I’d come under the impression that containerization and orchestration were the modern means of deploying anything at all, and everything I’d done in the past was simply legacy. To some extent, that’s true; but it’s a very dogmatic and monochromatic view that pits the pursuit of perfection against the exercise of that which is sufficient, let alone good; and it has proven, over the past couple years, to cause me to spin my wheels and burn out many times.

Prologue

Let’s face it. This all started when I began using a to-do app for GNOME called Planify. It has support for syncing with CalDAV, and so I thought “why not set up nextcloud” - despite the fact that my syncing needs are already handled, and I don’t really have a need for cloud-style storage. Naturally, that turned into Kubernetes? For what - in my use case - would be an over-engineered CalDAV server. That only makes sense within the aforementioned bias.

The thought process goes like this:

  • I need CalDAV
  • Feels weird to dedicate an entire Xeon E3-1245 v5 and 32 GB of RAM to CalDAV
  • NextCloud does CalDAV, and it’s fairly widely deployed
  • But NextCloud’s heavy, so it should have its own fairly large VM
  • But that’s old hat!
  • Let’s deploy Kubernetes!

Back to Sanity

What I’ve set up now, is a simple virtualization server. I’ve got one VM hosting a CentOS install root, and an installation kickstart. I use this to provision other VMs in conjunction with virt-install. And finally, CalDAV is provided by Radicale, in another VM. Almost exactly how I did things ten years ago - just streamlined a little.

The best part? It works; and if it didn’t I’d understand why.

The Road Ahead

I fully intend to keep playing with Kubernetes. The past few days have been a lot of fun, and I still think it’s important for me to learn Kubernetes. But the point of learning to use Kubernetes is to learn to use Kubernetes - not to fight Longhorn’s inexplicable assertions of a lack of engine images, or some asymmetric routing glitch. Kubernetes loves to run in a VM, and I intend to let it, until such time as I become comfortable with troubleshooting Kubernetes deployments.

My scouting hasn’t been in vain, though. I now know the best course of action to be Microk8s with MetalLB and Microceph from the start. That gets me a feature-complete cluster in under 15 minutes, leaving ample time to actually use the system.