Black Friday · 27 Nov 2026

Up to 90% off selected certifications.

One time only offer for a very precious career goal. Limited coupons, waitlist first.

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 behind

Name 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.

Sources

Log in to track progressFree account: stores only your lesson progress and quiz results.