OpenShift is an ap­pli­ca­tion platform based on Ku­ber­netes. The software is used to build dis­trib­uted, scaling ap­pli­ca­tion and de­vel­op­ment en­vi­ron­ments. Based on OpenShift, pro­pri­etary Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS), and Con­tain­ers-as-a-Service (CaaS) solutions can be im­ple­ment­ed.

The software allows complete man­age­ment of the ap­pli­ca­tion lifecycle, including de­vel­op­ment, rollout, op­er­a­tions, and main­te­nance. More than two thousand en­ter­pris­es worldwide rely on OpenShift to host their ap­pli­ca­tions in hybrid cloud en­vi­ron­ments. We will explain how OpenShift works and what makes the software special.

What versions of OpenShift are available?

OpenShift is not just one single product. Rather, the Red Hat company releases several versions as open source software under the Apache license. The “flagship” version is the “Red Hat OpenShift Container Platform” (OCP). This is installed as a Ku­ber­netes cluster on a company’s hybrid cloud in­fra­struc­ture. A single OpenShift cluster can therefore span multiple public and private cloud en­vi­ron­ments.

In addition to the OpenShift Container Platform (OCP), there is the community version “OKD”, which formerly held the name “OpenShift Origin”. OKD is a cus­tomized Ku­ber­netes dis­tri­b­u­tion that relies on Ku­ber­netes for cluster man­age­ment and Open Container Ini­tia­tive (OCI)-compliant con­tain­ers. It also includes ap­pli­ca­tion lifecycle man­age­ment ca­pa­bil­i­ties and DevOps tools. In­ter­est­ing­ly, OKD is the “upstream” foun­da­tion for the de­vel­op­ment of the other OpenShift versions – similar to how the open source Chromium project serves as the foun­da­tion for de­vel­op­ment of the Chrome browser.

In addition to OCP and OKD as “on-premises” solutions, which are hosted on their own in­fra­struc­ture, there are a number of “managed” solutions as well. These run on various public clouds from large providers, as well as on Red Hat’s cloud in­fra­struc­ture. We are primarily dis­cussing the OCP version 4.8, which is the current version at the time of writing. Let’s take an overview look at the various OpenShift versions:

OpenShift Products De­scrip­tion Platform
Red Hat OpenShift Container Platform (OCP) “On-premises” en­ter­prise solution for use in your own hybrid cloud in­fra­struc­ture. Red Hat En­ter­prise Linux CoreOS (RHCOS)
OKD “On-premises” community product, foun­da­tion for OCP Red Hat En­ter­prise Linux (RHEL) or CentOS
OpenShift Online Managed SaaS solution Red Hat Cloud
OpenShift Dedicated Managed PaaS solution; Red Hat takes over complete ad­min­is­tra­tion of the system Amazon AWS or Google Cloud

How does OpenShift work?

OpenShift is a suite of ap­pli­ca­tion platforms based on Ku­ber­netes. The software includes a handful of core com­po­nents, as well as a variety of ad­di­tion­al func­tion­al­i­ties. OpenShift can be hosted in a wide variety of en­vi­ron­ments, including “bare metal” machines, public and private clouds, and “edge” devices.

Tip

We discuss the sim­i­lar­i­ties and dif­fer­ences of OpenShift and Ku­ber­netes in a separate article.

What com­po­nents does OpenShift consist of?

OpenShift is based on a software stack, which is a stack of in­ter­con­nect­ed tech­nolo­gies. At the lowest level, a special Linux dis­tri­b­u­tion is used as the operating system. The “Red Hat En­ter­prise Linux CoreOS” (RHCOS) used here is installed on physical or vir­tu­al­ized hardware.

Note

In previous OpenShift versions, “Red Hat En­ter­prise Linux” (RHEL) was used instead of RHCOS.

Building on the RHCOS operating system, Ku­ber­netes is used as a container and cluster or­ches­tra­tor. Ku­ber­netes handles de­ploy­ment, scaling and man­age­ment of con­tainer­ized ap­pli­ca­tions. Ku­ber­netes operators are used as the next layer in the software stack. These are pre-built, easy-to-install “Ku­ber­netes-native” ap­pli­ca­tions. In addition to operators, a container registry is used when setting up and running an OpenShift cluster.

What kind of Ku­ber­netes is included in OpenShift?

OpenShift relies on a special Ku­ber­netes dis­tri­b­u­tion, which uses CRI-O instead of Docker or con­tain­erd as the container runtime. By breaking away from Docker as the un­der­ly­ing tech­nol­o­gy, there are ad­van­tages in terms of security and com­pat­i­bil­i­ty with other container formats.

What is an operator in OpenShift?

A Ku­ber­netes operator oversees the health of an entire ap­pli­ca­tion. With in­stal­la­tion, operation, and main­te­nance, operators cover the complete lifecycle of a Ku­ber­netes ap­pli­ca­tion. In the words of the OpenShift doc­u­men­ta­tion:

Quote

“An Operator is a method of packaging, deploying, and managing a Ku­ber­netes-native ap­pli­ca­tion. A Ku­ber­netes-native ap­pli­ca­tion is an ap­pli­ca­tion that is both deployed on Ku­ber­netes and managed using the Ku­ber­netes APIs and kubectl tooling.” – Source: https://cloud.redhat.com/learn/topics/operators

There is a wide range of operators on the Op­er­a­torHub platform. For example, various database systems can be seam­less­ly in­te­grat­ed into the OpenShift cluster with minimal effort. Fur­ther­more, in­fra­struc­ture operators are used to manage the cluster.

As it turns out, operators are essential to OpenShift’s func­tion­al­i­ty. A Ku­ber­netes operator is a spe­cial­iza­tion of the ap­pli­ca­tion-level Ku­ber­netes con­troller. A Ku­ber­netes con­troller con­tin­u­ous­ly monitors the state of a resource and adjusts various pa­ra­me­ters as needed to maintain a defined state.

What is a registry in OpenShift?

A container registry contains container images that are con­tin­u­ous­ly created as software is built. The images are versioned, subjected to security checks, and stored in the registry. In­ter­est­ing­ly, within OpenShift the registry itself is im­ple­ment­ed as an operator.

“Quay” is a registry developed by Red Hat with a focus on security. The images required during the in­stal­la­tion of the OpenShift cluster are obtained from Quay. In doing so, Quay can manage other build artifacts in addition to the container images. In the words of the Red Hat doc­u­men­ta­tion:

Quote

“Quay is a container registry for storing con­tain­ers, Helm charts, and other container-related content.” – Source: https://www.redhat.com/sysadmin/in­tro­duc­tion-quay

Following the tiered product model of OpenShift OCP and OKD, multiple versions of Quay exist:

Registry Ex­pla­na­tion Platform
Red Hat Quay runs on its own computing in­fra­struc­ture, including private clouds; in­te­grat­ed into OpenShift by an operator own cloud en­vi­ron­ment, including private cloud
Red Hat Quay.io managed by Red Hat with en­ter­prise-level support Cloud

How is OpenShift struc­tured?

OpenShift is built on top of Ku­ber­netes as a cluster of con­tain­ers. At the cluster level, OpenShift includes two tiers:

  1. Control Plane

The control plane is composed of so-called “control plane machines”. These are also known as “Master Machines” and manage the OpenShift Container Platform cluster.

  1. Worker Machines

The worker machines, which are also known as “compute machines”, perform the actual work of the OpenShift cluster. Master machines assign tasks to the worker machines and monitor their execution.

What services run on the working machines?

A working machine runs the following services and is thus included in the OpenShift cluster:

  • CRI-O, as a container runtime en­vi­ron­ment,
  • Kubelet, as a service that accepts and processes requests to start and stop workloads,
  • a service proxy, which handles com­mu­ni­ca­tion between work machines.

The further spe­cial­iza­tion of the working machines results from the state of the running con­tain­ers and the software they contain.

What com­po­nents con­sti­tute the control plane?

Let’s take a detailed look at the structure of the control plane below. We dis­tin­guish between com­po­nents of the Ku­ber­netes im­ple­men­ta­tion and the OpenShift-specific com­po­nents:

Ku­ber­netes component Ex­pla­na­tion
Ku­ber­netes API Server The Ku­ber­netes API Server checks and con­fig­ures the data for pods, services, and repli­ca­tion con­trollers. Fur­ther­more, the API acts as a central interface for global cluster state data.
etcd The etcd service contains the per­sis­tent master state. The other com­po­nents monitor ectd for changes and adjust their state as required.
Ku­ber­netes Con­troller Manager The Ku­ber­netes Con­troller Manager monitors etcd for changes to objects such as repli­ca­tion, namespace, and service account con­trollers and uses the API to achieve the desired state. There is a cluster of several of these processes, with one active as the leader.
Ku­ber­netes Scheduler The Ku­ber­netes scheduler detects newly created pods that have not yet been assigned a node and chooses the best node to host the pod.

The OpenShift-specific control plane com­po­nents are im­ple­ment­ed as operators:

OpenShift component Ex­pla­na­tion Managed by
OpenShift API Server The OpenShift API Server checks and con­fig­ures OpenShift resources, such as projects, routes, and templates. OpenShift API Server Operator
OpenShift Con­troller Manager The OpenShift Con­troller Manager monitors etcd for changes to OpenShift objects, such as projects, routes, and template con­troller objects, and uses the API to achieve the desired state. OpenShift Con­troller Manager Operator
OpenShift OAuth API Server The OpenShift OAuth API Server validates and con­fig­ures data for au­then­ti­ca­tion on OpenShift Container Platform. This includes users, groups, and OAuth tokens. Cluster Au­then­ti­ca­tion Operator
OpenShift OAuth Server Users request a token from the OpenShift OAuth Server to au­then­ti­cate against the API. Cluster Au­then­ti­ca­tion Operator

For which ap­pli­ca­tion scenarios is OpenShift used?

The OpenShift Container Platform is primarily used to build ap­pli­ca­tion and de­vel­op­ment en­vi­ron­ments. This allows company-pro­pri­etary PaaS, SaaS, and CaaS solutions to be im­ple­ment­ed. Due to the power and com­plex­i­ty of the software, OpenShift is primarily used for long-lived projects of large or­ga­ni­za­tions.

OpenShift users include gov­ern­ment and research in­sti­tu­tions on a national level, as well as in­ter­na­tion­al­ly active companies such as banks and insurance companies. The afore­men­tioned user groups all benefit from hybrid cloud de­ploy­ments. De­ploy­ment across private and public cloud bound­aries allows parts of the in­fra­struc­ture to be hosted according to local com­pli­ance re­quire­ments.

Another important aspect that speaks for the use of OpenShift is its high level of security. Pre­vent­ing cyber in­tru­sions and data leaks is essential for large, in­ter­na­tion­al companies. Security breaches can result in lasting damage to the company’s image and sub­stan­tial financial penalties.

The func­tion­al­i­ties included in OpenShift allow fast de­vel­op­ment workflows. This leads to radically reduced de­vel­op­ment times in the field; in-house software teams can com­fort­ably manage their resources them­selves and con­tin­u­ous­ly drive de­vel­op­ment forward.

If a company uses one of the available Managed OpenShift offerings, it elim­i­nates the need for ad­min­is­tra­tion of servers and operating systems. Instead of worrying about updates and backups, the company can focus on the es­sen­tials: In­no­vat­ing and creating value for customers.

Certainly, OpenShift is not suited for small busi­ness­es or in­di­vid­ual de­vel­op­ers. To meet their needs, it’s better to reach for one of the available OpenShift al­ter­na­tives or Ku­ber­netes al­ter­na­tives.

What is the feature set of OpenShift?

A major advantage of OpenShift over “bare” Ku­ber­netes are the out-of-the-box con­ve­nience features. These go beyond the mere cluster man­age­ment of Ku­ber­netes. Among other things, OpenShift includes func­tion­al­i­ties for:

  • Software-defined net­work­ing (SDN)
  • Routing
  • Au­then­ti­ca­tion
  • Mon­i­tor­ing and logging

To manage the platform, OpenShift includes a powerful web interface in addition to the oblig­a­tory command line tools. De­vel­op­ment and DevOps workflows are ac­cel­er­at­ed by using “Red Hat OpenShift Pipelines”. The open source Tekton framework for “Con­tin­u­ous in­te­gra­tion” / “Con­tin­u­ous de­vel­op­ment” (CI/CD) is used. In addition to con­tainer­ized ap­pli­ca­tions, modern “server­less” ap­proach­es based on “Server­less Ku­ber­netes” (Knative) can be used.

Another focus of OpenShift is on the provision of dis­trib­uted mi­croser­vice ar­chi­tec­tures. Also known as “Red Hat Service Mesh,” this ap­pli­ca­tion pattern is based on the “Istio” open source project. To deal with the com­plex­i­ty as­so­ci­at­ed with mi­croser­vice ar­chi­tec­tures, OpenShift includes a number of other tools: “Prometheus” is used to manage mon­i­tor­ing and no­ti­fi­ca­tions, whereas “Jaeger” allows tracking of trans­ac­tions. “Kiali” is used to visualize the service mesh.

What are the ad­van­tages and dis­ad­van­tages of OpenShift?

One of the biggest ad­van­tages of using OpenShift is being able to run the software in a hybrid cloud en­vi­ron­ment. Here, a single OpenShift cluster spans the bound­aries of multiple private and public clouds. OpenShift clusters that use Red Hat En­ter­prise Linux CoreOS (RHCOS) as their sole operating system benefit from automated processes when updating and upgrading.

The in­te­grat­ed Red Hat tech­nol­o­gy and man­age­ment tools and processes built into the platform result in a high user ex­pe­ri­ence. The open source de­vel­op­ment model and built-in DevOps func­tion­al­i­ties allow rapid de­vel­op­ment processes. The increased use of operators as a universal ap­pli­ca­tion format con­tributes to stan­dard­iza­tion and sim­pli­fies pre­vi­ous­ly complex cus­tomiza­tions.

The use of CRI-O as a container runtime instead of Docker leads to increased security of the platform. The user-friendly web interface is con­sid­ered more powerful and clearer than the com­pa­ra­ble Ku­ber­netes dashboard. OpenShift also excels on the command line with the oc command, which makes the platform easier to use.

Of course, the afore­men­tioned special features of OpenShift also cause some dis­ad­van­tages. For one, die-hard Ku­ber­netes users miss the powerful Helm charts, which describe the in­fra­struc­ture setup. Fur­ther­more, not all Docker Hub con­tain­ers can be used under OpenShift due to the strict security settings. The focus on Red Hat’s own Linux dis­tri­b­u­tion Red Hat En­ter­prise Linux CoreOS (RHCOS) also has a limiting effect; Ku­ber­netes is more flexible in this regard.

On what in­fra­struc­ture can OpenShift be run?

OpenShift can be run on just about any level of compute in­fra­struc­ture, from “bare metal” machines in your own data center, to vir­tu­al­ized hardware in private and public cloud en­vi­ron­ments, to edge devices. We dis­tin­guish between “managed” solutions, where the man­age­ment of the OpenShift platform is handled by the vendor, and customer-ad­min­is­tered “self-managed” in­stal­la­tions:

What are the options for running managed OpenShift?

Product In­fra­struc­ture Managed by Supported by
Microsoft Azure Red Hat OpenShift Microsoft Azure Red Hat and Microsoft Red Hat and Microsoft
Red Hat OpenShift Dedicated Amazon AWS or Google Cloud Red Hat Red Hat
Red Hat OpenShift on IBM Cloud IBM Cloud IBM Red Hat and IBM
Red Hat OpenShift Service on AWS Amazon AWS Red Hat and AWS Red Hat and AWS

What are the options for running self-managed OpenShift?

Product In­fra­struc­ture Managed by Supported by
Red Hat OpenShift Platform Plus Private Cloud, Public Cloud, Physical Machine, Virtual Machine, Edge Customer Red Hat / In­fra­struc­ture Provider
Red Hat OpenShift Container Platform Private Cloud, Public Cloud, Physical Machine, Virtual Machine, Edge Customer Red Hat / In­fra­struc­ture Provider
Red Hat OpenShift Ku­ber­netes Engine Private Cloud, Public Cloud, Physical Machine, Virtual Machine, Edge Customer Red Hat / In­fra­struc­ture Provider
Go to Main Menu