← projects
// project

Homelab Kubernetes Cluster

Self Hosted Kubernetes Cluster using Gitops via FluxCD. Core infrastructure technologies include Talos Linux, Cilium, FluxCD, Traefik, and cert-manager

homelab · kubernetes · distributed-systemsrepo ↗

Summary

To support more complex deployments in my home environment, I wanted to add a k8s cluster to my stack. While this is realistically overkill for my usecases, its far more educational to implement a cluster from scratch, and gives hands-on insights for critical architectural decisions without serious consequences.

Architecture

  • Cluster Type: Bare-metal Kubernetes
  • Topology:
    • 1 control plane node
    • 4 worker nodes

Core Principles

  • GitOps-first: All cluster state managed declaratively via Git
  • K8s Native: Talos Linux for secure and minimalist host management.
  • Automation-driven: Minimal manual intervention after bootstrap
  • Composable design: Infrastructure and applications separated cleanly

GitOps & Deployment

  • Controller: FluxCD

  • Structure:

    • clusters/ → cluster-specific state (bootstrapping, sync)
    • infrastructure/ → core services (networking, ingress, secrets)
    • apps/ → workloads and services
  • Deployment Model:

    • HelmReleases + Kustomizations
    • Fully declarative reconciliation loop
  • OS/Base: Talos Linux

  • Networking: Cilium (CNI with advanced networking and L2 announcements)

Current Direction / Expansion

  • Validate Repo security before making it public
  • Distributed storage via Longhorn
  • Storage Backups to NAS
  • Deeper observability stack
  • Additional workloads and platform services