OpenShift Cluster Design
OpenShift is a cloud application platform produced by RedHat, which allows one to run web-based applications on public or private hardware. This document describes the topology and architecture of a private cluster running on RedHat CoreOS on a privately owned KVM host.
This document will describe:
- The components of an OpenShift Cluster
- How these components interact
- How to build an OpenShift cluster
Definition of terms
Node : A node is a machine, virtual or physical, running RedHat CoreOS in order to process cluster workloads.
Pod : A pod is a group of containers deployed on a cluster, and the smallest unit of computation that can be defined in Openshift.
Container : A container is an application running under OpenShift.
Topology of an OpenShift cluster
This diagram shows the components of an OpenShift cluster:
Components of the OpenShift cluster
We have the following:
- Frontnet: The external network containing user services such as file servers and printers. Connected to the Internet.
- Load Balancer: A CentOS 9 machine that runs haproxy and contains the openshift commands (openshift-install, oc, kubectl).
- Machine Network: Shiftnet. An internal network that is routed to the Outside using a KVM NAT router for Internet access, and a Load Balancer (okdlb) for accessing the applications in the cluster.
- Cluster Net: Network internal to the cluster, each node has its own subnet. Each pod has its own IP address, unique within the cluster.
- Service Net: A single network that spans the entire cluster and can be used to access services. We can have one or more service networks per cluster.
- Pods: The smallest unit of computation in a cluster, performing specific functions in an application.