Free ยท Lesson 2 of 12

Local clusters

kind, minikube, and Docker Desktop can each give you a cluster. They do not behave like a cloud load balancer.

Sign in to save your place.

Picture it this way

Three practice harbours. kind builds the docks out of containers. minikube builds a small harbour with a driver you choose. Docker Desktop hides a harbour inside the Docker app. The boats are still Pods.

Three tools, three limits

kind runs Kubernetes nodes as containers. It needs a container runtime such as Docker. kind create cluster is enough for a short-lived cluster. A Service of type LoadBalancer does not get a public address by itself.

minikube starts a local cluster. The driver depends on the operating system: Docker is common, and hypervisor drivers exist where the OS supports them. minikube tunnel is how a LoadBalancer Service gets an address, and that tunnel is not an AWS, Google, or Azure load balancer.

Docker Desktop can enable Kubernetes on macOS (Apple silicon and Intel), Windows, and Linux. The context name is often docker-desktop. The Kubernetes minor version is the one that Desktop release bundled. Read that release note. Turning Kubernetes on uses extra memory.

Tool Good for Do not assume
kind A disposable cluster and CI LoadBalancer just works
minikube A single-node cluster with addons The tunnel is a cloud load balancer
Docker Desktop A cluster next to other containers The bundled minor never changes

kubectl and version skew

Install kubectl from the Kubernetes release matching the cluster you will talk to. The project documents a version skew policy: kubectl is supported only a small number of minor versions away from the API server. kubectl version shows both sides when the cluster is reachable.

kubectl config current-context tells you which cluster the next command will hit. If you have kind, minikube, and Desktop installed, the wrong context is the usual mistake.

NetworkPolicy will not prove itself here

kind's default networking does not enforce NetworkPolicy. A policy object will sit in the API and do nothing. The security lesson says how to practice that for real. Do not treat a successful kubectl apply as proof the policy is enforced.

Pick a local cluster

  1. kind
  2. minikube
  3. Desktop

Step 1 of 3kind: nodes are containers. Fast to delete. Weak stand-in for cloud load balancers.

Lab: see the node you actually have

Run the block that matches the tool you started. Then confirm the context before you apply anything else.

kind create cluster --name dfd-lab
kubectl config current-context
kubectl get nodes

# or: minikube start
# or: enable Kubernetes in Docker Desktop, then:
# kubectl config use-context docker-desktop
kubectl version

Concept summary

Knowledge check

You enabled Kubernetes in Docker Desktop on Windows. What should you read for the minor version?

Why might a LoadBalancer Service stay pending on kind?

What does `kubectl config current-context` protect you from?

Official sources

Checked against the linked documentation in October 2026. A later release can move a flag, a price, or a supported pair. Use the page for the version you installed.