How to Set Up a Professional Kubernetes (v1.32+) Lab in 2 Minutes with Kind

06 December 2025 · 3 min read

If you’ve been in the DevOps world for a while, you surely remember the “old school” way of learning Kubernetes: downloading VirtualBox, fighting with Vagrant, waiting for full operating system images to download, and praying that your laptop had enough RAM to handle three simultaneous virtual machines.

It worked, yes. But it was slow, heavy, and painful for your computer’s fans.

In 2025, that no longer makes sense. The industry has matured, and so have local development tools. Today I want to show you how I set up my lab environments using Kind (Kubernetes in Docker).

This is the same configuration I use in the new updated edition of my book “Once Upon a Time Kubernetes”: lightweight, fast, and compatible with version 1.32+.

Why Kind and not Minikube or Vagrant?

Although Minikube is fantastic, Kind shines because of its architecture: it runs Kubernetes nodes as Docker containers, not as full virtual machines.

  1. Speed: A multi-layer cluster starts in less than 60 seconds.
  2. Resources: No more fixed reservations of 4GB of RAM per node. Docker manages memory dynamically.
  3. Realism: It allows us to simulate complex architectures (High Availability, Ingress, Storage Classes) by editing a simple YAML file.

Prerequisites

To follow this tutorial, make sure you have installed on your machine:

  • Docker (v27.0.0 or higher).
  • kubectl (v1.32.0 or higher).
  • kind (v0.30.0 or higher).

Let’s Get to Work: Your Cluster in 3 Steps

We are going to deploy a cluster with 1 Control-Plane node and 2 Worker nodes, simulating a real production environment.

1. The Source Code

You don’t have to invent anything from scratch. I have released the book’s infrastructure code on GitHub so anyone can use it. Clone the repository:

git clone https://github.com/mmorejon/once-upon-a-time-k8s.git
cd erase-una-vez-k8s

Note: Make sure you are on the main branch to access the modern version with Kind.

2. The Automation

Inside the repository, you will find a script designed to automate tedious tasks (creating the cluster, installing the network CNI, configuring the default StorageClass, etc.).

Run it with the following command from the project root:

./bash/cluster.sh create

3. The Result

In less time than it takes to make a coffee, you will see how Kind downloads the node image (kindest/node:v1.32.0), spins up the containers, and automatically configures your kubectl context.

You can verify it manually by checking the status of the nodes:

kubectl get nodes

Expected output:

NAME                 STATUS   ROLES           AGE     VERSION
book-control-plane   Ready    control-plane   2m10s   v1.32.0
book-worker          Ready    <none>          1m45s   v1.32.0
book-worker2         Ready    <none>          1m45s   v1.32.0

If you see all three nodes running version v1.32, congratulations! You now have a complete Data Center running on your laptop.


What Now? (The Next Level)

Having the cluster up and running is just the beginning. An empty cluster adds no value; what matters is what you deploy on it.

Do you know how to manage secrets securely? How to configure an Ingress to access your apps from the outside? How to perform updates without downtime (Rolling Updates)?

I designed this environment specifically to accompany the labs in my book, “Once Upon a Time Kubernetes”. I have just released the Updated 2025 Edition, where I guide you step-by-step from this empty cluster to mastering modern Cloud Native architecture.

If you want to stop copying commands and start understanding the architecture behind them:

See you in the cluster!

comments powered by Disqus