CentOS Stream 9
Sponsored Link

Kubernetes : Install Kubeadm2023/10/19

 

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].

+----------------------+   +----------------------+
|   [ mgr.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    |
+----------------------+   +----------------------+

[1] On all Kubernetes Cluster Nodes except Manager Node, Change settings for System requirements.
[root@dlp ~]#
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

[root@dlp ~]#
sysctl --system
[root@dlp ~]#
modprobe overlay

[root@dlp ~]#
modprobe br_netfilter

[root@dlp ~]#
echo -e overlay\\nbr_netfilter > /etc/modules-load.d/k8s.conf
# install from EPEL

[root@dlp ~]#
dnf --enablerepo=epel -y install iptables-legacy

[root@dlp ~]#
alternatives --config iptables


There are 2 programs which provide 'iptables'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/iptables-nft
   2           /usr/sbin/iptables-legacy

# switch to [iptables-legacy]
Enter to keep the current selection[+], or type selection number: 2

# set Swap off setting

[root@dlp ~]#
swapoff -a

[root@dlp ~]#
vi /etc/fstab
# comment out the Swap line
#/dev/mapper/cs-swap     none                    swap    defaults        0 0
[2] On all Kubernetes Cluster Nodes except Manager Node, Install required packages.
This example shows to use CRI-O for container runtime.
[root@dlp ~]#
dnf -y install centos-release-okd-4.14

[root@dlp ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-OKD-4.14.repo

[root@dlp ~]#
dnf --enablerepo=centos-okd-4.14 -y install cri-o
[root@dlp ~]#
systemctl enable --now crio
[root@dlp ~]#
cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=0
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

[root@dlp ~]#
dnf --enablerepo=kubernetes -y install kubeadm kubelet cri-tools iproute-tc container-selinux
[root@dlp ~]#
systemctl enable kubelet
Matched Content