Installing Kubernetes: Minikube and kubeadm Setup for Beginners

So far, we’ve explored what Kubernetes is, how it works, and why it matters.

Now it’s time to get our hands dirty and install Kubernetes ourselves.

In this post, you’ll learn:

  • What installation methods are available
  • How to set up Kubernetes easily using Minikube
  • How to create a production-style cluster using kubeadm
  • Tips for working with cloud-based Kubernetes

Table of Contents


1. Why Is Installing Kubernetes Hard?

Kubernetes is a distributed system, not just one program.

You need to install and connect:

  • API server
  • Scheduler
  • Controller manager
  • etcd (database)
  • kubelet and kube-proxy (on worker nodes)
  • Networking plugin
  • And more…

But don’t worry — we’ll use beginner-friendly tools like Minikube to make this much easier.


2. Comparing Installation Methods

MethodDescriptionProsCons
MinikubeLocal single-node clusterEasy, great for learningNot for production use
k3sLightweight Kubernetes variantFast, low-resourceLimited advanced features
kubeadmOfficial tool for real clustersRealistic, flexibleRequires Linux/VM setup
Managed K8sCloud-based Kubernetes (EKS/GKE/AKS)Fully automatedRequires cloud knowledge

3. Getting Started with Minikube

What is Minikube?

Minikube creates a single-node Kubernetes cluster on your local machine. Perfect for learning and development.

Prerequisites

  • OS: Windows, macOS, or Linux
  • Virtualization support (Docker or VirtualBox)
  • kubectl installed

Using Homebrew:

1
brew install minikube

Or manually:

1
2
3
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
chmod +x minikube-darwin-amd64
sudo mv minikube-darwin-amd64 /usr/local/bin/minikube

1
minikube start

Minikube will:

  • Create a virtual machine
  • Initialize Kubernetes control plane
  • Deploy system components (DNS, dashboard, etc.)

1
kubectl get nodes

Expected output:

1
2
NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   1m    v1.29.0

1
minikube dashboard

This opens a GUI in your browser to view and manage your cluster visually.


4. Installing Kubernetes with kubeadm

What is kubeadm?

kubeadm is the official tool to bootstrap a production-ready Kubernetes cluster. It’s more complex than Minikube but more realistic.


  • 2 or more Linux servers (Ubuntu 22.04)

    • 1 master, 1+ workers
  • containerd as container runtime

  • kubelet, kubeadm, kubectl installed


1) Prepare the OS

1
sudo apt update && sudo apt install -y apt-transport-https curl

2) Install containerd

1
2
sudo apt install -y containerd
sudo systemctl enable containerd

3) Install Kubernetes tools

1
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Add Kubernetes repo, then:

1
2
3
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

1
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

1
2
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

1
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

Run the kubeadm join command shown after initialization on each worker node.


5. Post-Installation Checklist

  • ✅ All Nodes show Ready in kubectl get nodes
  • ✅ All system Pods are Running
  • ✅ DNS works (coredns)
  • ✅ Optional: Enable Kubernetes dashboard

6. Installing Kubernetes in the Cloud

If you’re using AWS, GCP, or Azure, consider their managed Kubernetes services:

ProviderServiceHighlights
AWSEKSIAM support, VPC integration
GCPGKEFast startup, good default configs
AzureAKSAzure DevOps and AD support

Benefits:

  • No manual setup
  • Built-in scalability and HA
  • Pay-as-you-go billing

ToolUse Case
LensVisual Kubernetes cluster management
k9sTerminal UI for exploring Kubernetes
KindRun K8s in Docker for CI/testing
OktetoSync local development with Kubernetes

Summary

Installing Kubernetes can feel overwhelming — but with the right tools and guidance, you can be up and running in no time.

Here’s what we covered:

MethodBest For
MinikubeLearning on your local PC
kubeadmBuilding real clusters
EKS/GKE/AKSProduction cloud workloads

What’s Next?

Now that your cluster is live, it’s time to learn how to control it using kubectl — the command-line tool that every Kubernetes developer must know.