2022-2024 K3s Homelab Improvements

2022-2024 K3s Homelab Improvements

I wanted to give my readers a bit of an update on what's been going on in my homelab over the last 24 months. There were big promises of more articles in late fall and early winter 2022-2023, but that never materialized due to the holidays and an immense amount of personal time lost to my family receiving a Nintendo Switch for Christmas 2022 from Teri's folks.

Hundreds of hours have been lost to Legend of Zelda: Breathe of the Wild, Zelda: Tears of the Kingdom, a slew Mario games, and a host of other titles, so it's good to be getting back to the blog to release some new and updated content, though the break from IT-related exploits was much needed, and I'm still working though those great Nintendo games too!

Also, the family and I packed up, left Southern Nevada, and moved to Central Iowa... 2023 was a busy year.

This article is meant to be a short and sweet list of recent enhancements.

Enhancements

I've made several major improvements:

  1. I now manage all of my physical and virtual systems (on-premise and in the cloud) from a single private GitLab project using Ansible Infrastructure as Code (IaC).
  2. Teleport has been integrated into my homelab environment, so connecting to secure shells, web apps, databases, and the Raspberry PI Kubernetes (K3s) cluster is both secure and effortless.
  3. I've replaced my K3s storage provider which was using Synology-backed NFS with Rancher Longhorn, which is more resilient than NFS and allows me to test some more advanced storage configurations.
  4. I've consolidated systems, services, and homelab roles to increase available resources to maximize my available hardware, without making too many serious compromises, will further reducing complexity. This included hosting certain workloads in the Akamai Linode Cloud.
  5. I've completely automated the OS updates, patching, and configuration of all of my homelab endpoints using Ansible. This includes full automation of updates/kernel replacement of my Raspberry Pis K3s cluster that boots from the network with Synology-backed storage.
  6. I've integrated split-horizon DNS on my Synology NAS and have created a Tailscale Tailnet for my homelab. I am experimenting with Tailscale as way to resolve edge cases for connectivity where Teleport has protocol gaps.
  7. I've replaced my old Celeron-based mini PC with a new Beelink MINIS Pro 12, that has NVMe storage, doubled the RAM, and an N100 processor. This has resulted in a massive improvement Docker-in-Docker multi-arch build times. There's also plenty of resources for additional VMs and/or persistent containers.
  8. I've picked up a new Raspberry Pi 5, so that I can release an updated companion guide on network booting the new SBC.
  9. I've replaced my Synology DS716+ with a DS923+ that has an NVMe read/write cache pool. I've also maxed out the memory in the DS923+ and am now hosting my "homelab helper" PC as a VM. This upgrade has also improved the amount of IOPS that my networking-booting Pi cluster can handle and has further reduced latency.
  10. I've enabled zram on all of my Linux systems, servers, and PIs to help eliminate swapping to disk or network-based storage.

Next Steps

I'm interested in working on a leveraging GitLab's Kubernetes agent to drive GitOps-style development on my Raspberry Pi K3s cluster, as well as working more with the Go (golang) programming language. Also, I'm apt to share the methods, code, and madness of how I succeeded in automating my entire hybrid-cloud homelab environment.





Is this heaven? No, it's Iowa...

Is this heaven? No, it's Iowa...