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
| Week | Days | Focus | Key Output |
|---|---|---|---|
| Week 1 β Docker Mastery | 1β7 | Images, containers, networking, volumes, Compose, security | Production-grade Go app containerised |
| Week 2 β Kubernetes Core | 8β14 | Pods, Deployments, Services, ConfigMaps, Ingress, RBAC | Go app running in k8s with all primitives |
| Week 3 β Advanced Kubernetes | 15β21 | Helm, StatefulSets, HPA, PVC, Operators, CRDs, Network Policies | Helm chart + autoscaling + stateful workloads |
| Week 4 β Production Toolchain | 22β30 | ArgoCD, Istio, Prometheus, Grafana, Loki, Trivy, Falco, Tekton | Full production observability + GitOps + security |
π οΈ Full tool stack this roadmap covers
| Category | Tools |
|---|---|
| Container runtime | Docker Engine, containerd, OCI spec |
| Local k8s | minikube, kind, k3d |
| Package manager | Helm 3 |
| GitOps | ArgoCD, Flux |
| Service mesh | Istio, Linkerd |
| Observability | Prometheus, Grafana, Loki, Tempo, OpenTelemetry |
| Security | Trivy, Falco, OPA/Gatekeeper, kube-bench |
| CI/CD | Tekton, GitHub Actions + k8s |
| Networking | Calico, Cilium, CoreDNS |
| Storage | Longhorn, CSI drivers |
| CLI tools | kubectl, 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