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

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

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-system

4. 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 nodes

5. Kind Cluster Management Commands

CommandPurpose
kind create clusterCreate a new cluster
kind create cluster --name my-clusterCreate named cluster
kind create cluster --config config.yamlCreate from config file
kind get clustersList all Kind clusters
kind delete clusterDelete the default cluster
kind delete cluster --name my-clusterDelete named cluster
kind load docker-image myimage:tagLoad 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-info

7. 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.0

8. 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: TCP

9. 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 kubectl commands, 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