K3s Home Lab

my kubernetes homelab

this is a post for my home lab kubernetes cluster.
main purpose of lab is to learn and have fun.

Cluster provisioning

K3s: Lightweight Kubernetes distribution running on mixed ARM/x86 architecture.

Hardware

i use one Raspberry Pi 5 control plane and two Intel NUC8i7 worker nodes.

❯ k get nodes
NAME     STATUS   ROLES                  AGE     VERSION
athena   Ready    control-plane,master   8d      v1.33.4+k3s1
nuc242   Ready    <none>                 7d23h   v1.33.4+k3s1
nuc243   Ready    <none>                 7d18h   v1.33.4+k3s1

Features

  • Advanced networking - Cilium CNI with eBPF for high-performance networking
  • GitOps workflow - All configurations managed through Git
  • Encrypted secrets - External Secrets Operator with HashiCorp Vault for secure secret management
  • Database management - PostgreSQL clusters via CloudNative-PG operator
  • Complete observability - Grafana dashboards with Prometheus metrics
  • Automated TLS - Let’s Encrypt certificates via cert-manager
  • Zero-config internet access - Cloudflare Tunnels without firewall changes
  • Automatic dependency updates - Renovate bot for keeping applications current
  • Development ready - Preconfigured dev container for immediate productivity

No pods are allowed to be scheduled on the control plane.

Repo structure

├── apps
│   ├── athena
│   └── base
├── clusters
│   └── athena
├── databases
│   ├── athena
│   └── base
├── infrastructure
│   ├── configs
│   └── controllers
└── monitoring
    ├── configs
    └── controllers

decided to use Flux CD and their best practices.
my repo is set up according to this guide.

https://fluxcd.io/flux/guides/repository-structure/

and following this example.

https://github.com/fluxcd/flux2-kustomize-helm-example

my DevOps Odyssey

“Σα βγεις στον πηγαιμό για την Ιθάκη, να εύχεσαι να ‘ναι μακρύς ο δρόμος, γεμάτος περιπέτειες, γεμάτος γνώσεις.” - Kavafis’ Ithaka.



my K3S Homelab

2025-01-12

Series:lab

Categories:Kubernetes

Tags:#k3s, #flux, #cilium, #gitops, #lab


K3s Home Lab: