Ubuntu Node Configuration
Update ackage
sudo apt update
Install some common package
sudo apt install -y vim net-tools nmap telnet
Set timezone
sudo timedatectl set-timezone Asia/Dhaka
Disable swap
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
Enable IP forwarding
sudo tee -a /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
EOF
sudo sysctl -p
Setup docker dependency
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install containerd
sudo apt update
sudo apt install -y containerd.io
sudo apt-mark hold containerd.io
Update default config
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/\(SystemdCgroup = \).*/\1true/' /etc/containerd/config.toml
sudo systemctl enable --now containerd
Containerd config setup
sudo tee /etc/crictl.yaml << EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
EOF
sudo systemctl restart containerd
sudo crictl config --list
Disable firewall
sudo systemctl disable --now ufw
Disable apparmor
sudo systemctl disable --now apparmor
sudo systemctl restart containerd
Load kernal modules
sudo tee /etc/modules-load.d/k8s.conf << EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
Set up required sysctl params
sudo tee /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
Add kubernetes repository
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring-1.34.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring-1.34.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes-1.34.list
Install kubeadm kubelet
sudo apt update
sudo apt install -y kubeadm kubelet
sudo apt-mark hold kubeadm kubelet
Install kubectl
sudo apt install -y kubectl
sudo apt-mark hold kubectl
Start kubelet
sudo systemctl enable --now kubelet
sudo systemctl status kubelet