NGINX Documentation

Technical Specifications for NGINX Controller and Controller Agent

This guide lists the technical recommendations for NGINX Controller and the Controller Agent. Review this guide before installing or updating NGINX Controller or the Controller Agent.

NGINX Controller Technical Specifications

Supported Distributions

NGINX Controller supports the following distributions and architectures:

Supported Distributions for NGINX Controller
Distribution Architecture Works with NGINX Controller (version)
CentOS 7 x86_64 All versions
Debian 8 i386, x86_64 NGINX Controller 2.7 and earlier
Debian 9 i386, x86_64 All versions
Red Hat Enterprise Linux 7 x86_64 All versions
Ubuntu 16.04 LTS i386, x86_64 All versions
Ubuntu 18.04 LTS i386, x86_64 All versions

Supported Deployment Environments

  • Bare metal
  • Public cloud: Amazon Web Services, Google Cloud Platform, Microsoft Azure
  • Virtual Machine

Hardware Specifications

Hardware Specifications for NGINX Controller
Hardware Recommended
RAM 8 GB RAM
CPU 8-Core CPU @ 2.40 GHz or similar
Disk space 80 GB free disk space

Using Local or External Storage for the Analytics Database

When installing NGINX Controller, you can choose the type of volume that’s used to store the analytics database. The types of volumes that are supported are:

Local Storage

When using local storage for the analytics database, we recommend the following specs:

  • 100 IOPS
  • 130 GB free disk space (that’s the standard recommendation of 80 GB + 50 GB for the local analytics database)
Tip: To conserve IO and/or disk space, you can use a separate disk for the local storage directory /opt/nginx-controller/clickhouse_data.

NFS

To use NFS for external storage for the analytics database, consider the following:

  • Make certain that the NFS version used by the server is supported by the client system where you’re installing NGINX Controller.
  • If you’re using NFS v4 file locking or Network Lock Manager (NLM) on the NFS server, make sure that the client system that’s running your NGINX Controller has access to the mount point.
  • The owner of the mount point must be set to 101:101, or the root_sqash option must be disabled on the NFS server.

AWS EBS

You can use Amazon Elastic Block Store (EBS) for the analytics database if NGINX Controller is installed on AWS and the EBS volume is in the same availability zone as the EC2 instance. See the AWS EBS User Guide for instructions on how to create and configure EBS volumes.

To use AWS EBS for the analytics database, use the following configuration:

EC2 Tag:
Key: kubernetes.io/cluster/NGINX-CONTROLLER
Value: owned
IAM Role:

  {
      "Version": "2012-10-17",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ec2:AttachVolume",
                  "ec2:DetachVolume",
                  "ec2:DescribeInstances",
                  "ec2:ModifyVolume",
                  "ec2:DescribeVolumes"
              ],
              "Resource": [
                  "*"
              ]
          }
      ]
  }

Firewall / IP Settings

Firewall/IP Settings
Port Applies to NGINX Controller (version) Used for
DB: Port 5432 TCP All versions Incoming to DB from NGINX Controller host
NGINX Controller: 80 TCP All versions Incoming from NGINX Plus instances
NGINX Controller: 443 TCP All versions Incoming from where you are accessing from a browser, for example, an internal network
NGINX Controller: 8443 TCP All versions Incoming from NGINX Plus instances

NGINX Controller 2.8 and later: If you have a firewall running on the NGINX Controller host, enable NAT (masquerade) and open the following ports. Note: These ports are used for internal traffic only and don’t need to be open to the outside.

Firewall/IP Settings for NGINX Controller 2.8 and later
Port Applies to NGINX Controller (version) Used for
NGINX Controller: 6443 TCP 2.8 and later Incoming requests to the Kubernetes master node; used for the Kubernetes API server.
NGINX Controller: 10250 TCP 2.8 and later Incoming requests to the Kubernetes worker node; used for the Kubelet API

For more information about these ports, see the Kubernetes guide Installing kubeadm.


Controller Agent Technical Specifications

  • NGINX Controller, using the NGINX Controller Agent, can monitor and manage up to 100 NGINX Plus instances.
  • The Controller Agent works with Python 2.6 and 2.7. Python 3 is not supported.

Supported Distributions

The Controller Agent supports the following distributions and architectures:

Supported Distributions for the Controller Agent
Distribution Architecture
Amazon Linux 2 x86_64
Amazon Linux 2017.09 x86_64
Debian 8 i386, amd64
Debian 9 i386, amd64
RHEL/CentOS 6 i386, amd64
RHEL/CentOS 7 x86_64
Ubuntu 16.04 i386, amd64
Ubuntu 18.04 amd64

Open Source Licenses

The list of open source packages and their licenses used by NGINX Controller can be found in the downloaded file that is part of the NGINX Controller package. See /files/license-controller.pdf.