<mohammadrony>

RHEL Node Configuration

Update system

sudo dnf update -y

Install packages

sudo dnf 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

Disable firewall

sudo systemctl disable --now firewalld

Install containerd runtime

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y containerd.io
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

Disable Apparmor

sudo systemctl disable --now apparmor
sudo systemctl restart containerd

Load necessary 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

Disable selinux

sudo setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Install kubeadm kubelet

sudo tee -a /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
sudo yum install -y kubeadm kubelet --disableexcludes=kubernetes
# sudo yum install -y kubeadm-'1.34.*' kubelet-'1.34.*' --disableexcludes=kubernetes

Install kubectl

sudo yum install -y kubectl --disableexcludes=kubernetes
# sudo yum install -y kubectl-'1.34.*' --disableexcludes=kubernetes

Alias

echo 'alias k="kubectl"' >> ~/.bash_aliases

Auto completion

echo 'complete -o default -F __start_kubectl k' >> ~/.bashrc

Start kubelet

sudo systemctl enable --now kubelet