Bare Metal Orchestrator has a distributed architecture that can manage the lifecycle of large numbers of geographically distributed servers. Deploy the Bare Metal Orchestrator cluster as a single cluster or in a high availability (HA) configuration with two redundant HA nodes for enhanced reliability and performance. You can deploy on any user-supplied Ubuntu 20.04LTS or Red Hat Enterprise Linux 8.6 system that meets the hardware and node requirements.
The following figure illustrates the architecture of a single node Bare Metal Orchestrator cluster:
The Bare Metal Orchestrator architecture consists of:
- User interfaces—Bare Metal Orchestrator provides a web-based user interface (UI), a Command Line Interface (CLI) client, and an Application Programming Interface (API). These interfaces perform remote infrastructure management tasks. All requests and actions from these interfaces reach the Global Controller (GC).
- Global Controller—A fully contained management cluster that is deployed at the central office that can manage sites and servers that are associated with it. It constitutes core components and site components. For more information, see Bare Metal Orchestrator components.
Bare Metal Orchestrator high availability
Bare Metal Orchestrator supports high availability (HA) to meet the demands of continuous operation deployments. High availability assures peak performance during periods of compute-intensive operation and reduces the risk of downtime that can occur because of a single point of failure.
With high availability, Bare Metal Orchestrator deploys a five-node cluster. The Global Controller (called CP1) services deploy on the first node and is a fully functional, scalable Bare Metal Orchestrator cluster to which the two HA nodes (CP2 and CP3) are added. The two HA nodes function as a redundant pair for HA failover and must be reachable from the Global Controller.
The Global Controller control data and services are fully replicated on the two HA nodes. A keepalive is used to monitor the availability of services on each node in the control plane. An automatic failover is triggered if a node failure is detected. If two control plane nodes fail, the Bare Metal Orchestrator cluster becomes non-operational.
A redundant pair of Load Balancers provides highly reliable management access for the Bare Metal Orchestrator web user interface, CLI, and API using a virtual IP (VIP) address. The VIP must be set to an available IP address on the same subnet as the two Load Balancers.
Each Load Balancer is considered a node in the five-node HA cluster and must be reachable from the Global Controller (CP1). These servers must support NGINX.
Load Balancer key tasks:
- Setting the virtual IP (VIP) address of the Load Balancers to an available IP address in the same subnet as the two Load Balancers.
- Directing front-end traffic to the three control plane nodes for HA redundancy
- Managing load distribution
- Managing control planes
The following figure shows the architecture of a five-node HA deployment with distributed storage. The five-node HA cluster consists of three control plane nodes (CP1, CP2, and CP3) and the redundant pair of Load Balancers. All nodes and the distributed storage volumes are active and must be deployed in a Ubuntu 20.04 LTS or Red Hat Enterprise Linux 8.6 environment.
Distributed block storage replicates the Bare Metal Orchestrator cluster data in storage containers located on the Global Controller (CP1) and the two redundant HA nodes (CP2 and CP3). The distributed storage volumes replicate the Bare Metal Orchestrator cluster data when using PersistentVolumeClaim (PVC).
Observe the following:
- You cannot upgrade a single-node Bare Metal Orchestrator deployment to a five-node HA deployment.
- The Ubuntu 20.04 LTS or Red Hat Enterprise Linux 8.6 operating system is supported. The same operating system version must be used on all nodes in the cluster, including the Global Controller (CP1), the two redundant HA nodes (CP2 and CP3), and the Load Balancers.
- When using a local copy of the CLI as a remote client, you must specify the virtual IP (VIP) address of the server that is hosting the Load Balancers in the kubeconfig file.
For more information about using the CLI, see Bare Metal Orchestrator Command Line Interface User's Guide.