Multi-architecture compute
Overview
A Red Hat® OpenShift® Container Platform cluster with multi-architecture compute machines is a cluster that supports compute machines with different architectures. To create a multi-architecture compute cluster, you set up a cluster on one architecture and then attach nodes of a different architecture after the initial cluster installation is finished and is stable. The control plane nodes are only hosted on the architecture of the initial cluster and only compute nodes of the second architecture are added to the set of compute nodes of the cluster.
With Red Hat OpenShift 4.17 and later, you can deploy your initial cluster on either IBM Z® and
IBM®LinuxONE (s390x) or on x86 architecture. The installation of the cluster must be on platform
none.
Platform none means that the infrastructure resources such as virtual machines
or load balancers are not managed by Red Hat OpenShift. This is an installation-time decision and
cannot be changed after the installation. See: Installing a cluster on any platform
Currently, the only supported combinations that include the s390x architecture are combinations with x86. The deployment on s390x can be directly on logical partitions (LPAR) or virtualized by using z/VM®, KVM, or zCX. For details, see the white paper Empower the strengths of different infrastructure architectures – Benefit with IBM Z and IBMLinuxONE from the Red Hat OpenShift multi-architecture compute feature.
All of the compute nodes are part of the same Red Hat OpenShift cluster. With a multi-architecture compute cluster, you can deploy application components on the most suitable architecture while maintaining a unified management interface. An example is setting up the web front end for your application on x86 and setting up backend services on compute nodes close to your database that runs on IBM Z.
Red Hat OpenShift provides you with tools to control how your workload is deployed across architectures. For details on how to build OCI image indexes for your multi-architecture compute deployments see OCI Image Index Specification(GitHub).
Red Hat OpenShift automatically adds a label (kubernetes.io/arch) that denotes the architecture of a node. For details on controlling pod placement see Controlling pod placement on nodes using node affinity rules(Red Hat documentation).
Workloads on mixed architectures
For Multi-Architecture Compute clusters, Red Hat OpenShift provides you with different options of specifying where to run which part of your application. Depending on which architecture your container images are available for, you can use node labels to assign containers to nodes of specific architectures. For details, see kubernetes.io/arch. You can assign pods to nodes to run containers on or specify in a fine-grained way, which containers to run on which architecture node in your cluster. For details, see Assigning Pods to Nodes. If you create pods from manifest lists, your workload can also be flexibly scheduled depending on node availability. Thus, you are flexible in the way you deploy the parts of your application. Example scenarios are:
- Some of the images are only available on one of the architectures but should be closely integrated and managed together.
- You want to schedule different parts of the application on different architecture because, for example, you want to use IBM Z as the backend for increased reliability.
- Parts of the application should run on s390x to get these parts close to data stores running on z/OS.
Storage on deployments with mixed architectures
Red Hat OpenShift allows you to connect applications running on s390x or x86 to consume storage hosted on either architecture. You can use IBM Storage Fusion to set up storage in a multi-architecture compute cluster. However, all IBM Storage Fusion Storage nodes must be on the same architecture.