CentOS Stream 10: Install Kubeadm
Install kubeadm, kubelet, and CRI-O container runtime on Kubernetes cluster nodes on CentOS Stream 10.
Configure Multi Nodes Kubernetes Cluster.
This example is based on the environment like follows.
For System requirements, each Node has unique Hostname, MAC address, Product_uuid. MAC address and Product_uuid are generally already unique one if you installed OS on physical machine or virtual machine with common procedure. You can see Product_uuid with the command dmidecode -s system-uuid.
+----------------------+ +----------------------+
| [ ctrl.srv.world ] | | [ dlp.srv.world ] |
| Manager Node | | Control Plane |
+-----------+----------+ +-----------+----------+
eth0|10.0.0.25 eth0|10.0.0.30
| |
------------+--------------------------+-----------
| |
eth0|10.0.0.51 eth0|10.0.0.52
+-----------+----------+ +-----------+----------+
| [ node01.srv.world ] | | [ node02.srv.world ] |
| Worker Node#1 | | Worker Node#2 |
+----------------------+ +----------------------+
System Requirements
On all Kubernetes Cluster Nodes except Manager Node, change settings for System requirements.
Configure sysctl parameters:
cat > /etc/sysctl.d/99-k8s-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables=1
EOF
sysctl --system
Disable firewalld:
systemctl disable --now firewalld
Disable Swap:
swapoff -a
Comment out the Swap line in /etc/fstab:
#UUID=eb7c7852-4114-4c8d-8eef-b176c28b5501 none swap defaults 0 0
Install Required Packages
On all Kubernetes Cluster Nodes except Manager Node, install required packages. This example shows to use CRI-O for container runtime.
Install CRI-O:
dnf -y install https://mirror.stream.centos.org/SIGs/10-stream/cloud/x86_64/okd-4.19/Packages/c/cri-o-1.32.4-1.el10s.x86_64.rpm
systemctl enable --now crio
Add Kubernetes repository and install kubeadm, kubelet:
cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/
enabled=0
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/repodata/repomd.xml.key
EOF
dnf --enablerepo=kubernetes -y install kubeadm kubelet cri-tools iproute-tc container-selinux
systemctl enable kubelet