kalafoto - Fotolia

What are the differences between OpenShift and Kubernetes?

Red Hat OpenShift and Kubernetes share a lot of similarities -- including the same underlying container orchestration technology. So how are they different, exactly?

Red Hat OpenShift and Kubernetes are two popular -- and intricate -- platforms to run containerized applications. OpenShift is based closely on Kubernetes, and the two share some broad similarities. But there are important differences between OpenShift and Kubernetes when it comes to tooling, default configurations and vendor support.

What is OpenShift?

OpenShift is an application containerization platform developed by Red Hat, which is now owned by IBM.

OpenShift is not a single product, but a portfolio of multiple offerings: These include hosted OpenShift services that run in public clouds and Red Hat OpenShift Container Platform, which is designed for on-premises and hybrid architectures. There is also a community-supported variant of OpenShift called OKD.

What is Kubernetes?

Kubernetes is an open source container orchestration platform available in a variety of distributions, such as Rancher, Amazon Elastic Kubernetes Service and Google Kubernetes Engine.

Similarities between OpenShift and Kubernetes

Kubernetes serves as OpenShift's foundation. However, OpenShift is not a Kubernetes distribution due to the add-ons and extensions explained below. It is distinct enough from other Kubernetes distributions that it is categorized as a separate platform.

Because OpenShift is based on Kubernetes, both technologies share the same core concepts. Users write configuration files to define how containerized applications should deploy, and they then deploy and manage those applications across clusters of servers. Both platforms also support the same configuration languages -- YAML and JSON. Additionally, both provide load-balancing and routing functionality, and can run in the public cloud or on premises.

OpenShift is also fully compliant with Kubernetes APIs, and any application that can run on Kubernetes can also run on OpenShift.

Differences between OpenShift and Kubernetes

The differences between OpenShift and Kubernetes lie largely in OpenShift's support for tooling and extensions.

In most Kubernetes distributions, kubectl is the main command-line tool for cluster management. OpenShift's command line is called oc. It is identical to kubectl in most ways, but provides extra features that simplify tasks, such as container image deployment and logging into clusters.

OpenShift also relies on Fluentd, Elasticsearch and Kibana for log management. Kubernetes is compatible with these tools, as well as a variety of other logging tools -- so, in the case of Kubernetes, users decide how to manage logging. In addition, OpenShift offers a built-in web management console; Kubernetes offers a similar interface as an optional add-on, but it is not a core part of Kubernetes.

Beyond differences in tooling, OpenShift is also different from native Kubernetes in that, while a variety of vendors offer Kubernetes distributions, OpenShift is a Red Hat product, available only from Red Hat. However, as noted above, Red Hat offers OpenShift as a service on several public cloud platforms.

OpenShift nodes must also be provisioned with Red Hat Enterprise Linux CoreOS, whereas Kubernetes nodes can run any Linux-based OS -- as well as Windows, in the case of worker nodes.

Next Steps

Compare 3 managed Kubernetes service providers

Docker vs. OpenShift: What are the main differences?

Dig Deeper on Containers and virtualization

Software Quality
App Architecture
Cloud Computing
Data Center