Quick Kubernetes Cluster Setup in less than 10 Minutes
tl;dr
- Install Docker: Run
brew install dockerand start Docker. - Install kind: Execute
brew install kind. - Install kubectl: Use
brew install kubectl. - Create a Kubernetes cluster:
kind create cluster. - Experiment with Kubernetes.
- Delete the cluster:
kind delete clusterwhen done.
Introduction
This guide provides a fast method for setting up a local, miniature Kubernetes (k8s) cluster, primarily for testing or learning purposes. This is not an exhaustive tutorial on Kubernetes.
Previously, I utilized Minikube for quick Kubernetes testing, but have since shifted to Kind.
What is Kind?
kind is a tool for running local Kubernetes clusters using Docker container "nodes".
Reasons for preferring Kind over Minikube:
- Architecture: Kind operates differently from Minikube. While Kind creates Kubernetes clusters inside Docker containers, Minikube establishes a single-node Kubernetes cluster on a local machine.
- Deployment: Kind is designed for local development and testing, enabling rapid setup of multiple clusters. Minikube, in contrast, offers a more comprehensive Kubernetes experience for local development, including features like load balancing, secrets, and persistent volumes.
While kind does not require kubectl, having it installed is beneficial for following certain examples. For kubectl installation, refer to the official kubectl installation documentation.
Installation Requirements (using Homebrew):
- Docker:
brew install docker - kubectl:
brew install kubectl - kind:
brew install kind - Start a Kubernetes cluster:
kind create cluster
Creating 4 Pods
Creating a Resource from a YAML File
kubectl apply -f deployment.yaml
where deployment.yaml contains:
apiVersion: apps/v1
kind: Deployment
metadata:
name: www
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
replicas: 4
minReadySeconds: 4
selector:
matchLabels:
app: www
template:
metadata:
labels:
app: www
spec:
terminationGracePeriodSeconds: 2
containers:
- name: image1
image: erkules/nginxhostname:v1
Verifying Pod Creation
Execute the following command to ensure the pods have been created successfully:
kubectl get pods
You should see output similar to:
NAME READY STATUS RESTARTS AGE
www 1/1 Running 0 10m
www-65b4c66678-kwk8x 1/1 Running 0 11m
www-65b4c66678-l6bzf 1/1 Running 0 11m
www-65b4c66678-nbb9s 1/1 Running 0 11m
www-65b4c66678-qg2qn 1/1 Running 0 11m
This quick setup guide should help you get a Kubernetes cluster up and running in no time, perfect for learning and experimentation.
Sources
- kind
- Install and Set Up kubectl on macOS | Kubernetes
- Kind vs minikube | What are the differences?
- The Essential Kubectl Commands: Handy Cheat Sheet

Dimitri Missoh | 2024-01-22