This document describes the installation of Kubernetes, Docker or Containerd, Mongodb on a server with RHEL (Red Hat Enterprise Linux) 8.4, 8.6 and 8.9 operating systems. It also applies on Rocky Linux 8.4, 8.6 and 8.9 distributions.

If possible, always use the latest Operating System that is available and contact us for any questions.


File to Download

Please contact us for the download link of latest version of Apinizer at support@apinizer.com mail address.

Kubernetes, Docker, Mongodb and Elasticsearch installation files for Rhel 8.4 and 8.6:
Filename: offlineApinizerInstallation-RedHat86.tar (1.61 GB)
Download link: https://drive.google.com/file/d/1nTcklCjpmVhPRjSiPMo-XK7nsTNtHv5o

Kubernetes, Containerd, Mongodb and Elasticsearch installation files for Rhel 8.9:
Filename: offlineApinizerInstallation-RHEL89.tar (1.4 GB)
Download link: https://fss.apinizer.com/index.php/s/uOXiPzhsEB8DQXJ
POWERSHELL

The instructions in the next steps are also available in the relevant files and they are also clearly shared here for servers that may have limited access to the internet.

The command "tar xvzf fileName.tar" or "tar xf fileName.tar" can be used to extract the files.


First of all, in order not to get an automatic subscription error, first go to the line below and set enabled 0.

vim /etc/yum/pluginconf.d/subscription-manager.conf
enabled=0
POWERSHELL


Only on RHEL-8.4 or RHEL-8.6 net-tools package is installed.

cd offlineApinizerInstallation-RedHat86
yum install -y --cacheonly  --skip-broken --disablerepo=* *.rpm
POWERSHELL

Create Apinizer user

adduser apinizer
usermod -aG wheel apinizer
passwd apinizer
POWERSHELL

Stop and disable the Firewall

sudo systemctl stop firewalld
 
sudo systemctl disable firewalld
POWERSHELL

Disable the Selinux

Let's disable SELinux to avoid communication problems on servers.

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


Disable the Swap

Let's disable swap to avoid communication problems on nodes. For this, the following steps are done. and the swap line in the /etc/fstab file is deleted.

sudo swapoff -a
sudo vi /etc/fstab             
POWERSHELL


IP Tables setup

Then let's close the vi file (:wq). We will continue where we left off with the IPTables settings.

sudo vi /etc/sysctl.d/k8s.conf
 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
net.ipv4.tcp_max_syn_backlog=40000
net.core.somaxconn=40000
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.ipv4.tcp_sack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_moderate_rcvbuf=1
net.core.rmem_max=134217728
net.core.wmem_max=134217728
net.ipv4.tcp_mem=134217728 134217728 134217728
net.ipv4.tcp_rmem=4096 277750 134217728
net.ipv4.tcp_wmem=4096 277750 134217728
net.core.netdev_max_backlog=300000
POWERSHELL


Save changes

sudo modprobe br_netfilter
sudo sysctl --system
POWERSHELL


Install br_netfilter Module (→ Reboot)

sudo lsmod | grep br_netfilter
sudo reboot
POWERSHELL


Docker Installation (Only on RHEL 8.4 and 8.6 installation)

The following packages must be deleted before starting the Docker installation.

yum remove podman* -y
yum remove buildah* -y

cd <InstallationDirectory>/docker
 
rpm -ivh --replacefiles --replacepkgs *.rpm
 
# Create required directories
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo mkdir -p /etc/docker

# Create daemon json config file
sudo tee /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": ["overlay2.override_kernel_check=true"]
}
EOF
 
# Start and enable Services
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

sudo usermod -aG docker apinizer
POWERSHELL

Containerd Installation (Only on RHEL 8.9 installation)

sudo yum install -y --cacheonly --disablerepo=* required_rpms/*.rpm --skip-broken
POWERSHELL
#containerd module settings
sudo mkdir -p /etc/containerd   
 
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
 
 
#initializing and starting the containerd module 
sudo systemctl restart containerd
sudo systemctl enable containerd
systemctl status containerd
POWERSHELL


Kubernetes Installation

Go to apinizerOffline/kubernetes folder and run rpms.

cd apinizerOffline/kubernetes
yum install -y --cacheonly  --skip-broken --disablerepo=* *.rpm

POWERSHELL

(On Master and Worker nodes)

Kubernetes images in .tar form are uploaded to docker.

#If you are using RHEL 8.4 or 8.6

docker load < kube-apiserver_v1.18.20.tar
docker load < kube-proxy_v1.18.20.tar
docker load < kube-controller-manager_v1.18.20.tar
docker load < kube-scheduler_v1.18.20.tar
docker load < pause_3.2.tar
docker load < etcd_3.4.3-0.tar
docker load < coredns_1.6.7.tar
docker load < flannel_v0.13.1-rc2.tar

#If you are using RHEL 8.9
sudo ctr --namespace k8s.io images import kube_images/kube-apiserver-v1.31.4.tar          
sudo ctr --namespace k8s.io images import kube_images/kube-controller-manager-v1.31.4.tar 
sudo ctr --namespace k8s.io images import kube_images/kube-scheduler-v1.31.4.tar          
sudo ctr --namespace k8s.io images import kube_images/kube-proxy-v1.31.4.tar              
sudo ctr --namespace k8s.io images import kube_images/pause-3.10.tar                      
sudo ctr --namespace k8s.io images import kube_images/etcd-3.5.15-0.tar                   
sudo ctr --namespace k8s.io images import kube_images/coredns-v1.11.3.tar                 
sudo ctr --namespace k8s.io images import kube_images/flannel-cni-plugin-v1.6.2.tar       
sudo ctr --namespace k8s.io images import kube_images/flannel-v0.26.4.tar
POWERSHELL


systemctl enable kubelet && systemctl start kubelet
POWERSHELL


(On Master Node)

#If you are using RHEL 8.4 or 8.6
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<MASTER_SERVER_IP_ADDRESS> --kubernetes-version=v1.18.20

#If you are using RHEL 8.9
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<MASTER_SERVER_IP_ADDRESS> --kubernetes-version=v1.31.4
POWERSHELL

(On Master Node)

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown -R $(id -u):$(id -g) $HOME/.kube
POWERSHELL
kubectl apply -f kube-flannel.yml
POWERSHELL


Uploading Apinizer Images to Kubernetes (On Worker nodes)

Go to the folder with Apinizer images and run the following commands.

cd apinizerOffline/apinizerImages

#If you are using RHEL 8.4 or 8.6
docker load < manager_<APINIZER_VERSION>.tar
docker load < worker_<APINIZER_VERSION>.tar
docker load < cache_<APINIZER_VERSION>.tar
docker load < integration_<APINIZER_VERSION>.tar
docker load < portal_<APINIZER_VERSION>.tar

#If you are using RHEL 8.9
sudo ctr --namespace k8s.io images import manager-<APINIZER_VERSION>.tar apinizercloud/manager:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import worker-<APINIZER_VERSION>.tar apinizercloud/worker:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import cache-<APINIZER_VERSION>.tar apinizercloud/cache:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import integration-<APINIZER_VERSION>.tar apinizercloud/integration:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import portal-<APINIZER_VERSION>.tar apinizercloud/portal:<APINIZER_VERSION>
POWERSHELL


MongoDB Installation

sudo yum install -y --cacheonly --skip-broken --disablerepo=* <MONGODB_RPM_DIRECTORY>/*.rpm
POWERSHELL


After the installation, the MongoDB configurations are the same as those in the document Installation of MongoDB on Red Hat OS.

Elasticsearch Installation

Elasticsearch system configuration is done.

sudo mkdir /opt/elasticsearch

# Move the file inside the offline installation folders.
sudo mv <ELASTICSEARCH_DIRECTORY>/elasticsearch-7.9.2-linux-x86_64.tar.gz /opt/elasticsearch/ 
 
cd /opt/elasticsearch
sudo tar -xzf elasticsearch-7.9.2-linux-x86_64.tar.gz
POWERSHELL


After moving the installation file from its directory to the /opt/elasticsearch/ folder, you can perform the configurations on the Elasticsearch Installation on Red Hat Operating System page.


Apinizer Installation

Perform the Apinizer installation through the Apinizer Installation and Configuration page.