Install NGINX Controller on RHEL 8 (experimental)
To install NGINX Controller on RHEL 8, you must complete the following steps to allow iptables-based routing for Kubernetes. Failure to complete these steps may cause the installation to hang.
-
Before completing any other steps, update the packages on your system:
sudo yum -y upgrade
Docker isn’t available on RedHat 8 by default, so you’ll need to add a Docker repository and install the required packages:
-
Add the Docker repo:
sudo yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
-
Install the Docker packages:
sudo yum install docker-ce-3:19.03.15-3.el8 docker-ce-cli-1:19.03.15-3.el8 containerd.io-1.3.9-3.1.el8
-
Set up the Docker daemon:
sudo mkdir -p /etc/docker sudo vi /etc/docker/daemon.json
Paste the following JSON snippet into
daemon.json
:{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "2" }, "storage-driver": "overlay2" }
-
Run the following commands to set up the Docker service:
sudo systemctl start docker.service sudo systemctl status docker.service sudo systemctl enable docker.service
Take the following steps to install the required packages and kernel modules.
-
Install the traffic control utility:
sudo yum install iproute-tc
-
Run the following commands to ensure the required kernel modules are loaded at startup:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter iptable_nat EOF
-
To load the required kernel modules immediately, run the following commands:
sudo modprobe overlay sudo modprobe br_netfilter sudo modprobe iptable_nat
-
Run the following commands exactly as shown to configure the network:
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
-
Restart the system configuration:
sudo sysctl --system
Take the following steps to finish preparing the RHEL 8 control plane host for NGINX Controller:
-
When installing Docker on RHEL 8, the
FORWARD
rules in the iptables are reset and need to be corrected. To do this, run the following command:sudo iptables -P FORWARD ACCEPT
-
Finally, turn off swap:
sudo swapoff -a
-
Complete the steps in the NGINX Controller Installation guide to install NGINX Controller.
-
For the NGINX Controller Agent to work on RHEL 8, you need to install the following package on each data plane host:
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install -y xerces-c
-
Complete the steps in the NGINX Controller Agent Installation guide to install the NGINX Controller Agent.
You may encounter the following error when installing or updating NGINX Controller on RHEL 8:
Status code: 403 for https://cdn.redhat.com/content/dist/rhel8/8/x86_64/appstream/os/repodata/repomd.xml
In this case, update your subscription manager on each RHEL 8 host as follows:
sudo subscription-manager refresh