What is OpenShift?

OpenShift is an application platform

In simplest terms, OpenShift is a platform designed to help reliably run applications. It can be deployed on premise, in the cloud, directly on hardware, and also on various hypervisors. While the original focus of the platform was to run applications in linux containers it has since evolved to also run windows application containers and applications hosted by an array of virtualization providers.

If you can’t explain the difference between a virtual machine and a container, look here.

virtualization vs containers transparent

OpenShift is an open source application platform

Like the rest of the Red Hat portfolio, OpenShift is open source. While most users won’t need to dive into the codebase to identify the source of a behavior, any user certainly can. The operating system (RHEL CoreOS), control components (Kubernetes), and layered software solutions (Operators) are all freely available to read, fork, and patch.

Being open source has the added advantage of being able to run the platform without a dedicated subscription:

OpenShift is an open source application platform built with Kubernetes

The original release of OpenShift actually predates the rise of modern standards like Kubernetes. With the release of OpenShift version 3 however, Kubernetes became the foundation of the platform. The OpenShift and Kubernetes communities thrive to this day for a number of reasons.

Just remember to PURSUE…​
  • Portability - Kubernetes makes minimal demands on the underlying infrastructure, and can run on diverse sets of systems.

  • Usability - Kubernetes configuration is API driven, and every change can be implemented with YAML syntax.

  • Reliability - Kubernetes is self-healing, limiting the effects of service disruption.

  • Scalability - All of the components that comprise Kubernetes are designed with massive scale in mind.

  • Univesrality - Kubernetes has a large body of supporting documents from both the maintainers and the community.

  • Extensibility - The computing landscape is constantly shifting, and kubernetes was built to accommodate new runtimes, modes of operation, paradigms, etc.

Kubernetes Basics

The content in this section is a minimal description of Kubernetes. If you are new to Kubernetes please refer to these links for more comprehensive tutorials:

Kubernetes Components

components of kubernetes

OpenShift is an open source application platform built with Kubernetes, that includes a suite of additional services to facilitate operations

OpenShift goes well beyond the capabilities of a basic Kubernetes cluster. We can see a few of the additional components in this diagram taken directly from the documentation.

components of openshift

OpenShift provides "baked in" solutions for Networking, Observability, Machine Configuration, and Container Image Distribution.

OpenShift is an enterprise grade open source application platform built with Kubernetes, that includes a suite of additional services to facilitate operations

The final addition to our definition is "enterprise grade". OpenShift has been validated against a number of robust standards including but not limited to:

OpenShift takes much of the guess work out of securing a kubernetes platform with best practice configuration embedded directly into the infrastructure, platform, and runtimes.

Knowledge Check

Can you explain what happens when you create a new resource in Kubernetes?

Answer
  1. The API Server receives your request and validates your credentials and the content.

  2. The API Server reformats the request and commits the information to ETCD.

  3. Several Controllers begin remediating the difference in desired vs actual state.

  4. The Scheduler assigns the resource to the most viable node.

  5. The Kubelet identifies an update to the colocated node’s state.

  6. The Kubelet coordinates with the Container Runtime to create the workload.

How many components does OpenShift add to Kubernetes?

Answer
From the list above:
  • OpenShift Services

  • Cluster Version Operator

  • Observability

  • Networking

  • Operator Lifecycle Manager

  • Integrated Image Registry

  • Machine Management

From the docs

From a fresh install you can also run the following command to identify all of the additional types associated with OpenShift:

oc api-resources -o name | grep -e ".*.openshift.io"