3.7 KiB
📘 How to Install Kubernetes on Ubuntu 24.04 (Step-by-Step Guide)
This guide walks you through installing a multi-node Kubernetes cluster on Ubuntu 24.04 using kubeadm
.
🧰 Prerequisites
- Ubuntu 24.04 instances with SSH enabled
- sudo user access
- At least 2GB RAM, 2 CPUs, and 20GB storage per node
- Internet access
Sample Setup:
- Master Node: k8s-master-noble (192.168.1.120)
- Worker 1: k8s-worker01-noble (192.168.1.121)
- Worker 2: k8s-worker02-noble (192.168.1.122)
1️⃣ Set Hostnames & Update Hosts File
Run on each node:
sudo hostnamectl set-hostname "k8s-master-noble" # Master sudo hostnamectl set-hostname "k8s-worker01-noble" # Worker 1 sudo hostnamectl set-hostname "k8s-worker02-noble" # Worker 2
Edit /etc/hosts
on all nodes:
192.168.1.120 k8s-master-noble 192.168.1.121 k8s-worker01-noble 192.168.1.122 k8s-worker02-noble
2️⃣ Disable Swap & Load Kernel Modules
sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
sudo modprobe overlay sudo modprobe br_netfilter
echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf
echo -e "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/kubernetes.conf
sudo sysctl --system
3️⃣ Install and Configure containerd
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/containerd.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update && sudo apt install containerd.io -y
containerd config default | sudo tee /etc/containerd/config.toml > /dev/null sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd
4️⃣ Add Kubernetes Repository
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/k8s.gpg
echo "deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" | sudo tee /etc/apt/sources.list.d/k8s.list
5️⃣ Install kubelet, kubeadm, kubectl
sudo apt update sudo apt install kubelet kubeadm kubectl -y
6️⃣ Initialize Kubernetes Cluster (Master Node Only)
sudo kubeadm init --control-plane-endpoint=k8s-master-noble
Then set up kubectl:
mkdir -p $HOME/.kube sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
7️⃣ Join Worker Nodes
Use the join command from the kubeadm init
output on each worker node:
sudo kubeadm join k8s-master-noble:6443 --token --discovery-token-ca-cert-hash sha256:
8️⃣ Install Calico Network Add-on (Master Only)
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.1/manifests/calico.yaml
Check readiness:
kubectl get pods -n kube-system kubectl get nodes
9️⃣ Test the Cluster
kubectl create ns demo-app kubectl create deployment nginx-app --image nginx --replicas 2 --namespace demo-app kubectl expose deployment nginx-app -n demo-app --type NodePort --port 80 kubectl get svc -n demo-app
Then access it:
curl http://:
✅ You now have a fully functional Kubernetes cluster on Ubuntu 24.04!