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: bashsudo mkdir -p /etc/docker sudo vi /etc/docker/daemon.jsonPaste the following JSON snippet into daemon.json: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: bashsudo 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: bashcat <<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: bashsudo modprobe overlay sudo modprobe br_netfilter sudo modprobe iptable_nat
- 
Run the following commands exactly as shown to configure the network: bashcat <<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 FORWARDrules 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: bashsudo 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.xmlIn this case, update your subscription manager on each RHEL 8 host as follows:
sudo subscription-manager refresh