Day 6/40 - Kubernetes Multi Node Cluster Setup Step By Step | Kind Tutorial
Overview
This video is Day 6 of the 40-day CKA preparation course. It transitions from theory to hands-on practice by demonstrating how to set up a multi-node Kubernetes cluster locally using Kind (Kubernetes IN Docker). This is the first practical lab session where learners spin up a real cluster, inspect nodes, and understand how a multi-node topology works before moving to production-grade installations.
Source Details
- Channel: Tech Tutorials with Piyush
- Playlist: 40 Days of Kubernetes (CKA Full Course)
- Companion Repository: piyushsachdeva/CKA-2024
- Challenge:
#40daysofKubernetes - Tool Used: Kind
Key Takeaways
1. What is Kind?
- Kind (Kubernetes IN Docker) is a tool for running local Kubernetes clusters using Docker containers as nodes.
- Each “node” is actually a Docker container running systemd and all Kubernetes components.
- Best for: Local development, CI/CD pipelines, learning, and testing — not production.
- Advantages over minikube: Faster startup, multi-node support, runs in Docker (no VM needed), great for CI.
2. Prerequisites
- Docker installed and running
kubectlinstalledkindCLI installed (installation guide)
3. Creating a Single-Node Cluster
# Create a cluster with default settings (1 control-plane node)
kind create cluster
# Verify
kubectl get nodes
kubectl get pods -n kube-system4. Creating a Multi-Node Cluster
A kind multi-node cluster is defined via a YAML config file:
# kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker# Create the cluster with config
kind create cluster --name cka-cluster --config kind-config.yaml
# Verify nodes
kubectl get nodes5. Kind Cluster Management Commands
| Command | Purpose |
|---|---|
kind create cluster | Create a new cluster |
kind create cluster --name my-cluster | Create named cluster |
kind create cluster --config config.yaml | Create from config file |
kind get clusters | List all Kind clusters |
kind delete cluster | Delete the default cluster |
kind delete cluster --name my-cluster | Delete named cluster |
kind load docker-image myimage:tag | Load local Docker image into Kind nodes |
6. Inspecting the Cluster
# Check all nodes and their roles
kubectl get nodes -o wide
# View system pods (DNS, scheduler, proxy, etc.)
kubectl get pods -n kube-system
# Describe a node to see capacity and conditions
kubectl describe node cka-cluster-control-plane
# Check cluster info
kubectl cluster-info7. Loading Local Images into Kind
Unlike minikube, Kind doesn’t automatically see your local Docker images. You must explicitly load them:
# Build your image
docker build -t myapp:1.0 .
# Load into Kind cluster
kind load docker-image myapp:1.0 --name cka-cluster
# Now use in Kubernetes
kubectl run myapp --image=myapp:1.08. Port Mapping for Local Access
To access services from your host machine, you can map ports in the Kind config:
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30080
hostPort: 8080
protocol: TCP9. Why This Matters for CKA
- The CKA exam provides pre-provisioned clusters, but understanding cluster topology helps you troubleshoot.
- Kind gives you a safe sandbox to practice
kubectlcommands, YAML manifests, and cluster operations. - Multi-node setup lets you observe how pods get scheduled across nodes, how node failures affect workloads, and how networking behaves.
Cross-References
Ingested: 2026-05-21