The migration was not just putting apps into pods. It was separating application workloads from the core infrastructure those workloads depend on.
Original work date
June
The problem
The lab moved from scattered Docker hosts toward a k3s-based application platform. Kaveh and Thoma stopped being the center of the app world. Workloads moved into Kubernetes. The platform started to look more intentional.
The environment
- App: Kubernetes (k3s), Docker
- Host: Kaveh, Thoma, Navia, Chiori, Shenhe, Ningguang, yelan, kirara, albedo
- Cluster / namespace:
- Version:
- Relevant config:
What failed
But the important decision was what did not move into k3s.
The fix
DNS stayed in LXCs. PostgreSQL and MariaDB stayed external. Storage stayed on Zhongli. Backups stayed separate. Pangolin/Newt continued handling public access. Infisical handled secrets. Traefik handled internal .fndhome ingress. That separation kept the cluster from depending on itself for the things it needs to survive.
Final state
What I learned
Kubernetes was not the boss fight. Storage, secrets, databases, ingress, and rollback were the boss fight.
Useful commands / config
paste commands here