Skip to content

Homelab

Introduction

Server Rack

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 two virtual machine nodes, running on the virtualization servers. This gives me a six node multi-architecture cluster, maximizing the flexibility for running workloads of either arm64 or amd64 architecture.

There are also six physical servers and a Synology NAS. The servers are used as virtualization servers, while the NAS is used as a file server.

Kubernetes Cluster

  • Kubernetes cluster (24 cores, 40GB RAM)
    • Multi-architecture
    • Raspberry Pi4-8GB (x4)
      • 4 cores (16 cores arm64 node total)
      • 8GB RAM (32GB RAM arm64 node total)
    • amd64 VM containers (x2) (running on the virtualization servers)
      • 4 cores (8 cores amd64 node total)
      • 4GB RAM (8GB RAM amd64 node total)

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 virtual machine nodes.

Raspberry Pi4 Cluster

Homelab K8s Cluster

Proxmox Nodes

The six virtualization servers are running Proxmox, configured as a six node cluster, with HA provided by using shared storage backed on an NFS share from the file server. There are a number of applications running on the virtualization servers, either on LXC containers or 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 services.

Proxmox Nodes

Virtualization Servers

There are six virtualization servers, set up to run workloads on;

  • LXC containers or VM's, or
  • Docker containers (nested within an LXC container or a VM).

Reddwarf

  • Dell T610
    • Dual Xeon CPU (24 cores)
    • 64GB RAM
    • Primary virtualization server

Starbug

  • Retired gaming PC
    • i5-6500 CPU (4 cores)
    • 32GB RAM

Servers

There are also two mini PCs and two HP Elitedesk 800 G3 Mini's being used as additional virtualization servers.

Skutter Servers

HP 800 G3 Minis

Skutter01

  • Beelink GK35
    • J4105 CPU (4 cores)
    • 8GB RAM

Skutter02

  • Beelink GK35
    • J4105 CPU (4 cores)
    • 8GB RAM

Hudzen

  • HP Elitedesk 800 G3 Mini
    • Intel i5-6500 CPU (4 cores)
    • 16GB RAM

Rimmer

  • HP Elitedesk 800 G3 Mini
    • Intel i5-6500 CPU (4 cores)
    • 16GB RAM

NAS

  • Synology DS420J
  • Seagate ST3000DM NAS HDDs (x4)

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 are also NFS shares, one which provides persistent storage to the applications running on the Kubernetes cluster and the other as shared storage for the Proxmox cluster.

There is a 2TB external USB HDD attached to the NAS that is used as a destination for the NAS backups.

NAS

Homelab Services

This diagram shows the applications and services currently running on the homelab, and how they are structured.

Services

Monitoring

I use a number of tools for monitoring the applications and services running on the homelab, including Prometheus and Grafana, Monitorix, Nagios Core, Uptime Kuma, as well as a number of command line management utilities for Kubernetes, Proxmox and Docker.

Prometheus & Grafana

Prometheus and Grafana

Monitorix

Monitorix

Nagios Core

Nagios

Uptime Kuma

I'm currently in the process of getting Uptime Kuma set up to provide additional monitoring as well as limited notifications.

Uptime Kuma

Lens

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.

Lens


Created: 2021-06-10 12:00
Last update: 2024-07-23 19:15