Containers & Orchestration
Kubernetes
Production-grade container orchestration for automated scaling, healing, and rollout.
Kubernetes (K8s) provides declarative infrastructure management at cluster scale. It continuously compares the desired state declared in manifests against real cluster state, automatically reconciling pods, load balancing traffic, rolling out zero-downtime updates, and restarting failed workloads.
Virtual Lab Ready
Automated testing sandbox running in your browser.
Launch First Lab ⚡No local installation required
Hands-on Practice
Interactive Terminal Labs
Real environment tasks with automated validation. Write real commands, verify state, and debug errors.
Run Your First Pod
Topic: Fundamentals & Pods
A Pod is one or more containers that share network and storage — the smallest thing Kubernetes runs. Create one imperatively and watch it reach the Running state.
Key Checks:
- Pod web exists
- Pod web is Running
Deploy and Scale a ReplicaSet
Topic: Deployments & Scaling
Nobody runs bare Pods in production. A Deployment keeps a chosen number of identical Pods alive and replaces any that die. Create one with 3 replicas.
Key Checks:
- Deployment web exists
- Deployment web is running exactly 3 replicas
Expose a Deployment
Topic: Services
Pods come and go, so their IPs are useless as an address. A Service gives a stable virtual IP and DNS name in front of a set of Pods.
Key Checks:
- A Service named web-svc exists
- The Service forwards to the web deployment on port 80
Diagnose a Crashing Pod
Topic: Debugging Workloads
A Pod called api in this cluster is stuck in CrashLoopBackOff. Find out why from its logs, identify the missing piece, and record it. Failure is part of the curriculum.
Key Checks:
- File ~/report/crash.txt exists naming the missing environment variable
Apply a Manifest
Topic: YAML Manifests
Imperative commands are for learning; YAML manifests are for real life. Write a Pod manifest and apply it — the declarative workflow behind GitOps and ArgoCD.
Key Checks:
- File ~/manifests/pod.yaml exists
- Pod web-yaml is Running
Keep Configuration Out of the Image
Topic: Configuration & Resource Limits
The same image runs in staging and in production - only the configuration differs. Write a ConfigMap that holds the environment-specific settings.
Key Checks:
- Directory ~/k8s exists
- File ~/k8s/config.yaml declares a ConfigMap
Set Resource Limits on a Deployment
Topic: Configuration & Resource Limits
A pod without limits can starve its neighbours or monopolise the node. Declare CPU and memory limits, apply the manifest and check the rollout.
Key Checks:
- File ~/k8s/deployment.yaml exists and declares a Deployment
- The manifest sets CPU and memory limits
System Design
Control Plane & Worker Architecture
Understand how this tool operates internally before running production workloads.
Internal Mechanics
The control plane (kube-apiserver backed by etcd, kube-scheduler, kube-controller-manager) manages desired state. Worker nodes run kubelet, container runtime, and kube-proxy to schedule and network pods.
Mental Model Rule of Thumb
Never treat Kubernetes as a black box. Understanding its boundary with the kernel, filesystem, and network stack prevents 90% of production outages.
Core Architectural Subsystems
kube-apiserver
Central REST API gateway validating and persisting state to etcd.
kube-scheduler
Assigns unscheduled Pods to optimal worker nodes based on resources & affinity.
kubelet
Agent on each node ensuring containers described in PodSpecs are running and healthy.
kube-proxy
Maintains network rules on nodes using iptables/IPVS to route ClusterIP traffic.
Developer Reference
Command Reference & Cheatsheet
Curated commands, flags, and one-liners tested for everyday operational productivity.
kubectl get pods -A -o wideList all pods across all namespaces with assigned node IPs
kubectl describe pod <pod-name> -n <ns>View detailed pod lifecycle events, conditions and errors
kubectl logs -f <pod-name> -c <container> --previousStream logs from a previous crashed container instance
kubectl apply -f manifest.yamlApply declarative resource configuration to the cluster
kubectl scale deployment/<name> --replicas=5Imperatively scale replica count of a deployment
kubectl rollout restart deployment/<name>Trigger a graceful rolling restart of all pods in deployment
Fundamental Primitives
Key Terminology & Primitives
Core abstractions you must master to communicate and build with confidence.
Pod
The smallest deployable computing unit, consisting of one or more co-located containers sharing network IP and storage.
Deployment & ReplicaSet
Declarative updates for Pods with replica management, rolling update strategies, and rollback capabilities.
Service & Ingress
Stable DNS endpoints (ClusterIP, NodePort, LoadBalancer) routing traffic to dynamic ephemeral Pod IPs.
ConfigMap & Secret
Decoupling configuration and sensitive credentials from container image binaries.
Production War-Stories
Common Pitfalls & Debugging Playbook
The exact errors that take down production systems and how to diagnose and resolve them.
CrashLoopBackOff
Symptom
Pod repeatedly crashes on startup and enters exponential backoff.
Resolution
Check 'kubectl logs <pod> --previous' and 'kubectl describe pod <pod>'. Common causes include missing environment variables, bad config files, or failed database connectivity.
ImagePullBackOff / ErrImagePull
Symptom
Kubelet cannot fetch container image from registry.
Resolution
Verify image repository name and tag spelling. Check imagePullSecrets for private registry credentials.
Reliability Standards
Production Readiness Checklist
Review this checklist before deploying workloads to staging or production clusters.
- ✓Always define requests and limits for both CPU and memory.
- ✓Configure liveness, readiness, and startup probes properly.
- ✓Use PodDisruptionBudgets (PDB) to safeguard availability during node drains.
- ✓Deploy across multiple availability zones using topologySpreadConstraints.
- ✓Enforce network policies to restrict pod-to-pod east-west traffic.
Full Curriculum Track
Master Kubernetes as part of the DevOps Engineer path
Tools do not exist in isolation. Learn how Kubernetes connects with other systems, CI/CD pipelines, and infrastructure patterns.