DEV Community

Korakrit Chariyasathian
Korakrit Chariyasathian

Posted on • Edited on

Installing Kubernetes Single-Node Setup on Ubuntu 24.04

1. Prepare the Ubuntu VM

  • Update system packages:
sudo apt update && sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode
  • Disable swap (Kubernetes requires this):
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
Enter fullscreen mode Exit fullscreen mode

2. Enable Kernel Modules and Sysctl Settings

sudo modprobe overlay
sudo modprobe br_netfilter
Enter fullscreen mode Exit fullscreen mode
sudo tee /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
Enter fullscreen mode Exit fullscreen mode
sudo sysctl --system
Enter fullscreen mode Exit fullscreen mode

3. Install Docker or Containerd (Container Runtime)

sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
Enter fullscreen mode Exit fullscreen mode

or Install Containerd

sudo apt install -y containerd
Enter fullscreen mode Exit fullscreen mode
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
Enter fullscreen mode Exit fullscreen mode
# Enable systemd cgroup
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
Enter fullscreen mode Exit fullscreen mode
sudo systemctl restart containerd
sudo systemctl enable containerd
Enter fullscreen mode Exit fullscreen mode

4. Add the Kubernetes APT Repository

sudo apt install -y apt-transport-https ca-certificates curl gpg
Enter fullscreen mode Exit fullscreen mode
sudo mkdir -p /etc/apt/keyrings
Enter fullscreen mode Exit fullscreen mode
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Enter fullscreen mode Exit fullscreen mode
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list
Enter fullscreen mode Exit fullscreen mode
sudo apt update
Enter fullscreen mode Exit fullscreen mode

5. Install Kubernetes Tools: kubeadm, kubelet, kubectl

sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Enter fullscreen mode Exit fullscreen mode

6. Install Helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Enter fullscreen mode Exit fullscreen mode

or

curl -LO https://get.helm.sh/helm-v3.17.3-linux-amd64.tar.gz
tar -zxvf helm-v3.17.3-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
rm -rf helm-v3.17.3-linux-amd64.tar.gz
Enter fullscreen mode Exit fullscreen mode
helm version

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
Enter fullscreen mode Exit fullscreen mode

7. Initialize the Kubernetes Control Plane

sudo kubeadm init --pod-network-cidr=10.0.0.0/16
Enter fullscreen mode Exit fullscreen mode

8. Set up kubeconfig:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Enter fullscreen mode Exit fullscreen mode

9. Check Node Status

kubectl get nodes
Enter fullscreen mode Exit fullscreen mode
  • Output: is-kube shows as NotReady (because Pod Network is not yet installed)

Install Cilium CNI

1. Install cilium-cli

curl -L --remote-name https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
sudo tar xzvf cilium-linux-amd64.tar.gz -C /usr/local/bin
rm cilium-linux-amd64.tar.gz
Enter fullscreen mode Exit fullscreen mode

2. Install Cilium

cilium install
Enter fullscreen mode Exit fullscreen mode

3. Check Node Status and Cilium Status

kubectl get nodes
cilium status
Enter fullscreen mode Exit fullscreen mode

Top comments (0)