Hero4Hire
TutorialThree-node Debian Kubernetes home lab

Cheat sheet

Commands

GoalCommandNotes
View nodeskubectl get nodes -o wideConfirm all three servers are Ready.
Inspect K3s snapshotssudo k3s etcd-snapshot lsRetain the matching server token off-cluster.
Check Fluxflux get all -AReconcile errors are deployment failures.
Force Flux source syncflux reconcile source git flux-systemUse after a Git push while diagnosing.
Watch serviceskubectl get svc -A --watchFind MetalLB-assigned addresses.
Check PostgreSQL backupskubectl get cronjob,job -n postgresA successful job is not a tested restore.
Test Garageaws --endpoint-url http://garage.garage.svc.cluster.local:3900 s3 lsUse a least-privilege test key.
Inspect GPU capacitykubectl describe node lab-03Look for nvidia.com/gpu.
View GPU Operatorkubectl get pods -n gpu-operatorValidation and device plugin should be healthy.

Concepts

TermReminder
Control-plane HAThree K3s servers keep etcd quorum after one server loss; it does not replicate application data.
Storage nodelab-01 hosts intentionally single-instance persistent workloads. A failure requires restore.
Internal ingressMetalLB/LAN-facing Traefik with IngressClassName: internal; no Cloudflare Tunnel route.
Public ingressClusterIP public Traefik reached only by cloudflared, with IngressClassName: public.
GitOpsGit declares desired state; Flux continuously applies it.
SOPS/ageStore encrypted secrets in Git; retain the private age key outside the cluster.
PostgreSQL recoverypgBackRest full/differential backups plus WAL provide point-in-time recovery.
Garage recoveryRestore dated logical S3 copies from SFTP into a temporary bucket before replacing production data.
GPU taintPrevents non-GPU workloads from landing on lab-03 unless they opt in.

Resources

On this page