This content originally appeared on DEV Community and was authored by Akash
In the previous parts, we established the “why” behind Kubernetes and learned its core vocabulary. We now have a conceptual map of our “Kubernetes Kingdom.”
It’s time to build one.
To learn effectively, you need a hands-on environment. Running commands against a production cluster is not an option, so every practitioner needs a safe, local Kubernetes cluster running on their own machine. This personal playground is where you’ll experiment, deploy your first applications, and break things without consequence.
Fortunately, there are several excellent, free tools to create a local cluster. Let’s explore the three most popular choices.
The Contenders
We will look at three community favorites. While they all achieve the same goal—giving you a working Kubernetes cluster—they do so in slightly different ways.
- Docker Desktop Kubernetes: The “Easy Button.” If you already use Docker Desktop, you can enable Kubernetes with a single checkbox.
- Minikube: The “Classic All-Rounder.” For a long time, Minikube was the default choice for local Kubernetes. It’s mature, feature-rich, and very stable.
- kind (Kubernetes in Docker): The “Modern Minimalist.” A newer, popular tool that runs your entire Kubernetes cluster inside Docker containers. It’s extremely fast and lightweight.
How to Choose?
Here’s a quick comparison to help you decide.
Feature | Docker Desktop | Minikube | kind |
---|---|---|---|
How it Works | Integrated into Docker’s virtual machine | Runs in a VM or a Docker container | Runs cluster nodes as Docker containers |
Ease of Setup | Easiest (a single checkbox) | Easy (requires one download + a driver) | Easy (requires one download + Docker) |
Resource Usage | Medium-High (shares with Docker) | Medium-High (especially with a VM) | Low-Medium (very efficient) |
Startup Speed | Slowest (boots the whole Docker VM) | Slow (if VM), Fast (if container) | Fastest |
Multi-Node Clusters | No | Yes | Yes (this is its superpower) |
Best For… | Absolute beginners already using Docker. | A stable, feature-rich, single-node setup. | Quick start/stop, multi-node tests, and CI/CD. |
The Verdict: For this series, any of these tools will work perfectly. The best one for you is the one you can get running the fastest.
- If you already have Docker Desktop, just use that.
- If you want the fastest startup and shutdown experience, use
kind
. - If you want to try a classic, well-documented tool, use
Minikube
.
Below are the instructions to get up and running with each one.
Prerequisites: kubectl
No matter which tool you choose, you need kubectl
, the official command-line tool for interacting with a Kubernetes cluster. You install this separately.
(Please follow the instructions for your Operating System)
macOS (using Homebrew):
brew install kubectl
Windows (using Chocolatey):
choco install kubernetes-cli
Linux (direct download):
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
To verify it’s installed, run kubectl version --client
.
Option 1: Docker Desktop Kubernetes
This is the simplest option if you have Docker Desktop installed.
- Install Docker Desktop: Download and install it from the official Docker website.
- Enable Kubernetes:
- Open Docker Desktop’s Settings / Preferences.
- Go to the Kubernetes tab.
- Check the box that says Enable Kubernetes.
- Click Apply & Restart.
It will take a few minutes to download the necessary components. Once it’s done, your cluster is running.
Option 2: Minikube
Minikube creates a single-node cluster, perfect for learning.
-
Install Minikube:
macOS (using Homebrew):
brew install minikube
Windows (using Chocolatey):
choco install minikube
Linux (direct download):
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube /usr/local/bin/
-
Start your cluster:
This single command downloads everything needed and starts your cluster.
minikube start
Option 3: kind
kind
is praised for its speed and simplicity. It requires that you have Docker installed and running.
-
Install kind:
macOS (using Homebrew):
brew install kind
Windows (using Chocolatey):
choco install kind
Linux (direct download):
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind
-
Start your cluster:
This command is beautifully simple. It will pull a Docker image and configure it as a Kubernetes node.
kind create cluster
Verifying Your Installation
Once you have installed one of the tools above and started your cluster, run the following command:
kubectl cluster-info
If everything is working, you will see output describing the address of the Kubernetes control plane and its services. It should look something like this (your URLs will be different):
Kubernetes control plane is running at https://127.0.0.1:54173
CoreDNS is running at https://127.0.0.1:54173/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Seeing this output is your confirmation: you now have a working Kubernetes cluster! You have your own personal kingdom to command.
What’s Next
With our playground set up and kubectl
ready to go, we are finally prepared to interact with Kubernetes. In the next part, we will take our first real step as a cluster operator: deploying an application. It’s time for the “Hello, World!” of Kubernetes.
This content originally appeared on DEV Community and was authored by Akash