It's common to hear people compare OpenShift to Kubernetes. But thinking in terms of "OpenShift vs. Kubernetes" doesn't make complete sense. OpenShift and Kubernetes are not competing platforms; instead, OpenShift is a platform for deploying containerized applications that is built, in part, on Kubernetes.
Here's an overview of what Kubernetes is, what OpenShift is, and how OpenShift and Kubernetes compare to each other.
Kubernetes is a tool for container orchestration. Orchestration means that Kubernetes automates most of the operations required to deploy a containerized application. While these tasks could also be performed manually, without the help of an orchestrator, doing so is not practical in large-scale deployments.
Key Features of Kubernetes
The key orchestration features that Kubernetes offers include:
- Starting and stopping containers.
- Assigning containers to different servers within a cluster.
- Scaling containerized application instances up and down, based on demand.
- Grouping related containers into Pods and Services for easier management.
- DNS management.
- Enforcing role-based access control and security policies.
- Providing monitoring and log data.
Kubernetes is fully open source. Anyone can download the source code from GitHub, then compile and install it themselves. However, there are a variety of prebuilt implementations of Kubernetes. These implementations, which combine the core Kubernetes code with additional integrations and tools designed to make it easier to install and use Kubernetes, are known as Kubernetes distributions. OpenShift is one of several widely used Kubernetes distributions. (Other popular distributions include Canonical Kubernetes, Rancher, and cloud-based Kubernetes services including Azure AKS and AWS EKS.)