Kubernetes Home Lab
A highly available bare-metal Kubernetes (K3s) cluster engineered from the ground up using a hybrid architecture of Raspberry Pi 4s and Intel NUC nodes. This project demonstrates advanced infrastructure-as-code principles, utilizing Ansible for base node configuration and ArgoCD for declarative GitOps application deployments. The cluster features decentralized persistent storage through Longhorn, automated SSL certificate generation via cert-manager, and a Traefik ingress controller, creating a production-like environment for hosting private services and experimenting with cloud-native primitives.
Architecture Overview
The cluster is designed for resilience and learning. It comprises 3 control-plane nodes and 4 worker nodes, mixed architectures (ARM64 and AMD64).
Networking is handled via Cilium for advanced eBPF-based routing and observability, while MetalLB provides on-premise LoadBalancer capabilities.
- Control Plane: 3x RPi 4 (8GB) running etcd cluster.
- Worker Nodes: 4x Dell Optiplex Micro (i5, 32GB RAM).
- Storage: Longhorn providing distributed block storage over 10Gbps local network.
GitOps Configuration
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: infrastructure
namespace: flux-system
spec:
interval: 10m0s
path: ./infrastructure
prune: true
sourceRef:
kind: GitRepository
name: home-ops
# Wait for CRDs to be applied before moving on
wait: true