Building a Resilient Kubernetes Cluster on Mini-PCs

📅 Published: February 2024 ⏱️ Read time: ~8 minutes
Kubernetes
Networking
Linux
Infrastructure
DevOps

Overview

This project documents my journey building a multi-node Kubernetes cluster from scratch using budget-friendly mini-PCs (Raspberry Pi 4s and Intel NUCs). The goal was to simulate real-world DevOps and SRE challenges in a homelab environment.

Problem Statement

As an embedded systems engineer transitioning to cloud-native infrastructure, I needed a hands-on environment to:

Architecture & Hardware

Hardware Stack:

Key Design Decisions:

$ kubeadm init --pod-network-cidr=10.244.0.0/16 $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml $ kubeadm join control-plane-endpoint:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

Networking Challenges

One of the biggest learnings was managing network policies and service discovery across a heterogeneous cluster:

Solution: Implemented network policies explicitly allowing traffic between namespaces, and tuned CoreDNS caching to reduce lookup times from 200ms to 15ms.

Lessons Learned

Current State & Future Work

The cluster is now running 40+ containerized applications, with 99.7% uptime over 6 months. Future improvements include:

Resources & Code

View on GitHub →
Infrastructure-as-Code Repository →
Kubernetes Resource YAML Files →

← Back to Projects