Installing on a single node
Installing OpenShift Container Platform on a single node
Abstract
Chapter 1. Preparing to install on a single node Copy linkLink copied to clipboard!
1.1. Prerequisites Copy linkLink copied to clipboard!
- You reviewed details about the OpenShift Container Platform installation and update processes.
- You have read the documentation on selecting a cluster installation method and preparing it for users.
1.2. About OpenShift on a single node Copy linkLink copied to clipboard!
You can create a single-node cluster with standard installation methods. OpenShift Container Platform on a single node is a specialized installation that requires the creation of a special ignition configuration ISO. The 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.
The use of OpenShiftSDN with single-node OpenShift is not supported. OVN-Kubernetes is the default network plugin for single-node OpenShift deployments.
1.3. Requirements for installing OpenShift on a single node Copy linkLink copied to clipboard!
Installing OpenShift Container Platform on a single node alleviates some of the requirements for high availability and large scale clusters. However, you must address the following requirements:
- Administration host: You must have a computer to prepare the ISO, to create the USB boot drive, and to monitor the installation.
-
Supported platforms: Installing OpenShift Container Platform on a single node is supported on bare metal and Certified third-party hypervisors. In all cases, you must specify the
platform.none: {}
parameter in theinstall-config.yaml
configuration file. Production-grade server: Installing OpenShift Container Platform on a single node requires a server with sufficient resources to run OpenShift Container Platform services and a production workload.
Expand Table 1.1. Minimum resource requirements Profile Compute Memory Storage Minimum
8 vCPUs
16 GB of RAM
120 GB
NoteOne vCPU generally equals one physical core. However, if you enable simultaneous multithreading (SMT), or Hyper-Threading, each CPU thread counts as a vCPU.
Adding Operators during the installation process might increase the minimum resource requirements.
The server must have a Baseboard Management Controller (BMC) when booting with virtual media.
Networking: The server must have access to the internet or access to a local registry if it is not connected to a 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 configure the DNS to resolve the IP address to each of the following fully qualified domain names (FQDN):
Expand Table 1.2. Required DNS records Usage FQDN Description Kubernetes API
api.<cluster_name>.<base_domain>
Add a DNS A/AAAA or CNAME record. This record must be resolvable by clients external to the cluster.
Internal API
api-int.<cluster_name>.<base_domain>
Add a DNS A/AAAA or CNAME record when creating the ISO manually. This record must be resolvable by nodes within the cluster.
Ingress route
*.apps.<cluster_name>.<base_domain>
Add a wildcard DNS A/AAAA or CNAME record that targets the node. This record must be resolvable by clients external to the cluster.
Without persistent IP addresses, communications between the
apiserver
andetcd
might fail.
Chapter 2. Installing OpenShift on a single node Copy linkLink copied to clipboard!
You can install single-node OpenShift by using either the web-based Assisted Installer or the coreos-installer
tool to generate a discovery ISO image. The discovery ISO image writes the Red Hat Enterprise Linux CoreOS (RHCOS) system configuration to the target installation disk, so that you can run a single-cluster node to meet your needs.
Consider using single-node OpenShift when you want to run a cluster in a low-resource or an isolated environment for testing, troubleshooting, training, or small-scale project purposes.
2.1. Installing single-node OpenShift using the Assisted Installer Copy linkLink copied to clipboard!
To install OpenShift Container Platform on a single node, use the web-based Assisted Installer wizard to guide you through the process and manage the installation.
2.1.1. Generating the discovery ISO with the Assisted Installer Copy linkLink copied to clipboard!
Installing OpenShift Container Platform on a single node requires a discovery ISO, which the Assisted Installer can generate.
Procedure
- On the administration host, open a browser and navigate to Red Hat OpenShift Cluster Manager.
- Click Create New Cluster to create a new cluster.
- In the Cluster name field, enter a name for the cluster.
In the Base domain field, enter a base domain. For example:
example.com
example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow All DNS records must be subdomains of this base domain and include the cluster name, for example:
<cluster_name>.example.com
<cluster_name>.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteYou cannot change the base domain or cluster name after cluster installation.
- Select Install single node OpenShift (SNO) and complete the rest of the wizard steps. Download the discovery ISO.
Complete the remaining Assisted Installer wizard steps.
ImportantEnsure that you take note of the discovery ISO URL for installing with virtual media.
If you enable OpenShift Virtualization during this process, you must have a second local storage device of at least 50GiB for your virtual machines.
2.1.2. Installing single-node OpenShift with the Assisted Installer Copy linkLink copied to clipboard!
Use the Assisted Installer to install the single-node cluster.
Prerequisites
- Ensure that the boot drive order in the server BIOS settings defaults to booting the server from the target installation disk.
Procedure
- Attach the discovery ISO image to the target host.
- Boot the server from the discovery ISO image. The discovery ISO image writes the system configuration to the target installation disk and automatically triggers a server restart.
- On the administration host, return to the browser. Wait for the host to appear in the list of discovered hosts. If necessary, reload the Assisted Clusters page and select the cluster name.
- Complete the install wizard steps. Add networking details, including a subnet from the available subnets. Add the SSH public key if necessary.
- Monitor the installation’s progress. Watch the cluster events. After the installation process finishes writing the operating system image to the server’s hard disk, the server restarts.
Optional: Remove the discovery ISO image.
The server restarts several times automatically, deploying the control plane.
2.2. Installing single-node OpenShift manually Copy linkLink copied to clipboard!
To install OpenShift Container Platform on a single node, first generate the installation ISO, and then boot the server from the ISO. You can monitor the installation using the openshift-install
installation program.
2.2.1. Generating the installation ISO with coreos-installer Copy linkLink copied to clipboard!
Installing OpenShift Container Platform on a single node requires an installation ISO, which you can generate with the following procedure.
Prerequisites
-
Install
podman
.
Procedure
Set the OpenShift Container Platform version:
export OCP_VERSION=<ocp_version>
$ export OCP_VERSION=<ocp_version>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Replace
<ocp_version>
with the current version, for example,latest-4.12
Set the host architecture:
export ARCH=<architecture>
$ export ARCH=<architecture>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Replace
<architecture>
with the target host architecture, for example,aarch64
orx86_64
.
Download the OpenShift Container Platform client (
oc
) and make it available for use by entering the following commands:curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-client-linux.tar.gz -o oc.tar.gz
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-client-linux.tar.gz -o oc.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tar zxf oc.tar.gz
$ tar zxf oc.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x oc
$ chmod +x oc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the OpenShift Container Platform installer and make it available for use by entering the following commands:
curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz -o openshift-install-linux.tar.gz
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz -o openshift-install-linux.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tar zxvf openshift-install-linux.tar.gz
$ tar zxvf openshift-install-linux.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x openshift-install
$ chmod +x openshift-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Retrieve the RHCOS ISO URL by running the following command:
export ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
$ export ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the RHCOS ISO:
curl -L $ISO_URL -o rhcos-live.iso
$ curl -L $ISO_URL -o rhcos-live.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Prepare the
install-config.yaml
file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Add the cluster domain name.
- 2
- Set the architecture to
arm64
for 64-bit ARM oramd64
for 64-bit x86 architectures. This needs to be set explicitly to the target host architecture. - 3
- Set the
compute
replicas to0
. This makes the control plane node schedulable. - 4
- Set the
controlPlane
replicas to1
. In conjunction with the previouscompute
setting, this setting ensures the cluster runs on a single node. - 5
- Set the
metadata
name to the cluster name. - 6
- Set the
networking
details. OVN-Kubernetes is the only allowed network plugin type for single-node clusters. - 7
- Set the
cidr
value to match the subnet of the single-node OpenShift cluster. - 8
- Set the path to the installation disk drive, for example,
/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2
. - 9
- Copy the pull secret from the Red Hat OpenShift Cluster Manager and add the contents to this configuration setting.
- 10
- Add the public SSH key from the administration host so that you can log in to the cluster after installation.
Generate OpenShift Container Platform assets by running the following commands:
mkdir ocp
$ mkdir ocp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cp install-config.yaml ocp
$ cp install-config.yaml ocp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./openshift-install --dir=ocp create single-node-ignition-config
$ ./openshift-install --dir=ocp create single-node-ignition-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Embed the ignition data into the RHCOS ISO by running the following commands:
alias coreos-installer='podman run --privileged --pull always --rm \ -v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \ -w /data quay.io/coreos/coreos-installer:release'
$ alias coreos-installer='podman run --privileged --pull always --rm \ -v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \ -w /data quay.io/coreos/coreos-installer:release'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow coreos-installer iso ignition embed -fi ocp/bootstrap-in-place-for-live-iso.ign rhcos-live.iso
$ coreos-installer iso ignition embed -fi ocp/bootstrap-in-place-for-live-iso.ign rhcos-live.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. Monitoring the cluster installation using openshift-install Copy linkLink copied to clipboard!
Use openshift-install
to monitor the progress of the single-node cluster installation.
Prerequisites
- Ensure that the boot drive order in the server BIOS settings defaults to booting the server from the target installation disk.
Procedure
- Attach the discovery ISO image to the target host.
- Boot the server from the discovery ISO image. The discovery ISO image writes the system configuration to the target installation disk and automatically triggers a server restart.
On the administration host, monitor the installation by running the following command:
./openshift-install --dir=ocp wait-for install-complete
$ ./openshift-install --dir=ocp wait-for install-complete
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The server restarts several times while deploying the control plane.
Verification
After the installation is complete, check the environment by running the following command:
export KUBECONFIG=ocp/auth/kubeconfig
$ export KUBECONFIG=ocp/auth/kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME STATUS ROLES AGE VERSION control-plane.example.com Ready master,worker 10m v1.25.0
NAME STATUS ROLES AGE VERSION control-plane.example.com Ready master,worker 10m v1.25.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Creating a bootable ISO image on a USB drive Copy linkLink copied to clipboard!
You can install software using a bootable USB drive that contains an ISO image. Booting the server with the USB drive prepares the server for the software installation.
Procedure
- On the administration host, insert a USB drive into a USB port.
Create a bootable USB drive, for example:
dd if=<path_to_iso> of=<path_to_usb> status=progress
# dd if=<path_to_iso> of=<path_to_usb> status=progress
Copy to Clipboard Copied! Toggle word wrap Toggle overflow where:
- <path_to_iso>
-
is the relative path to the downloaded ISO file, for example,
rhcos-live.iso
. - <path_to_usb>
-
is the location of the connected USB drive, for example,
/dev/sdb
.
After the ISO is copied to the USB drive, you can use the USB drive to install software on the server.
2.4. Booting from an HTTP-hosted ISO image using the Redfish API Copy linkLink copied to clipboard!
You can provision hosts in your network using ISOs that you install using the Redfish Baseboard Management Controller (BMC) API.
Prerequisites
- Download the installation Red Hat Enterprise Linux CoreOS (RHCOS) ISO.
Procedure
- Copy the ISO file to an HTTP server accessible in your network.
Boot the host from the hosted ISO file, for example:
Call the redfish API to set the hosted ISO as the
VirtualMedia
boot media by running the following command:curl -k -u <bmc_username>:<bmc_password> -d '{"Image":"<hosted_iso_file>", "Inserted": true}' -H "Content-Type: application/json" -X POST <host_bmc_address>/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia
$ curl -k -u <bmc_username>:<bmc_password> -d '{"Image":"<hosted_iso_file>", "Inserted": true}' -H "Content-Type: application/json" -X POST <host_bmc_address>/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Where:
- <bmc_username>:<bmc_password>
- Is the username and password for the target host BMC.
- <hosted_iso_file>
-
Is the URL for the hosted installation ISO, for example:
http://webserver.example.com/rhcos-live-minimal.iso
. The ISO must be accessible from the target host machine. - <host_bmc_address>
- Is the BMC IP address of the target host machine.
Set the host to boot from the
VirtualMedia
device by running the following command:curl -k -u <bmc_username>:<bmc_password> -X PATCH -H 'Content-Type: application/json' -d '{"Boot": {"BootSourceOverrideTarget": "Cd", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideEnabled": "Once"}}' <host_bmc_address>/redfish/v1/Systems/System.Embedded.1
$ curl -k -u <bmc_username>:<bmc_password> -X PATCH -H 'Content-Type: application/json' -d '{"Boot": {"BootSourceOverrideTarget": "Cd", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideEnabled": "Once"}}' <host_bmc_address>/redfish/v1/Systems/System.Embedded.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reboot the host:
curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "ForceRestart"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
$ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "ForceRestart"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: If the host is powered off, you can boot it using the
{"ResetType": "On"}
switch. Run the following command:curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "On"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
$ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "On"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. Creating a custom live RHCOS ISO for remote server access Copy linkLink copied to clipboard!
In some cases, you cannot attach an external disk drive to a server, however, you need to access the server remotely to provision a node. It is recommended to enable SSH access to the server. You can create a live RHCOS ISO with SSHd enabled and with predefined credentials so that you can access the server after it boots.
Prerequisites
-
You installed the
butane
utility.
Procedure
-
Download the
coreos-installer
binary from thecoreos-installer
image mirror page. - Download the latest live RHCOS ISO from mirror.openshift.com.
Create the
embedded.yaml
file that thebutane
utility uses to create the Ignition file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- The
core
user has sudo privileges.
Run the
butane
utility to create the Ignition file using the following command:butane -pr embedded.yaml -o embedded.ign
$ butane -pr embedded.yaml -o embedded.ign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow After the Ignition file is created, you can include the configuration in a new live RHCOS ISO, which is named
rhcos-sshd-4.12.0-x86_64-live.x86_64.iso
, with thecoreos-installer
utility:coreos-installer iso ignition embed -i embedded.ign rhcos-4.12.0-x86_64-live.x86_64.iso -o rhcos-sshd-4.12.0-x86_64-live.x86_64.iso
$ coreos-installer iso ignition embed -i embedded.ign rhcos-4.12.0-x86_64-live.x86_64.iso -o rhcos-sshd-4.12.0-x86_64-live.x86_64.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Check that the custom live ISO can be used to boot the server by running the following command:
coreos-installer iso ignition show rhcos-sshd-4.12.0-x86_64-live.x86_64.iso
# coreos-installer iso ignition show rhcos-sshd-4.12.0-x86_64-live.x86_64.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Legal Notice
Copy linkLink copied to clipboard!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.