Free tutorial · 26 lessons
Kubernetes Tutorial
Learn Kubernetes hands-on: architecture and kubectl, pods, namespaces and labels, Deployments, rolling updates and rollbacks, scaling, StatefulSets, DaemonSets, Jobs and CronJobs, Services, DNS, Ingress and network policies, ConfigMaps, Secrets, requests and limits, probes, persistent storage, RBAC, autoscaling, troubleshooting, Helm and Kustomize. Every example was run with kubectl against a real cluster.
Kubernetes Basics
- What Is Kubernetes? — What Kubernetes does, the problems it solves, and when you don't need it.
- Cluster Architecture — The control plane (API server, etcd, scheduler, controllers) and the nodes (kubelet, container runtime, kube-proxy).
- kubectl Essentials — The kubectl commands you'll use daily: get, describe, apply, delete, logs, exec, and output formats.
- Pods — The smallest deployable unit: one or more containers sharing a network namespace and volumes.
- Namespaces, Labels and Selectors — Organise resources with namespaces, and connect them with labels and selectors.
- Kubernetes History & Versions — Where Kubernetes came from, how it became the standard container orchestrator, its release cadence and support windows, and which versions are current.
Workloads
- Deployments — Run stateless applications with a desired number of replicas that Kubernetes keeps alive.
- Rolling Updates and Rollbacks — Ship a new version gradually, watch it, and roll back with one command.
- Scaling — Change the number of replicas manually, and understand what autoscaling adds.
- StatefulSets — Stable names, ordered startup and per-replica storage for databases and clustered systems.
- DaemonSets — Run one pod on every node (or a chosen set of nodes) for log shippers, monitoring agents and network plugins.
- Jobs and CronJobs — Run batch work to completion, retry on failure, and schedule recurring tasks.
Networking
- Services — Give a changing set of pods one stable name and IP: ClusterIP, NodePort, LoadBalancer and headless Services.
- DNS and Service Discovery — How pods find Services by name: cluster DNS names, namespaces and search domains.
- Ingress and the Gateway API — Route external HTTP traffic to Services by host and path, with TLS, through an Ingress controller or a Gateway.
- Network Policies — Default-deny traffic between pods and allow only what each service needs.
Configuration and Resources
- ConfigMaps — Keep configuration out of images: environment variables and files from ConfigMaps.
- Secrets — Store credentials in Secrets, understand that base64 is not encryption, and protect them properly.
- Resource Requests and Limits — Requests drive scheduling, limits cap usage; set both well to avoid OOMKills, throttling and noisy neighbours.
- Liveness, Readiness and Startup Probes — Tell Kubernetes when a container is ready for traffic, when it's stuck, and when it's still starting.
- Persistent Volumes and Claims — Request durable storage with PersistentVolumeClaims and let StorageClasses provision it.
Operating Kubernetes
- RBAC: Who Can Do What — Roles, ClusterRoles and bindings for people and service accounts, and how to check permissions.
- Horizontal Pod Autoscaling — Scale replicas with load using the HorizontalPodAutoscaler, and what it needs to work.
- Troubleshooting Pods — A systematic way to debug Pending, CrashLoopBackOff, ImagePullBackOff and not-ready pods.
- Packaging with Helm and Kustomize — Template and customise manifests per environment: Helm charts and Kustomize overlays.
- Where to Go Next — Courses, recipes and interview practice to go deeper with Kubernetes.