The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 23: Shutdown of the Baremetal Ceph Cluster

Wherein I migrate the last remaining data off of my baremetal Ceph cluster and shut it down. This is part 24 of my k8s migration series. I set up my baremetal Ceph cluster back in March of 2021, driven by how much I liked the idea of large pools of disk I could use to provide S3 storage, Block devices and a POSIX compatible filesystem. Since then, it has served me rather well, and I’ve been using it to provide S3 buckets and volumes for my Nomad cluster. Given how happy I was with it, I also wanted to continue using it for my Kubernetes cluster. ...

March 29, 2025 · 21 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 22: The end of Nomad

Wherein I shut down my Nomad cluster for good. This is part 23 of my k8s migration series. It is finally done, on the 13th of March I shut down my Nomad cluster. I had originally set it up sometime around 2021. The original trigger was that I had started to separate the Docker containers running public-facing services and the purely internal ones. Around that setup, I had constructed a bunch of bash scripts and a couple of shared mounts. It wasn’t pretty, plus the Homelab had recently turned from a utility into a genuine hobby. In short, increased complexity was actually welcomed. 😁 ...

March 23, 2025 · 6 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 21: Replacing Uptime Kuma with Gatus

Wherein I replace Uptime Kuma on Nomad with Gatus on Kubernetes. This is part 22 of my k8s migration series. For my service monitoring needs, I’ve been using Uptime Kuma for a couple of years now. Please have a look at the repo’s Readme for a couple of screenshots, I completely forgot to make some before taking my instance down. 🤦 My main use for it was as a platform to monitor the services, not so much as a dashboard. To that end, I gathered Uptime Kuma’s data from the integrated Prometheus exporter and displayed it on my Grafana Homelab dashboard. ...

March 12, 2025 · 9 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 20: Migrating Mastodon

Wherein I migrate my Mastodon instance to the k8s cluster. This is part 21 of my k8s migration series. Mastodon is currently serving as my presence in the Fediverse. You can find me here, although I’m pretty sure that most of my readers are coming from there already. 😄 If you’re at all interested in joining a genuine community around Homelabbing, I can only recommend to join the fun by following the HomeLab or SelfHosted hashtags and wildly following everyone appearing on there. It’s a great community of rather friendly people enjoying everything from a lonely Pi to several 42U 19" racks full of equipment. If you’re interested in learning more about my own experience with the Fediverse and hosting my own single-user instance, have a look at these older posts. ...

March 6, 2025 · 8 min · Michael
A screenshot of a Grafana time series plot. It shows the time between 23:30 and 09:00 for the throughput of my Ceph cluster. It tops out at almost 100 MB, but is on average more around 65 MB. The high throughput happens between approximately 00:00 and 08:50.

Ceph: My Story of Copying 1.7 TB from one Cluster to Another

A couple of weeks ago, I migrated my Jellyfin instance to my Kubernetes cluster. This involved copying my approximately 1.7 TB worth of media from the baremetal Ceph cluster to the new Rook Ceph cluster. And I’d like to dig a bit into the metrics and try to read them like the entrails of a slain beast during a full moon at the top of a misty mountain. Just this much, the portents don’t look good for one of my HDDs. ...

March 4, 2025 · 17 min · Michael