Learn the basics, then the concepts, then how to run it
Most EKS guides start with a cluster already running and jump straight to production tricks. This track starts at the very beginning, and assumes no Kubernetes experience at all. It explains why Kubernetes exists and gets you running it on your own laptop for free. Then it teaches the core concepts one at a time, moves to Amazon EKS to build a real platform, and finishes with the challenges that only show up once you're operating it. Each module builds on the ones before it, with diagrams wherever it helps to see how requests, permissions, and deploys move through the system.
Every module is built to be worked through, not just read. Each one opens with what you'll learn, includes hands-on Try it commands, recaps the key terms, and ends with a five-question pop quiz: three questions on the ideas and two real-world scenarios, shuffled into a new order every time. Score 4 out of 5 to pass.
- New to Kubernetes, or to containers? Start at Module 01 and read in order. Parts 1 and 2 run on a free cluster on your laptop.
- Know Kubernetes, new to Amazon EKS? Skim Part 2, then start at Module 10.
- Already run EKS? Go straight to Part 4, Operating in production, or to whichever challenge you're facing.
Parts 1 and 2 need nothing but a laptop. Parts 3 and 4 draw on running Amazon EKS across four separate environments (Development, QA, Staging, Production) for a single platform, with every name and account removed. Where a module links to a case study, that's the real engagement the pattern came from.
Basics
No experience needed. Get Kubernetes running on your own laptop for free, and learn to read and write the files that describe everything in a cluster.
-
01
Start here →
Why Kubernetes Exists, Starting from a Single Container
Containers in five minutes, the problems that appear with hundreds of them, what Kubernetes does about it, and when you don't need it.
-
02
Read module →
Your First Cluster: A Free Local Lab with kind
Install the tools, create a three-node cluster on your laptop, run an app, and watch Kubernetes replace a pod you delete.
-
03
Read module →
Reading Kubernetes YAML and Working with kubectl
The four fields every object has, just enough YAML, labels and selectors, namespaces, kubectl apply, and the everyday commands.
Core concepts
How Kubernetes works, on any cluster. Everything later relies on these, so read them in order.
-
04
Read module →
How a Kubernetes Cluster Actually Works
Desired state and controllers, the control plane and nodes, and what happens step by step when you run kubectl apply.
-
05
Read module →
Pods, Deployments & Rollouts
How your app actually runs: Deployments, ReplicaSets, probes, configuration, and a rolling update step by step.
-
06
Read module →
Services & Cluster Networking
How traffic finds your pods: Services, cluster DNS, the Service types, Ingress, and network policies.
-
07
Read module →
Storage & Other Workload Types
Volumes, PersistentVolumeClaims and StorageClasses, StatefulSets for apps that need a stable identity, and DaemonSets, Jobs, and CronJobs.
-
08
Read module →
Namespaces, RBAC & Service Accounts
Who can do what: the checks every request passes, Roles and bindings, the built-in roles, and identities for pods.
-
09
Read module →
Packaging Apps with Helm and Kustomize
One app across several environments with Kustomize overlays, and installing, upgrading, and rolling back packaged software with Helm.
Kubernetes on Amazon EKS
Moving to EKS, then turning an empty cluster into a platform that's safe to deploy to. Read these in order if you're setting one up.
-
10
Read module →
Kubernetes on Amazon EKS: What AWS Runs, and What Changes
What AWS runs for you, VPC IP addresses for pods, signing in with IAM, the path from an ALB to a pod, and a lab cluster you create and delete.
-
11
Read module →
Multi-Environment Clusters & EKS Access Entries
Separate clusters per environment, and giving people and pipelines access with access entries instead of a shared superuser.
-
12
Read module →
The Platform Add-on Layer
The add-ons every new cluster needs (load balancing, DNS, metrics, autoscaling, logs, storage), each with its own IAM role.
-
13
Read module →
Workload Identity & Secrets
Giving each workload its own AWS permissions with EKS Pod Identity or IRSA, and getting secrets into pods without putting them in Git.
-
14
Read module →
Ingress Architecture & Its Cost Mechanics
When to share one ALB across services, when a separate controller helps, and moving from the retired ingress-nginx to Gateway API.
Operating in production
The challenges that only show up once real users depend on the platform: delivery, capacity, monitoring, incidents, and upgrades. Read in order, or go straight to what you need.
-
15
Read module →
Container Delivery: Build, Tag, Push, Promote
Build an image once and promote that exact image by digest, plus the registry login detail that only breaks in CI.
-
16
Read module →
GitOps with Argo CD
Letting Argo CD keep each cluster matching Git, so a deploy is a reviewed pull request and a rollback is a revert.
-
17
Read module →
Scaling Without Surprises: Requests, Autoscaling & Cost
Why resource requests drive scheduling, autoscaling, and the bill, and how pod and node autoscaling fit together.
-
18
Read module →
Observability: Knowing Something's Wrong First
What to collect from a cluster, the few signals worth alerting on, and alerts that wake people for real problems only.
-
19
Read module →
Day-2 Operations & Incident Triage
Checking a rollout actually worked, and a repeatable sequence for triaging a stuck or failing deployment.
-
20
Read module →
Cluster Upgrades Without Drama
Checking for removed APIs first, then upgrading the control plane, add-ons, and nodes in an order that keeps workloads running.
The whole platform, as three flows
This is the map, and it makes the most sense once you've finished Part 2. Here's the whole system end to end, as three flows. Press Play step by step on any of them to follow it hop by hop. Every box names the module that explains it, so if something breaks at one hop, that's the module to open.