In this article, I demonstrate how to leverage the Red Hat Advanced Cluster Management for Kubernetes console for the creation of a Red Hat OpenShift Container Platform cluster with bare-metal nodes. 

Specifically, our focus will be on setting up a three-node bare-metal cluster with the addition of an external load balancer. Red Hat Advanced Cluster Management utilizes the assisted Installer to deploy new clusters. This installation method is compatible with a range of CPU architectures, including x86_64, ppc64le, s390x, and arm64. It is presumed that the infrastructure environment satisfies all the prerequisites as specified in the official documentation to cater to your environmental requirements. Additionally, I cover the steps required to fulfill the prerequisites before proceeding with the cluster creation. 

Prerequisites

Before starting cluster creation, ensure these prerequisites are met:

  1. Load balancer configuration: Your load balancer is configured with *.apps, api, and api-int VIPs for the bare-metal cluster. In this article, I'm not running Keepalived on the nodes, because I'm using an external load balancer.
  2. Network connectivity: Your bare-metal servers and Red Hat Advanced Cluster Management hub network must be able to communicate, with all necessary ports open.
  3. Pull secret and SSH key: You have a pull secret and SSH key.

Creating your cluster with the web console

Let's get started with the cluster creation process using the Red Hat Advanced Cluster Management console:

Create a host inventory

  1. Navigate to Infrastructure > Host inventory and click on Create infrastructure environment and fill in the required fields like Name and Location.
  2. Provide the pull secret and provide an SSH key to be able to connect to the hosts for debugging purposes during the discovery process.
  3. If your hosts are behind a firewall that requires a proxy, provide the necessary proxy information.
  4. Add your NTP sources for time synchronization among the hosts in this environment.
Create infrastructure environment

Create your cluster discovery ISO

  1. On the clusters page, click Create cluster and follow the steps in the console.
  2. Select the new host inventory and click Add hosts. choose With Discovery ISO, and download the discovery ISO.
Download discovery ISO

Prepare your bare-metal servers

  1. Ensure that your bare-metal servers can obtain DHCP IPs, and your Red Hat Advanced Cluster Management hub cluster has access to that DHCP network for host discovery.
  2. If you use static IP, bridges, or bonded networking, verify your configurations are correct.
  3. Power on each host and make sure they boot from the discovery ISO.

Add hosts

  1. After the hosts have booted from the discovery ISO, they are listed in the Hosts tab on the Red Hat Advanced Cluster Management web console.
  2. Select all three hosts and approve them. 
  3. Consider changing the hostname for easy identification later.
Approve hosts for new cluster

Create your cluster

  1. Go to Infrastructure > Clusters and click Create cluster.
  2. Select Host inventory from the list.
  3. Choose Standalone control plane and then Use existing hosts.
  4. Provide cluster details like cluster name, base domain, and pull secret. Skip automation for now.
Provide information to create the cluster
  1. Select all three hosts and click Next to bind them. Wait for the binding to complete.
Select hosts for the new cluster Bind all hosts

Networking configuration

Under networking, choose User-Managed Networking instead of the default Cluster-Managed Networking. This is essential when using an external load balancer. Opting for this lets you deploy OpenShift Container Platform with a custom network setup. You can use an external load balancer instead of internal keepalived and VRRP. User-managed networking also allows you to distribute cluster nodes across different L2 network segments as needed. You can find additional information about cluster-managed networking and user-managed networking in the Red Hat OpenShift documentation.

Network configuration

Why select user-managed networking instead of the default option? Cluster-managed networking prompts you to specify API and Ingress IPs, and it attempts to create internal API and Ingress configurations. This can result in troublesome errors that jeopardize your cluster deployment when using external load balancers.

User-managed network configuration

You can also define the cluster network CIDR and service network CIDR by selecting the advanced networking feature.

Define all network settings

If your hosts are behind a firewall using a proxy, enable Show proxy settings and define HTTP, HTTPS, and No Proxy.

Configure proxy settings (if required)

Create your cluster

  1. Finally, click Create cluster. The cluster creation process takes approximately 40 minutes, depending on your network speed.

Common troubleshooting

When things aren't working, here are some things to look at:

  • If your hosts aren't available in the Red Hat Advanced Cluster Management web console, make sure they have access to the Red Hat Advanced Cluster Management network.
  • Verify that the discovery agent is running with the correct parameters. Directly SSH to one of the bare-metal nodes with the ssh-key to verify.
    • To see the agent's status, use ps -ef | grep agent.
    • Review logs for the agent using sudo journalctl -u agent.service from the same bare-metal node.
    • Ensure the proxy settings are correct and the assisted installer service is connected to the network.
  • During cluster deployment, ensure hosts have internet access to download necessary images.
  • Log in using SSH to the node and verify that podman pull can fetch images from the registry. If you're using a proxy, ensure that HTTPS proxy is configured and has access to the registry.

I hope this guide simplifies the process of deploying a bare-metal cluster with an external load balancer using the Red Hat Advanced Cluster Management console. For more details, refer to the official documentation.

Learn more


About the author

Sohidur Rahman is a dedicated Red Hat Container Infrastructure Consultant, driven by a passion for helping clients overcome their strategic technology and business challenges using open source methods and technologies.

Read full bio