Lets Setup K8s Cluster

Published: (February 11, 2026 at 12:42 PM EST)
2 min read
Source: Dev.to

Source: Dev.to

0) Setting Hostnames (Master & Worker Nodes)

sudo hostnamectl set-hostname master.k8s.local
sudo hostnamectl set-hostname worker-one.k8s.local

sudo init 6

1) Update Hostfile (Master & Worker Nodes)

sudo tee -a /etc/hosts <<EOF
192.168.1.10 master.k8s.local
192.168.1.11 worker-one.k8s.local
EOF

2) Disabling Swap (Master & Worker Nodes)

sudo apt-get update
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

3) Configure Kernel Modules (Master & Worker Nodes)

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe br_netfilter
sudo modprobe overlay

4) Configure Kernel Parameters (Master & Worker Nodes)

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply without reboot
sudo sysctl --system

# Verify
sysctl net.bridge.bridge-nf-call-iptables \
       net.bridge.bridge-nf-call-ip6tables \
       net.ipv4.ip_forward

5) Install Container Runtime (Master & Worker Nodes)

sudo apt-get update
sudo apt-get install -y containerd

sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/            SystemdCgroup = false/            SystemdCgroup = true/' /etc/containerd/config.toml

sudo systemctl restart containerd.service
sudo systemctl daemon-reload
sudo systemctl enable --now containerd
sudo systemctl status containerd
sudo containerd config dump

6) Install Kubernetes Management Tools (Master & Worker Nodes)

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.35/deb/Release.key \
  | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.35/deb/ /' \
  | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
sudo systemctl enable kubelet

7) Initialize Kubernetes Cluster (Master Node Only)

sudo kubeadm init \
  --apiserver-advertise-address=192.168.10.2 \
  --pod-network-cidr=192.168.0.0/16 \
  --service-cidr=10.30.0.0/16 \
  --control-plane-endpoint=master.k8s.local:6443 \
  --upload-certs \
  --cri-socket /run/containerd/containerd.sock

8) Install Cilium Within Kubernetes Cluster (Master Node Only)

CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi

curl -L --fail --remote-name-all \
  https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}

sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}

cilium version
cilium install --version 1.16.2
kubectl get pod -n kube-system

9) Check Cluster Status (Master Node Only)

kubectl cluster-info

10) Scheduling Pods on Master (Master Node Only)

kubectl taint nodes --all node-role.kubernetes.io/master-
0 views
Back to Blog

Related posts

Read more »

Friday Five — February 13, 2026

Red Hat Summit Registration Don't forget to register for Red Hat Summit. Registration is now open for Red Hat Summit—heading to Atlanta, Georgia, in 2026—and t...