K8s Cluster Journal
Documenting my Kubernetes homelab journey - from initial cluster setup to running production workloads with GPUs, GitOps, and self-hosted AI.
Building a Long-Term Metrics Stack with Mimir (and Debugging a Kafka OOM)
Extending the monitoring stack with Grafana Mimir for long-term metric storage - and debugging a Kafka message size mismatch that crash-looped the distributor.
LLM Observability with Langfuse
Self-hosting Langfuse for LLM observability - tracking prompts, completions, costs, and latency across all AI-powered features.
Cluster Backups with Velero and CloudCasa
Implementing a robust backup strategy with Velero for cluster state and CloudCasa for managed backup orchestration.
Adding a GPU Node for AI Workloads
Expanding the cluster with a dedicated GPU node running 4x NVIDIA GPUs for self-hosted AI inference with Ollama and Triton.
Automatic TLS with cert-manager and Let's Encrypt
Setting up cert-manager for automatic TLS certificate provisioning - no more manual certificate management.
Migrating from Path-Based to Subdomain Routing
A major architectural change - moving all portfolio applications from path-based routing to dedicated subdomains with proper API routing.
GitOps with ArgoCD: Declarative Deployments
Setting up ArgoCD for GitOps-style deployments and configuring Traefik ingress with TLS for all applications.
Day 1: Setting Up k3s on My VPS
Initial cluster setup with k3s - bootstrapping a production-grade Kubernetes cluster on a single VPS node.
From Metabase to Prometheus: Cluster Monitoring Done Right
Replacing Metabase with Prometheus for cluster monitoring - lessons learned from OOMKilled pods and building a proper observability stack.
Helm Charts and External Secrets for Production-Ready Deployments
Setting up Helm charts for all portfolio applications and configuring External Secrets Operator for secure secret management.
