AI infrastructure · the platform and the system under audit
The K8s homelab
A 32-core Debian Trixie cluster on repurposed hardware, bootstrapped with kubeadm and Ansible.
Currently running Kubernetes v1.31.14 with Flannel CNI and MetalLB.
- 4 machines
- 32 cores
- 56 GB RAM
- 2 TB NFS storage
- 1 GPU · GTX 1070
How this lab grew
-
Phase 1 Done
Self-hosting
The first real workload was a home media server (Jellyfin with GPU transcoding, Audiobookshelf). Running it taught me the basics: MetalLB, NGINX ingress, NFS storage on TrueNAS, persistent volumes.
- Ingress
- Storage
- GPU
-
Phase 2 Ongoing
Operating it properly
Ansible bootstrap for every node, Tailscale for access, and real failures written up as post-mortems: a crashed node, a silent kubelet, a read-only filesystem.
Evidence
-
Phase 3 Next
AI platform & audit lab
Local LLM and RAG on the GPU node, with monitoring and capacity notes. The same cluster becomes the system under audit: controls, evidence, and test reports mapped to OWASP Top 10 for LLM.
- LLM
- RAG
- Audit
Architecture
The cluster as it stands after phase 1.
Machines
Repurposed hardware, one role each.| Role | Host | Hardware | Specs |
|---|---|---|---|
| Control plane · GPU | k8s-cp-01 | ASUS ROG G702V | i7 · 16 GB RAM · GTX 1070 |
| Worker · utility | k8s-worker-01 | Dell Latitude | i5 · 8 GB RAM · 128 GB SSD |
| Worker · workhorse | k8s-worker-02 | ASUS Tower | i7 · 16 GB RAM · 160 GB HDD |
| Storage · NFS server | k8s-data-1 | HP ProLiant | Xeon · 16 GB ECC · 2 TB SSD · TrueNAS |
Usage
Snapshot · October 2026Cluster CPU24%
8 / 32 cores
GPU memory · GTX 107065%
5.2 / 8 GB
TrueNAS storage82%
1.64 / 2.0 TB
Captain’s log
Changes and fixes, newest first.-
Lid switch & Ansible fixes
Configured
systemd-logindto ignore the laptop lid switch. Updated the Ansible bootstrap playbook to handle this gracefully across nodes. -
Tailscale routing migration
Following a filesystem crash on
k8s-worker-01, migrated the Tailscale subnet router tok8s-worker-02to keep the cluster reachable.
Stack
- Provisioning
- kubeadm + Ansible
- Runtime
- containerd
- Networking
- Flannel CNI · MetalLB
- Ingress
- NGINX
- Storage
- NFS on TrueNAS
- Remote access
- Tailscale