The author, a DevOps engineer, migrated a home media server stack to a Kubernetes cluster running on two mini-PCs. The primary machine, a Beelink SER8 with Ryzen 7 and 64 GB of RAM, runs Proxmox, hosting three virtual machines for the cluster and additional service containers. A second mini-PC with an N100 processor and 16 GB of RAM handles monitoring, DNS, and provides a 1 TB USB drive via NFS.
The media stack includes Jellyfin, Seerr, Radarr, Sonarr, Prowlarr, FlareSolverr, qBittorrent, and Bazarr. The author also developed three custom services: a media library monitor, a web interface for it, and a Java-based version of Radarr. These custom services are managed by an AI agent that writes the code, while the author handles deployment and security checks.
The infrastructure platform comprises Nexus for Docker images and packages, Vault for secrets and certificates, Gitea for repositories, Jenkins for CI/CD, SonarQube for code analysis, and Prometheus, Loki, and Grafana for monitoring. Istio manages the service mesh with mTLS encryption, while MetalLB and ingress-nginx handle traffic routing.
The migration process involved configuring Persistent Volumes (PV) and Persistent Volume Claims (PVC) to ensure configuration persistence on NFS. The author encountered issues with containerd configuration and disk space management, which were resolved by adjusting registry settings and expanding virtual machine disk partitions from 15 GB to 30 GB.
To bypass network restrictions and access external services like TMDB, the author implemented a proxy node in the cluster that establishes a tunnel to a remote VPS. This setup ensures that the arr-stack services maintain constant internet connectivity for metadata retrieval and torrent tracking.





