Hardware Setup
Complete hardware specifications and physical infrastructure for the Raspberry Pi 5 Kubernetes homelab cluster.
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ Internet / ISP │
└────────────────────────────┬────────────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────────────┐
│ UniFi Dream Router (UDR7) │
│ - Gateway/Router (10.0.1.1) │
│ - VLAN routing, DHCP, DNS forwarding │
│ - CyberSecure Enhanced (IDS, threat prevention) │
└────────────────────────────┬────────────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────────────┐
│ UniFi USW-Pro-24-PoE Switch │
│ - 24-port Gigabit PoE+ switch │
│ - Powers all 5 Pi nodes via PoE │
│ - VLAN tagging for network isolation │
└─────┬─────┬─────┬─────┬─────┬──────────────┬───────────────────┘
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌─────────────┐
│CP │ │N1 │ │N2 │ │N3 │ │N4 │ │ Synology │
│ │ │ │ │ │ │ │ │ │ │ DS925+ │
└───┘ └───┘ └───┘ └───┘ └───┘ │ NAS │
└─────────────┘
Raspberry Pi 5 Cluster Nodes iSCSI Storage
- 16GB RAM each (80GB total) (VLAN 1)
- 256GB NVMe per node
- Active cooling
- PoE powered (VLAN 10)
Legend:
CP = control-plane (10.0.10.214)
N1-N4 = node01-04 (10.0.10.235, 211, 244, 220)
Compute Cluster
Raspberry Pi 5 Nodes
Quantity: 5 nodes
Specifications per node:
- Model: Raspberry Pi 5 (16GB)
- CPU: Broadcom BCM2712 (ARM Cortex-A76 @ 2.4GHz, 4 cores)
- RAM: 16GB LPDDR4X-4267
- Storage: 256GB NVMe SSD via PCIe Gen 2 x1
- Network: Gigabit Ethernet (10/100/1000 Mbps)
- Power: PoE+ (802.3at, up to 25.5W per device)
- GPIO: 40-pin header (not used in cluster)
Total Cluster Resources:
- CPU: 20 cores (20 vCPUs, no hyperthreading; 4 cores per node × 5 nodes)
- RAM: 80GB
- Local Storage: 1.28TB NVMe (ephemeral)
- Architecture: ARM64 (aarch64)
Node Configuration
| Hostname | IP Address | Role | OS | Kubernetes |
|---|---|---|---|---|
| control-plane | 10.0.10.214 | Control Plane | Ubuntu 24.04.3 LTS | v1.35.0 |
| node01 | 10.0.10.235 | Worker | Ubuntu 24.04.3 LTS | v1.35.0 |
| node02 | 10.0.10.211 | Worker | Ubuntu 24.04.3 LTS | v1.35.0 |
| node03 | 10.0.10.244 | Worker | Ubuntu 24.04.3 LTS | v1.35.0 |
| node04 | 10.0.10.220 | Worker | Ubuntu 24.04.3 LTS | v1.35.0 |
Expansion Hardware (per node)
PoE + PCIe M.2 HAT:
- Model: Waveshare PoE M.2 HAT+ (B)
- PoE Standard: IEEE 802.3at (PoE+)
- Power Input: 37-57V DC from PoE
- Power Output: 5V DC to Raspberry Pi (up to 25W)
- M.2 Interface: PCIe Gen 2 x1 (supports NVMe SSDs)
- Form Factor: M.2 2280 (22mm x 80mm)
- Additional Features:
- RTC (Real-Time Clock) with CR1220 battery
- Cooling fan header (4-pin PWM)
- Status LEDs for power and activity
Cooling:
- Model: Raspberry Pi Active Cooler
- Type: Aluminum heatsink with integrated PWM fan
- Fan Speed: Variable (PWM controlled)
- Noise Level: < 20 dBA at full speed
- Thermal Performance: Maintains < 60°C under load
- Connector: 4-pin connector to Waveshare HAT
NVMe Storage:
- Model: Raspberry Pi SSD 256GB
- Interface: NVMe 1.3 (PCIe Gen 3 x4 capable, limited to Gen 2 x1 by Pi 5)
- Actual Speed: ~400 MB/s read/write (PCIe Gen 2 x1 limitation)
- Form Factor: M.2 2280 NVMe
- Usage: Root filesystem, container image cache, ephemeral storage
Storage Infrastructure
Synology NAS
Model: Synology DS925+
Specifications:
- CPU: AMD Ryzen R1600 (dual-core @ 2.6 GHz, turbo to 3.1 GHz)
- RAM: 12GB DDR4 ECC (upgraded from 4GB, upgradeable to 32GB)
- Drive Bays: 4x 3.5"/2.5" SATA (hot-swappable)
- Network: 2x Gigabit Ethernet (link aggregation active on switch ports 2 & 3)
- Expansion: 2x M.2 NVMe slots - 1x 1.6TB NVMe cache deployed (
synology-iscsi-retain-ssd)
Network Configuration:
- IP Address: 10.0.1.204 (VLAN 1 - Home network)
- Hostname: synology-nas.local
- Management: DSM 7.3-x (HTTPS port 5001)
- Protocols:
- iSCSI Target (port 3260) - Primary Kubernetes storage
- NFS v3/v4
- SMB/CIFS
- SNMP v3 (port 161) - Monitoring
Storage Configuration:
- RAID Type: SHR (Synology Hybrid RAID) or RAID 1
- Total Capacity: Varies by drive configuration (document your setup)
- Kubernetes Usage:
- iSCSI LUNs for Persistent Volumes
- Synology CSI driver provisioning
- Storage classes:
synology-iscsi-delete,synology-iscsi-retain - Snapshot support via CSI VolumeSnapshots
Kubernetes Integration:
- CSI Driver: Synology CSI v1.2.1
- Features:
- Dynamic PVC provisioning
- Volume expansion
- Volume snapshots (Kubernetes VolumeSnapshot v1 API - snapshot.storage.k8s.io/v1)
- Volume cloning
- Backup: Velero with CSI snapshots (storage-native)
Networking
Switch
Model: UniFi USW-Pro-24-PoE
Specifications:
- Ports: 24x Gigabit Ethernet (RJ45)
- PoE Ports: 16x PoE+ ports (802.3at)
- PoE Budget: 400W total
- Uplink: 2x 10G SFP+ ports
- Management: UniFi Network Application (on UDR7)
- Features:
- VLAN support (802.1Q)
- Link aggregation (LACP)
- Port mirroring
- Spanning Tree Protocol (STP/RSTP)
- PoE scheduling and power management
Cluster Usage:
- Ports 1-5: Raspberry Pi cluster nodes (PoE powered)
- Port Capacity: Each Pi draws ~15-20W via PoE
- Total PoE Draw: ~75-100W for cluster
- VLAN: Tagged VLAN 10 (Kubernetes network)
Previous Hardware:
- TP-Link TL-SG1008MP (replaced December 2025)
- Migration reason: More ports, better PoE budget, UniFi integration
Gateway/Router
Model: UniFi Dream Router (UDR7)
Key Features:
- WAN/LAN: Gigabit Ethernet ports
- WiFi: WiFi 6 (802.11ax) integrated access point
- Processor: Quad-core ARM Cortex-A53
- Management: UniFi Network Application (built-in)
- Security: CyberSecure Enhanced by Proofpoint
- IDS/IPS
- Ad-blocking
- Threat prevention
- Content filtering
Network Isolation:
- 5 VLANs configured (see Network Overview)
- Kubernetes cluster on isolated VLAN 10 (10.0.10.0/24)
- Firewall rules allow Kubernetes → NAS (VLAN 1) for storage access
Power & Cooling
Power Budget
Raspberry Pi Cluster (via PoE):
- Per node idle: ~8-10W
- Per node under load: ~15-20W
- Total cluster idle: ~40-50W
- Total cluster load: ~75-100W
Active Cooling:
- Fan power: ~0.5W per node (~2.5W total)
- Controlled by CPU temperature (PWM)
- Typical operating range: 30-50% fan speed
- Full speed only during sustained high load
UniFi Switch:
- Base power consumption: ~30W
- PoE power budget: 400W total (cluster uses ~25%)
- Passive cooling (fanless design)
Synology DS925+:
- Idle: ~20-25W (HDD spun down)
- Active: ~35-45W (during I/O operations)
- Cooling: 2x 92mm fans (temperature controlled)
Total Infrastructure Power:
- Minimum (idle): ~90-105W
- Typical (moderate load): ~140-180W
- Maximum (full load): ~200-250W
Power Efficiency:
- PUE (Power Usage Effectiveness): ~1.05-1.1 (no additional cooling)
- Annual Energy Cost: ~$150-200 USD (at $0.12/kWh, 24/7 operation)
Uninterruptible Power Supply (UPS):
- Model: APC 1500C (APC Back-UPS Pro 1500VA)
- Capacity: 1500VA / 900W
- Runtime: ~30-45 minutes at typical load (140-180W)
- Protected Equipment:
- UniFi USW-Pro-24-PoE Switch
- Synology DS925+ NAS
- UniFi Dream Router (UDR7)
- Features:
- Automatic Voltage Regulation (AVR)
- LCD status display
- USB monitoring connection
- Graceful shutdown support for NAS
- Purpose: Protects against power outages, ensures clean shutdown of critical storage
Thermal Management
Raspberry Pi Cooling:
- Ambient Target: 20-25°C room temperature
- CPU Temps (idle): 40-50°C
- CPU Temps (load): 55-70°C
- Thermal Throttling: 80°C (CPU scales down)
- Critical Shutdown: 85°C (rarely reached with active cooling)
- Fan Curve:
- 0-50°C: 30% speed (quiet)
- 50-65°C: 50% speed
- 65-75°C: 80% speed
- 75°C+: 100% speed
NAS Cooling:
- Drive Temps (normal): 30-40°C
- Drive Temps (max): 50°C (triggers fan ramp-up)
- System Fan: Variable speed based on HDD temperature
- Airflow: Front-to-back through drive bays
Switch Cooling:
- Passive cooling (fanless design)
- Operating Temp: 0-40°C ambient
- Heat dissipation: Aluminum chassis acts as heatsink
Cluster Rack Environment:
- Ventilation: Open-frame rack (no enclosure)
- Airflow: Natural convection + active cooling per node
- Noise Level: < 30 dBA (whisper quiet in home office)
Physical Layout
Rack Mounting:
- Type: 19" open-frame rack or shelf mount
- Height: ~4U total for cluster + switch
- Cable Management:
- Ethernet: Cat 6 patch cables (color-coded per VLAN)
- Power: PoE eliminates need for individual power supplies
Workspace Integration:
- Location: Home office / lab space
- Acoustics: Quiet enough for shared workspace
- Accessibility: Front-panel access for monitoring LEDs
- Maintenance: Hot-swappable components (drives, nodes)
Compute Performance
CPU Benchmarks (per node):
- Single-core: ~2400 PassMark score
- Multi-core: ~8500 PassMark score
- Cluster Total: ~42,500 PassMark score
Memory Performance:
- Bandwidth: ~25 GB/s per node (LPDDR4X-4267)
- Latency: ~80ns (ARM typical)
Storage Performance:
Local NVMe (per node):
- Sequential Read: ~400 MB/s
- Sequential Write: ~400 MB/s
- Random IOPS: ~50K IOPS (limited by PCIe Gen 2 x1)
Network Storage (iSCSI via Synology):
- Sequential Read: ~110 MB/s (Gigabit network limit)
- Sequential Write: ~110 MB/s
- Latency: ~1-2ms (over 1GbE)
- Protocol Overhead: iSCSI ~5-10% vs raw block
Resource Allocation
Current Kubernetes Usage:
- Pods Running: ~110 pods cluster-wide
- CPU Requests: ~15-20% of total capacity
- Memory Requests: ~40-50% of total capacity (32-40GB allocated)
- Persistent Storage: ~50-100GB on Synology NAS
Headroom:
- CPU: ~60-70% available for workload scaling
- Memory: ~40-50% available
- Storage: Expandable (add drives to NAS or expand RAID)
Hardware Reliability
MTBF (Mean Time Between Failures):
- Raspberry Pi 5: ~100,000 hours (theoretical)
- NVMe SSDs: ~1.5M hours (per manufacturer specs)
- Synology NAS: ~100,000 hours (with redundant drives)
- Network Equipment: ~200,000+ hours
Redundancy:
- Compute: 5 nodes (4 workers + 1 control plane) - can tolerate loss of 1–2 worker nodes without workload disruption
- Storage: RAID on NAS (can lose 1 drive without data loss)
- Network: Single switch (planned: add redundant uplink)
- Power: APC 1500C UPS protecting switch, NAS, and router (deployed)
Maintenance Schedule:
- Firmware Updates: As needed (monitor for critical Raspberry Pi EEPROM updates)
- OS Updates: Monthly (Ubuntu security patches)
- Kubernetes: Every 3-6 months (tested in staging first)
- NAS DSM: Quarterly or on security advisories
- Drive Health: Monthly SMART checks
Upgrade Path
Completed Upgrades:
- UPS (Uninterruptible Power Supply) for graceful shutdown - APC 1500C deployed
- Redundant network uplink (second switch or LAG) - Active on switch ports 2 and 3
- NAS RAM upgrade (4GB → 12GB for better cache) - Upgraded to 12GB DDR4 ECC
- M.2 NVMe cache on NAS for read acceleration - 1.6TB drive deployed (volume:
synology-iscsi-retain-ssd)
Future Expansion:
- Add 1-2 more Pi 5 nodes (scale to 7 nodes)
- Upgrade to 10GbE network (switch + NIC for NAS)
- Larger NAS or secondary NAS for tiered storage
- GPU-accelerated node (Jetson Orin or similar for ML workloads)
Bill of Materials (BOM)
| Category | Item | Quantity | Approx. Cost (USD) |
|---|---|---|---|
| Compute | Raspberry Pi 5 (16GB) | 5 | $500 |
| Raspberry Pi Active Cooler | 5 | $25 | |
| Waveshare PoE M.2 HAT+ (B) | 5 | $150 | |
| Raspberry Pi NVMe SSD 256GB | 5 | $200 | |
| Storage | Synology DS925+ | 1 | $550 |
| HDD/SSD (varies by config) | 4 | $400-800 | |
| NAS RAM Upgrade (8GB module) | 1 | $40 | |
| M.2 NVMe SSD 1.6TB (cache) | 1 | $150 | |
| Network | UniFi USW-Pro-24-PoE | 1 | $600 |
| UniFi Dream Router (UDR7) | 1 | $200 | |
| Cat 6 Ethernet Cables | 10 | $30 | |
| Power | APC Back-UPS Pro 1500VA | 1 | $250 |
| Accessories | 19" Rack or Shelf | 1 | $50-150 |
| Cable Management | - | $20 | |
| Total | ~$3,215-3,715 |
Prices approximate and subject to change. Excludes shipping, taxes, and optional accessories.
Comparison to Cloud Costs
Equivalent Cloud Resources:
- AWS: 5x t4g.xlarge (ARM, 4 vCPU, 16GB each) = ~$600/month
- GCP: 5x e2-standard-4 = ~$500/month
- Azure: 5x B4ms = ~$450/month
Break-even Analysis:
- Hardware cost: ~$3,000
- Monthly power: ~$12.50-16.67 (≈$150-200/year)
- Break-even vs cloud: 6-7 months
- 5-year TCO savings: ~$25,000+- 5-year cloud cost: ~$27,000-36,000
- 5-year hardware + power: ~$3,900-4,200
- 5-year TCO savings: ~$23,000-32,000
Advantages over Cloud:
- ✅ No egress fees
- ✅ Full hardware control
- ✅ Learning opportunity
- ✅ Low latency (local)
- ✅ Privacy (data stays local)
Cloud Advantages:
- ✅ No hardware maintenance
- ✅ Instant scaling
- ✅ Geographic distribution
- ✅ Managed services
Last Updated: 2026-02-12 Hardware Version: v2.1 (UPS deployed, NAS upgraded: 12GB RAM + 1.6TB NVMe cache, LAG active)