> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenShift Vs K8s Components

> Compares OpenShift and Kubernetes, explaining how OpenShift extends Kubernetes with integrated services, opinionated defaults, build and image features, security, and developer tooling.

A common question: what’s the difference between OpenShift and Kubernetes (and other orchestrators like HashiCorp Nomad)? This article compares OpenShift and Kubernetes, explains how they relate, and highlights the additional capabilities OpenShift brings on top of Kubernetes. Both platforms solve the same core problem — scheduling, running, and exposing containerized applications — but they do so with different levels of abstraction and distinct, opinionated integrations.

What an orchestrator typically provides:

* User and access management (authentication, authorization).
* Resource grouping and multi-tenancy (namespaces/projects).
* Build and deployment workflows.
* Application exposure to users (Services, Ingress, Routes).
* Tooling and ecosystem (CLIs, web consoles, registries, build systems).

Both Kubernetes and OpenShift are container orchestrators, but OpenShift is a distribution and platform built on Kubernetes that packages additional, higher-level features and integrated services.

How you interact with each

* With upstream Kubernetes you typically use the Kubernetes API via `kubectl` or direct API calls and operate on core resources such as `Pod`, `Deployment`, `Service`, and `Ingress`. You can extend functionality with Custom Resource Definitions (CRDs) and controllers.
* With OpenShift you usually use the OpenShift surface — the web console, the `oc` CLI, or the OpenShift API. OpenShift translates user actions into Kubernetes resources and also exposes first-class resources that are OpenShift-native.

Common example commands:

```bash theme={null}
# Kubernetes (upstream)
kubectl get pods
kubectl apply -f deployment.yaml

# OpenShift
oc get pods
oc new-app https://github.com/your/repo --name=myapp
```

![A simple infrastructure diagram: a user icon feeds into OpenShift, then to Kubernetes and a registry, which connects down to a central router/load-balancer distributing to three container/package nodes.](https://mintcdn.com/kodekloud-c4ac6d9a/Xa5GerWBw0vsOVlC/images/OpenShift-4/Concepts-Builds-and-Deployments/OpenShift-Vs-K8s-Components/user-openshift-kubernetes-registry-router-containers.jpg?fit=max\&auto=format\&n=Xa5GerWBw0vsOVlC\&q=85\&s=3312f5e8c4a0cd40dca38275289ad137)

Key differences and additions OpenShift provides (compared to a vanilla Kubernetes cluster):

* OpenShift runs Kubernetes under the hood:
  * The Kubernetes control plane, kubelet agents, and etcd are present, but OpenShift packages them with additional services and opinionated defaults.
* Projects:
  * OpenShift exposes `Project` as a first-class concept (maps to a Kubernetes `Namespace`) with integrated RBAC, annotations, and quota management.
* Routes vs Ingress:
  * OpenShift introduces `Route` as a native object handled by its integrated router. Kubernetes `Ingress` can still be used, but Routes are the OpenShift-preferred HTTP/S exposure mechanism.
* Image Streams and integrated Registry:
  * OpenShift includes an internal image registry and `ImageStream` objects to track image tags and lifecycle events.
* BuildConfigs and Builds:
  * OpenShift provides built-in build resources (`BuildConfig`, `Build`) and supports Source-to-Image (S2I) to create runnable images directly from source.
* Console and `oc` CLI:
  * OpenShift ships an opinionated web console and the `oc` CLI, both of which add UX and command extensions beyond vanilla Kubernetes.
* Authentication and OAuth:
  * OpenShift includes an integrated OAuth server and supports many identity provider integrations out of the box.
* OperatorHub and curated operators:
  * OpenShift provides a marketplace-like experience with a curated operator catalog for easier lifecycle management of operators.
* Security defaults:
  * OpenShift applies stricter security defaults (historically via SecurityContextConstraints) and enforces safer defaults to reduce risky pod configurations.

Quick comparison table

| Area | Kubernetes (upstream) | OpenShift (distribution/platform) |
| - | - | - |
| Base layer | Kubernetes control plane and primitives | Kubernetes control plane + OpenShift platform services |
| CLI / Console | `kubectl` + optional dashboards | `oc` CLI + OpenShift web console |
| Exposing apps | `Service` + `Ingress` | `Service` + `Route` (native) |
| Image management | External registries (Docker Hub, private registries) | Built-in registry + `ImageStream` |
| Builds | External CI/CD or custom controllers | `BuildConfig`, `Build`, S2I integrated |
| Authentication | Pluggable (varies by distro) | Built-in OAuth server and ID integrations |
| Operators | Operator Framework (community) | OperatorHub with curated catalog |
| Security | Flexible, user controls defaults | Stricter default security posture |

OpenShift is not a replacement for Kubernetes — it is a Kubernetes-based distribution and container application platform that adds integrated services, higher-level resources, and opinionated defaults to simplify building, deploying, and operating containerized applications.

Both OpenShift and upstream Kubernetes can be installed on-premises or in public clouds. The practical difference is that OpenShift provides an integrated, enterprise-ready platform with bundled features, opinionated workflows, and vendor support, while vanilla Kubernetes is the upstream orchestration layer you can assemble and extend to fit your needs. The core orchestration goals — scheduling containers, managing pods, and exposing services — are the same across both; the main difference is how much additional platform functionality is packaged and opinionated by default.

Useful references

* [Kubernetes Documentation](https://kubernetes.io/docs/)
* OpenShift learning resources: [OpenShift course on KodeKloud](https://learn.kodekloud.com/user/courses/openshift-4)
* Kubernetes learning resources: [Kubernetes course on KodeKloud](https://learn.kodekloud.com/user/courses/kubernetes-for-the-absolute-beginners-hands-on-tutorial)
* HashiCorp Nomad (alternative orchestrator): [Nomad course on KodeKloud](https://learn.kodekloud.com/user/courses/learn-by-doing-hashicorp-nomad)

> **[Watch Video](https://learn.kodekloud.com/user/courses/openshift-4/module/3200131b-dec7-4422-9e05-68c751bc4213/lesson/f48ce40c-cedd-46d0-81f7-7c0b58bbd475)**


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.