PPrepLearn
Progress Β· 0/4 sections

🐳 🐳 30-Day Docker + Kubernetes Roadmap

4 min read Β· Notion

🐳 From zero to production-grade container orchestration. Docker internals, Kubernetes architecture, Helm, Istio, ArgoCD, Prometheus, Grafana, and the full cloud-native toolchain. Aligned with your Go backend stack.


πŸ“Œ What this roadmap covers

This is not a β€œrun docker run hello-world” tutorial. Every day you build real systems, break them intentionally, fix them, and understand WHY the design decisions were made. By Day 30 you will be able to design, deploy, and operate production container infrastructure at scale.


πŸ—ΊοΈ 30-Day Plan at a glance

WeekDaysFocusKey Output
Week 1 β€” Docker Mastery1–7Images, containers, networking, volumes, Compose, securityProduction-grade Go app containerised
Week 2 β€” Kubernetes Core8–14Pods, Deployments, Services, ConfigMaps, Ingress, RBACGo app running in k8s with all primitives
Week 3 β€” Advanced Kubernetes15–21Helm, StatefulSets, HPA, PVC, Operators, CRDs, Network PoliciesHelm chart + autoscaling + stateful workloads
Week 4 β€” Production Toolchain22–30ArgoCD, Istio, Prometheus, Grafana, Loki, Trivy, Falco, TektonFull production observability + GitOps + security

πŸ› οΈ Full tool stack this roadmap covers

CategoryTools
Container runtimeDocker Engine, containerd, OCI spec
Local k8sminikube, kind, k3d
Package managerHelm 3
GitOpsArgoCD, Flux
Service meshIstio, Linkerd
ObservabilityPrometheus, Grafana, Loki, Tempo, OpenTelemetry
SecurityTrivy, Falco, OPA/Gatekeeper, kube-bench
CI/CDTekton, GitHub Actions + k8s
NetworkingCalico, Cilium, CoreDNS
StorageLonghorn, CSI drivers
CLI toolskubectl, kubectx, kubens, k9s, stern, kustomize

⚑ Quick start: local Kubernetes

# Option 1: kind (Kubernetes IN Docker) β€” recommended for this roadmap
brew install kind
kind create cluster --name dev --config kind-config.yaml
 
# Option 2: minikube
brew install minikube
minikube start --driver=docker --cpus=4 --memory=8g
 
# Option 3: k3d (k3s in Docker, fastest)
brew install k3d
k3d cluster create dev --agents 2
 
# Essential CLI tools
brew install kubectl kubectx stern k9s kustomize helm
# kind-config.yaml β€” 3-node cluster for realistic testing
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    kubeAdmConfigPatches:
      - |
        kind: InitConfiguration
        nodeRegistration:
          kubeletExtraArgs:
            node-labels: "ingress-ready=true"
    extraPortMappings:
      - containerPort: 80
        hostPort: 80
      - containerPort: 443
        hostPort: 443
  - role: worker
  - role: worker

πŸ“Š My progress

  • Current day: Day 1 of 30
  • Docker images built: 0
  • k8s deployments shipped: 0
  • Helm charts written: 0
  • Production tools configured: 0

πŸ”– Phase pages

  • 🐳 Week 1 β€” Docker Mastery (Days 1–7)
  • ⎈️ Week 2 β€” Kubernetes Core (Days 8–14)
  • πŸ“¦ Week 3 β€” Advanced Kubernetes (Days 15–21)
  • πŸš€ Week 4 β€” Production Toolchain (Days 22–30)

πŸ“˜ Essential kubectl commands reference

# Context management
kubectl config get-contexts
kubectl config use-context dev
kubectx dev                          # shortcut with kubectx
kubens kube-system                   # switch namespace
 
# Get resources
kubectl get pods -n default -o wide
kubectl get all --all-namespaces
kubectl get events --sort-by=.lastTimestamp
 
# Inspect
kubectl describe pod <name>
kubectl logs <pod> -f --tail=100
kubectl exec -it <pod> -- /bin/sh
kubectl port-forward svc/<name> 8080:80
 
# Apply / delete
kubectl apply -f manifest.yaml
kubectl delete -f manifest.yaml
kubectl diff -f manifest.yaml        # preview changes
 
# Debug
kubectl run debug --image=busybox --rm -it -- sh
kubectl top pods
kubectl top nodes
 
# k9s β€” terminal UI for kubernetes (use this daily)
k9s

πŸ“… Docker + K8s Daily Tracker

Related