Free lesson · CKA Prep Program · Module 1: Exam strategy and speed
Local Clusters: kind, k3d and minikube
Browser clusters expire; a local cluster waits for you. This lesson compares kind, k3d and minikube, then practices the create-and-destroy loop so daily reps cost nothing.
10 min reading
Objectives
- Pick kind, k3d or minikube for a stated practice goal
- Bring up a throwaway cluster and tear it down cleanly
- Load a local image without a registry round-trip
- Explain why local clusters complement, not replace, the browser labs
Why this matters
The Killercoda scenarios and Play-with-Kubernetes sessions in this program are free and expire: sessions time out, queues form, progress evaporates. A local cluster on your own machine has no clock, no queue, and full admin rights including the control plane, which browser sandboxes never grant. Daily fifteen-minute reps on etcd restores or upgrades need that permanence.
Concepts
kind runs Kubernetes nodes as Docker containers: one command creates a multi-node cluster, images load with kind load docker-image, and deletion is instant. It is the default pick for CKA reps because it is fast, scriptable, and matches upstream test tooling. k3d is the same idea over k3s: even lighter, even faster startup, slightly less vanilla. minikube is the veteran: drivers for docker, virtualbox and more, addons for ingress and metrics with one command, heavier but closest to a real single node with extras.
The selection rule fits the goal. Pure kubectl speed and object reps: kind. Tight laptop or fastest boot: k3d. Addons (ingress, dashboard, metrics) without manual installs: minikube. All three lose to managed clusters on realism and to browser labs on convenience; their job is reps, not fidelity.
Worked example
kind loop, the daily-rep shape:
kind create cluster --name reps
kubectl cluster-info --context kind-reps
kind load docker-image nginx:alpine --name reps
kubectl create deployment web --image=nginx:alpine
kubectl get nodes
kind delete cluster --name reps
docker ps # empty: nothing left behindName every practice cluster (reps, etcd-drill, upgrade) so contexts never collide, and delete when done: orphaned kind networks are the classic reason Docker starts acting strange a week later.
Exam notes
Local clusters run newer or older Kubernetes than the exam; always confirm behavior against the exam version in the docs, especially API removals. Anything requiring multiple real machines (kubeadm HA joins, real etcd quorum loss) cannot be rehearsed locally with fidelity; rehearse the commands locally and the judgment in the browser scenarios. And never practice destructive drills (disk pressure, kubelet stops) on a cluster holding anything you care about.
Quick check
A 4-question self-check. Your answers stay on your device, are never stored or sent. Only a passing score (for example 3 of 4) is saved, and only to unlock lesson progress: at least 3 correct is required before a lesson counts as complete. It never counts toward any certification assessment.
Lesson feedback
No published feedback yet.
Log in and complete the lesson to leave feedback.
Exercise
Create a named kind (or k3d/minikube) cluster, load one local image, run a deployment from it, then delete the cluster and confirm Docker is clean. Write down which of the three tools you picked and the one sentence reason.
Pass criteria
Named cluster created and deleted; deployment ran from a locally loaded image; Docker clean afterwards; tool choice recorded with a goal-based reason.