Introduction to Single Node OpenShift (SNO)

Edge computing is everywhere. While many organizations look to take advantage of deploying applications at the edge, the physical nature of many of these edge sites can cause challenges to the architects who need to deploy hardware in confined spaces, with reduced cost, with limited power budgets, or where network connectivity back to the central data center may be intermittent. To help solve this problem, we have been working to make our Red Hat OpenShift footprint smaller to fit into these more constrained environments by putting both control and worker capabilities into a Single Node. As of OpenShift 4.9, we now have a full OpenShift deployment in a Single Node called Single Node OpenShift (SNO).

5G Radio Access Network

SNO’s primary use case is for edge computing workloads, including intermittent connectivity, portable clouds, and 5G radio access networks (RAN) close to a base station. The major tradeoff with an installation on a Single Node is the lack of high availability. In this lab, we are going to focus in telecommunication service providers' implementation of a Radio Access Network (RAN) use case as part of a 5G mobile network.

Notice that in the context of telecommunications service providers' 5G RANs, it is increasingly common to see "cloud native" implementations of the 5G RAN application, including the Distributed Unit (DU) components. Due to latency constraints, the DU needs to be deployed very close to the Radio Units (RUs), for which it is responsible. In practice, this can mean running the DU on anything from a single server at the base of a cell tower to a more datacenter-like environment serving several RUs.

A typical DU example is a resource-intensive workload, requiring multiple dedicated cores per DU and several DUs packed on the server. For performance the DU requires dedicated memory configured as huge pages, multiple single route I/O virtualization (SR-IOV) NICs, FPGA, or GPU acceleration cards carrying several Gbps of traffic each.

One crucial detail of this use case is ensuring that this workload can be "autonomous" so that it can continue operating with its existing configuration, even when any centralized management functionality is unavailable. This is where Single Node OpenShift comes in.

Things to keep in mind

Single Node OpenShift offers both control and worker node capabilities in a single server and provides users with a consistent experience across the sites where OpenShift is deployed, regardless of the size of the deployment. Keep in mind a Single Node OpenShift deployment differs from the default self-managed/highly-available cluster profile in a couple of ways:

  • To optimize system resource usage, many operators are configured to reduce the footprint (cpu use) of their operands when running on a Single Node OpenShift. This is even more visible when deploying the Telco 5G RAN QE validated configuration which establishes a base platform for RAN DU workloads.

  • In environments that require high availability, it is recommended that the architecture be configured in a way in which if the hardware was to fail, those workloads are transitioned to other sites or nodes while the impacted node is recovered. This is where Red Hat Advanced Cluster Management for Kubernetes(ACM) can really help us control our fleet of clusters.

Deployments

OpenShift installs typically require a temporary bootstrap machine, which is usually a separate machine, but edge deployments are often performed in environments where there are no extra nodes. However, for these use-cases, the new functionality provided by OpenShift’s “Bootstrap-in-Place” option eliminates the separate bootstrap node requirement for single-node deployments. So when installing single-node OpenShift, you only need the node you wish to install onto.

OpenShift Container Platform on a Single Node is a specialized installation that requires the creation of a special ignition configuration ISO. It is supported on bare metal, vSphere, Red Hat OpenStack, and Red Hat Virtualization platforms as today. When using ACM’s Assisted Service for installation, this ISO is automatically created as part of the installation process.

The use of OpenShiftSDN with single-node OpenShift is not supported. OVN-Kubernetes is the default networking solution for single-node OpenShift deployments.

Requirements for SNO are:

  • Single-node OpenShift requires the following minimum host resources: vCPU: 8, VirtualRAM: 16 GB, Storage: 120 GB.

  • Single-node OpenShift isn’t highly-available. It explicitly does not assume zero downtime of the Kubernetes API.

  • The server must have access to the internet or access to a local (disconnected) registry if it is not connected to an externally routable network.

  • The server must have a DHCP reservation or a static IP address for the Kubernetes API, ingress route, and cluster node domain names. You must also configure the proper DNS records to resolve the previous reservations. More information with regards to the DNS records that must be configured can be found in the official documentation, specifically at Requirements for installing OpenShift on a single node section. Notice that all the DNS records must be subdomains of the same base domain.

Starting at OpenShift 4.11, you can now add workers to a Single-Node OpenShift (SNO).

With single-node OpenShift, you have three choices to perform the installation:

  • Red Hat Advanced Cluster Management for Kubernetes - allows provisioning single-node OpenShift using kube-native APIs. In this lab we will use a GitOps Zero Touch Provisioning (ZTP) method for installing clusters which leverages RHACM under the hood.

  • Web-based Assisted Installer and a discovery ISO that you generate using the Assisted Installer. Basically, you need to follow the web-based Assisted Installer wizard from the Red Hat OpenShift Cluster Manager that will guide you through the process and manage the installation. Once the discovery ISO is created, attach the image to the target host and boot your server from the attached discovery ISO. Detailed information can be found here.

  • coreos-installer. You can also install single-node OpenShift by using coreos-installer to generate the installation ISO and then boot the server from the ISO. Detailed information can be found here.

Extra information

There is plenty of information about SNO, here you have some interesting references that can help you to better understand the different methods to install a Single Node OpenShift cluster: