| pick your distro, get ZFS on root
kldload — your platform, your way, free
Source
← Back to Overview

Cluster — hardware as a service.

This is where it gets fun. Multiple kldload nodes connected via WireGuard, orchestrated by Salt, optionally running Kubernetes. Build a cluster in the morning. Blow it away with a cron job at 8 PM. Sell the hardware time. Rebuild at 4 AM. Bare metal as disposable as cloud instances.

The architecture

Four WireGuard planes

wg0 — Enrollment only (how new nodes join)
wg1 — Management (Salt, SSH, web UI)
wg2 — Workload (Kubernetes, containers)
wg3 — Storage (NFS, iSCSI, ZFS replication, monitoring)

Each plane is a separate encrypted tunnel on a separate port. Management traffic never touches the workload network. Storage never touches the internet. Network segmentation without VLANs, without managed switches, without complexity.

Four highways, each for a different type of traffic. No intersections. No congestion.

The recipe

# Node 1: Install as master (hub for all WireGuard planes)
# Node 2-N: Install as workers (connect to master via wg0)

# On the master — Salt accepts all nodes automatically
salt-key -A -y

# Deploy a configuration to all nodes
salt "*" state.highstate

# Optional: add Kubernetes
kubeadm init --pod-network-cidr=10.244.0.0/16
# Workers join via wg2 (workload plane)
kubeadm join 10.79.0.1:6443 --token ...

# Hardware as a service: tear down at 8 PM, rebuild at 4 AM
# crontab -e
0 20 * * * /usr/local/sbin/cluster-teardown.sh
0  4 * * * /usr/local/sbin/cluster-rebuild.sh

What you'll learn

Network segmentation

Why management and workload traffic should never share a wire. How WireGuard makes this trivial without enterprise switches. Why four planes is the sweet spot.

Orchestration

Push (Ansible) vs. pull (Puppet) vs. event-driven (Salt). Why Salt's ZeroMQ bus scales where SSH-based tools don't. When Kubernetes is the right answer and when it's overkill.

Disposable infrastructure

The cloud taught us servers are cattle, not pets. kldload brings that mindset to bare metal. If rebuilding takes 5 minutes, why maintain state? Blow it away. Start fresh. The cron job is your scaling policy.