OpenShift
OpenShift is a family of containerization software products developed by Red Hat. Its flagship product, OpenShift Container Platform, is a hybrid cloud platform as a service built around Linux containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. OKD serves as the community-driven upstream.
The family's other products provide this platform through different environments. Deployment methods include self-managed; cloud native under ROSA, ARO and RHOIC ; OpenShift Online as software as a service; and OpenShift Dedicated as a managed service.
The OpenShift Console has developer and administrator oriented views. Administrator views allow one to monitor container resources and health, manage users and work with operators. Developer views are oriented around working with application resources within a namespace. OpenShift also provides a CLI that supports a superset of the actions provided by the Kubernetes CLI.
History
OpenShift originated from Red Hat's acquisition of Makara, a company marketing a platform as a service based on Linux containers, in November 2010.It was announced in May 2011 as proprietary technology and only became open-source in May 2012. Until version 3, released in June 2015, OpenShift used custom developed technologies. Version 3 adopted Docker as the container technology and Kubernetes as the orchestration engine. Version 4 further changed the architecture, notably adopting CRI-O as the container runtime, and Buildah as the container build tool, thus removing the dependency on Docker.
OpenShift Online v2
Online offered version 2 of the OKD project source code, which is also available under the Apache License Version 2.0. This version supported a variety of languages, frameworks, and databases via pre-built "cartridges" running under resource-quota "gears". Developers could add other languages, databases, or components via the OpenShift Cartridge application programming interface. This was deprecated in favour of OpenShift 3, and was withdrawn on 30 September 2017 for non-paying customers and 31 December 2017 for paying customers.Architecture
The main difference between OpenShift and vanilla Kubernetes is its extension of the platform with build-related artifacts as first-class Kubernetes resources upon which standard Kubernetes operations can apply. OpenShift's oc client offers a superset of the standard kubectl capabilities., including direct interaction with build resources via sub-commands like new-build or start-build. It also provided out of the box an OpenShift-native pod builds technology called Source-to-Image, though this is slowly being phased out in favor of Tekton, a cloud-native CI/CD framework for Kubernetes.Other differences include:
- An out-of-the-box integrated container image registry.
- Unique resources like ImageStreams and Templates.
- The new-app command, which initiates an application deployment, automatically applies the app label to all created resources, simplifying management.
- Support for multiple infrastructure platforms, including AWS, Azure, IBM Cloud, vSphere, and bare metal.
- OpenShift’s implementation of Deployment, called DeploymentConfig is logic-based in comparison to Kubernetes' controller-based Deployment objects. As of v4.5, OpenShift is steering more towards Deployments by changing the default behavior of its CLI.
- An embedded OperatorHub, a web GUI for browsing and installing a library of Kubernetes Operators packaged for easy life cycle management, including Red Hat authored Operators, Red Hat Certified Operators and Community Operators.
OpenShift introduced the concept of routes -- points of traffic ingress into the cluster. This later influenced the Kubernetes ingress concept.
OpenShift also bundles various software components from the Kubernetes ecosystem for enhanced functionality. For observability, it includes Prometheus, Fluentd, Vector, Loki, and Istio.