Kubernetes Installation on Rhel/Centos8
- Ingress now
- Apr 21
- 2 min read
Updated: Apr 22

Kubernetes Cluster Installation:
Step1: Update hostname
#sudo hostnamectl set-hostname master-node # Change as needed per node
Update (/etc/hosts) on all nodes:
192.168.1.202 master-node
192.168.1.203 worker-node1
192.168.1.204 worker-node2
Step2: Stop firewall
#systemctl stop firewalld
#systemcttl disable firewalld
Step3: Stop swap
#sudo swapoff -a
#sudo sed -i '/swap/d' /etc/fstab
Step4: Disable selinux
#sudo setenforce 0
#sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config
Then Reboot the server
after reboot check the selinux status its disable or not
Step5: Configure Kernel Modules and sysctl
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
step6: Install and Configure Container Runtime (containerd)
sudo dnf install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
Change cgroup driver to systemd:
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
Step7:Now Installation kubernetes
Create a kubernetes repo
#vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
enabled=1
gpgcheck=1
exclude=kubelet kubeadm kubectl
#dnf update -y
Now installa kubernetes packages
dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
Now start the service
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
Initialize Kubernetes Cluster (Master Only)
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
Set up kubectl access:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Install Calico CNI (or another CNI)
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O
kubectl create -f custom-resources.yaml
Join Worker Nodes
Run the command copied from the kubeadm init output:
sudo kubeadm join 192.168.56.10:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Verify Cluster Status:
kubectl get nodes
kubectl get pods -A
Troubleshoot:
sudo kubeadm reset -f
sudo rm -rf /etc/cni /var/lib/cni /var/lib/kubelet /etc/kubernetes /var/lib/etcd
sudo systemctl restart containerd
$ kubeadm token create --print-join-command




Very helpful
Thanks for steps very useful
👍
Great work