Kubernetes Learning Path

Homelab cluster built for learning Kubernetes and showcasing skills to employers.

Progress Overview

PhaseStatusTasks Completed
Phase 0: Foundation✅ Complete7/7
Phase 1: Observability✅ Complete3/3
Phase 2: Security⏳ Pending0/4
Phase 3: Scaling & Resilience⏳ Pending0/3
Phase 4: Storage⏳ Pending0/2
Phase 5: Networking⏳ Pending0/2
Phase 6: Advanced GitOps⏳ Pending0/3
Phase 7: Troubleshooting⏳ Pending0/3
Documentation⏳ Pending0/1

Overall: 10/28 tasks completed (36%)


Phase 0: Foundation ✅

#TaskDescriptionGuide
0.1Set up k3s cluster4-node cluster: 1 control-plane + 3 worker agents on VMware Workstation
0.2Bootstrap Argo CDInstall via Kustomize from bootstrap/argocd/phase-0-argocd-setup
0.3Deploy Online BoutiqueGoogle’s microservices demo (12 services) via Kustomize base + overlayphase-0-argocd-setup
0.4App of Apps patternRoot Application discovers child Applications for GitOps scalabilityphase-0-argocd-setup
0.5Traefik Ingress setupHost-based routing for boutique and Argo CD UIphase-0-argocd-setup
0.6Argo CD TLS workaroundIngressRoute + ServersTransport for HTTPS backendsphase-0-argocd-setup
0.7Project structureClean bootstrap/, apps/, infrastructure/ layoutphase-0-argocd-setup

Phase 1: Observability ✅

#TaskWhy It MattersGuide
1.1Deploy Prometheus + Grafana monitoring stackMost requested K8s skill; demonstrates metrics collection and dashboardingphase-1-observability
1.2Deploy Loki for centralized loggingShows log aggregation across microservicesphase-1-observability
1.3Create Grafana dashboards for Online BoutiqueVisual proof of monitoring competency for interviewsphase-1-observability

Completed: Reduced resource usage from ~1.18Gi to ~0.56Gi for homelab. Fixed sync issues with Argo CD.


Phase 2: Security (High Priority)

#TaskWhy It MattersStatus
2.1Implement Pod Security Standards (Restricted) on boutique namespaceShows security-first mindsetPending
2.2Create RBAC roles and ServiceAccounts per microserviceCore K8s security concept employers testPending
2.3Implement Network Policies to restrict inter-service trafficDemonstrates zero-trust networkingPending
2.4Set up Secrets management (External Secrets or Sealed Secrets)Real-world secrets handlingPending

Phase 3: Scaling & Resilience (High Priority)

#TaskWhy It MattersStatus
3.1Configure HPA on frontend and resource-intensive servicesAutoscaling is a key K8s featurePending
3.2Create PodDisruptionBudgets for critical servicesShows production readiness awarenessPending
3.3Load test frontend and observe HPA in actionPractical demonstration of scalingPending

Phase 4: Storage (High Priority)

#TaskWhy It MattersStatus
4.1Deploy a stateful app (Redis with persistence or PostgreSQL)Stateful workloads are common in real jobsPending
4.2Create StorageClass and demonstrate PV/PVC lifecycleStorage fundamentalsPending

Phase 5: Networking

#TaskWhy It MattersStatus
5.1Explore CoreDNS and service discoveryUnderstanding K8s networking internalsPending
5.2Deploy a second app with ingress routing (path-based or host-based)Multi-tenant ingress patternsPending

Phase 6: Advanced GitOps

#TaskWhy It MattersStatus
6.1Add Helm-based app to Argo CDHelm is industry standardPending
6.2Implement Argo CD ApplicationSet for multi-env (dev/staging)Shows advanced Argo CD patternsPending
6.3Configure Argo CD notifications (Slack/webhook)CI/CD integration maturityPending

Phase 7: Troubleshooting (High Priority)

#TaskWhy It MattersStatus
7.1Simulate pod failures and practice recoveryTroubleshooting is tested in interviewsPending
7.2Practice OOMKilled, CrashLoopBackOff, ImagePullBackOff debuggingCommon failure modesPending
7.3Simulate node failure and observe pod reschedulingResilience and scheduling conceptsPending

Related: Troubleshooting & Fixes for real issues encountered


Documentation

#TaskWhy It MattersStatus
8.1Document all phases in docs/ for portfolioShowcase your work to employersPending

Key Learnings So Far

Phase 0

  • K3s lightweight Kubernetes distribution for homelab
  • Argo CD App of Apps pattern for GitOps at scale
  • Traefik Ingress with host-based routing
  • Kustomize overlays for environment-specific configs

Phase 1

  • kube-prometheus-stack for metrics + dashboards
  • Loki single-binary mode for resource-constrained environments
  • StatefulSets have immutable fields (delete to update)
  • Argo CD sync can get stuck (delete Application to force fresh sync)
  • Disable unused Helm components to save memory