I've a relatively simple homelab, set up to primarily run virtualized workloads.
I have four Raspberry Pi4-8GB's set up as the core of a Kubernetes cluster. The cluster also includes three LXD container nodes, running on the virtualization servers. This gives me a seven node multi-architecture cluster, maximizing the flexibility for running workloads of either arm64 or amd64 architecture.
There are also six "servers" and a Synology NAS. The servers are used as virtualization servers, while the NAS is used as a file server.
The Kubernetes cluster is the primary location for running workloads on the homelab. The core of the cluster are four Raspberry Pi4-8GB's, and this is where most of the cluster workloads are intended to be run. However, as it is multi-architecture I can also run amd64 workloads on the LXD container nodes.
A number of applications are running on LXD containers and virtual-machines, usually under nested docker instances. These are applications that might not run correctly under Kubernetes, applications under test or development, or simply standalone hosts.
There are six virtualization servers, set up to run workloads on;
There are also two mini PCs and two old laptops being used as additional virtualization servers.
The NAS houses four 3TB HDD's, which are set up in a Synology SHR configuration, providing approximately 9TB of usable space. The NAS provides file shares and media storage for the network. There is also an NFS share, which provides persistent storage to the applications running on the Kubernetes cluster.
There is a 2TB external USB HDD attached to the NAS that is used as a destination for both the NAS backups, as well as server duplicity rsync backups from across the LAN.
This diagram shows the applications and services currently running on the homelab, and how they are structured.
I use a number of tools for monitoring the applications and services running on the homelab, including Prometheus and Grafana, Monitorix, LXDWare, Nagios Core, Uptime Kuma, as well as a number of command line management utilities for Kubernetes, LXD, KVM and Docker.
I'm currently in the process of getting Uptime Kuma set up to provide additional monitoring as well as limited notifications.
I am also using Lens to provide monitoring of the health and state of the Kubernetes cluster. This is only temporary and will soon be moving Kubernetes monitoring to Prometheus and Grafana.
(created: 2021-06-10, last modified: 2023-01-29 at 08:58:09)