Kubernetes vs OKD vs OpenShift: What Actually Separates Them?

·Platform Decision·10 min read

Translated from the original Korean post. 한국어 원문 보기 →

A few winters back, a platform review meeting wrapped up and one of the junior engineers pulled me aside. Three words were still sitting on the whiteboard. Kubernetes, OKD, OpenShift.

The question was short.

"Don't all three of these use Kubernetes? What's actually different?"

Fair question. OpenShift runs on Kubernetes. So does OKD.

Search for an answer and you get this first:

Kubernetes = the base open source project, OKD = free OpenShift, OpenShift = paid OKD

Handy when you're first wrapping your head around it. I explained it that way for a while too. But the moment you actually stand up a platform and inherit the operations for it, that sentence stops carrying weight. The distance between these three isn't measured in free versus paid.

So I reframed the question.

"How much of the container platform do we build ourselves, how much do we operate ourselves, and where does responsibility hand off to a vendor?"

From that angle, the gaps get pretty sharp.

Start with Kubernetes

Kubernetes is an open source container orchestration platform for deploying and managing containerized applications.

With a handful of containers, humans can do it by hand. With hundreds or thousands, it's a different game.

Which server does this container land on? Who restarts it when it dies? What happens when an entire server drops? How do you scale the application? How do you ship a new version?

Kubernetes absorbs those problems. Scheduling, self-healing, service discovery, load balancing, rolling updates, scaling, secret/config management, storage integration.

Stop reading there and it looks like almost everything you need is in the box.

Then you take it into a corporate environment and the next round of questions lines up. How do users authenticate? Who manages developer permissions? Where do images live? How does external traffic get in? Monitoring, logs, certificates, upgrades, security policy — and who owns the cluster OS?

Kubernetes is powerful, but it doesn't ship every platform capability an enterprise needs as one finished product. What it gives you instead is a lot of freedom to pick and assemble the pieces.

Flip that around and "a lot of freedom" means you own the consequences of every piece you picked.

Great engine, no dashboard

Let me use a car.

Kubernetes is closer to a very well-built engine and drivetrain.

The engine itself is excellent. But you can't drive an engine. You need a dashboard, brakes, a chassis, air conditioning, and a maintenance program before the thing moves.

Same with Kubernetes. Before an enterprise can call it a platform and run it, there's a long list still to bolt on. Ingress/Gateway, monitoring, logging, registry, storage, network, IAM, security, GitOps, backup.

Picking your own technology is Kubernetes' big selling point.

And for the same reason, it's a load on the ops team.

Who validates version compatibility across all those components? What order do the upgrades go in? When something breaks, who decides whether it's a Kubernetes problem, a CNI problem, or an Ingress problem?

In enterprise environments, the thing that blew up bigger was never Kubernetes itself — it was how the surrounding pieces were wired together and how they got run. That's been my experience, at least.

Which brings us to OpenShift

This is where Red Hat OpenShift comes in.

OpenShift takes Kubernetes as the base and bundles together the capabilities an enterprise needs to actually run a container platform.

Put bluntly: an enterprise Kubernetes platform that integrates the components and the operational model so you can use Kubernetes in a company.

In an OpenShift environment you get more than Kubernetes — networking, authentication, monitoring, Operator-based management, a web console, image-related capabilities, all arriving together in one ecosystem.

There's one more difference, and it sits somewhere else entirely.

Validation and support.

When something breaks in an enterprise system, digging through GitHub issues often isn't the end of the story. Especially in finance, public sector, telco, or large corporations.

Chasing a root cause all the way down. Responding to security vulnerabilities. Following a supported upgrade path. And a technical support channel that will take ownership when things go wrong. You need all of it.

The OpenShift subscription price includes the cost of that support structure.

So if you file OpenShift away as "Kubernetes you pay for," you've dropped something important.

Where does OKD sit

OKD is the confusing one.

The usual explanation: "OKD is free OpenShift."

Half of that helps. The other half is missing.

OKD is a community-driven Kubernetes distribution, closely related to OpenShift.

You get to work with architecture and technology similar to OpenShift, but the product support structure that comes with commercial OpenShift doesn't come with it.

So what defines OKD isn't the price tag.

It's where operational responsibility lands.

When something breaks in OpenShift, you open a support request with Red Hat under your subscription. In OKD, you lean much harder on the community and on your own team's technical depth.

In a dev environment that difference looks small. In production running 24 hours a day, it's an entirely different conversation.

Where the word "free" starts to look strange

No software license cost doesn't mean no operating cost.

Say something breaks in the cluster at 2 a.m.

Pods won't start. You look, and it isn't the application. You check the node. Fine. You check the CNI. Something looks off. You check API server health. You check etcd latency. You sweep storage and networking too.

That's when the real question shows up.

"So who ultimately fixes this?"

With OpenShift, there's a support channel. With OKD, a large share of it stays with the operations org.

I once read a slide out loud in a meeting that said "license cost: 0." That slide had not one line about the next year of on-call and late nights. Looking back, that was me being lazy.

Writing OKD's cost as "license cost = 0" is a problem. In practice it's closer to "platform cost = software + infrastructure + ops headcount + incident response + upgrades + technical debt."

Which is why free software isn't the cheapest platform.

The three, side by side

구분 Kubernetes OKD OpenShift
Foundation Kubernetes Kubernetes-based Kubernetes-based
Nature Open source orchestration platform Community distribution Enterprise platform
Surrounding capabilities Assembled yourself as needed Integrated components provided Validated platform configuration provided
Freedom Very high High Standardized within product policy
Technical support Varies by chosen distribution/vendor Community-driven by default Red Hat support
Build difficulty Depends on how you assemble it Relatively complex Standardized installation method provided
Operational responsibility Varies by ops org/provider structure Heavily on the ops org Ops org + vendor
Cost structure Depends on the configuration No subscription cost Subscription cost applies
Good fit for Environments needing heavy customization Orgs with sufficient in-house capability Orgs where enterprise operations and support matter

What matters here isn't which one is better.

It's what the organization actually wants.

Orgs that belong on Kubernetes

If you have real platform engineering capability and you don't want to be tied to a particular vendor, building your own platform on Kubernetes fits well.

If you know exactly which capabilities you need and you're picking and running CNI, Ingress, monitoring, logging, registry, GitOps, and security yourself, the freedom is genuinely large.

The condition attached is that you take the operational responsibility that rides along with that freedom.

The OKD case

If you want the OpenShift-family platform structure but the commercial subscription cost is hard to swallow, or your in-house operational capability is strong enough, OKD is on the table.

It also makes sense for dev/test environments and research work.

Production is a different story. "It's basically OpenShift and it's free, so OKD" is a dangerous line of reasoning.

Look at your ops headcount and your incident response structure first. Who runs the upgrades, who analyzes failures, who responds to security issues, how far you can get on your own. Leave those fuzzy and the word "free" comes back later as an invoice.

The OpenShift case — where the responsibility structure comes first

In enterprise environments there's one thing as heavy as the technology.

The responsibility structure.

In finance or public sector work, where service stability, security, audit, and change management are all on the line, whether an official support structure exists when things break is a big deal.

Treat the OpenShift cost as a usage fee for Kubernetes features and it's expensive. What's inside that price is validation of the platform components, product lifecycle, security updates, compatibility, and technical support.

This is why picking a product by comparing feature tables is hard in an enterprise.

The questions change once you're operating

When you're first studying Kubernetes, you're curious about features.

What a Deployment is, what a Service is, what an Ingress is, how a Pod gets scheduled.

Start running production and the questions get swapped out wholesale.

Who's accountable when there's an outage? Who validates the upgrades? Who assesses security vulnerabilities? Who catches CNI failures? Where's the line between an OS problem and a Kubernetes problem? Where's the line between an application failure and a platform failure?

Choosing a platform turned out to be a technical decision and a design of the responsibility structure at the same time.

So which one is best

There's no right answer.

Kubernetes being the most flexible doesn't always make it the best. OpenShift being a commercial product doesn't always make it the best. OKD being free doesn't make it the most economical.

Your organization's technical capability and operating model decide it.

If I were picking a platform, these are the questions I'd ask first. Does our org have the capability to design the ecosystem around Kubernetes ourselves? Can we analyze and fully resolve a 24-hour production incident on our own? Who owns upgrades and security patches? Is this a system that needs official vendor support when it breaks? Which is more urgent for us — platform freedom or operational standardization?

Answer those and it gets much clearer which of the three is ours.

The difference isn't in the price tag

Zoom out far enough and all three are standing on the same Kubernetes foundation.

Pull in to an operations view and the distance opens up.

Kubernetes gives you freedom. OKD gives you an OpenShift-family platform experience on a community basis. OpenShift adds enterprise product lifecycle and vendor support on top of that.

So before "which one is the better technology," there's something to ask first.

"How much do we build ourselves, how much do we operate ourselves, and where does responsibility hand off to another team or a vendor?"

Picking a container platform isn't picking a piece of software. It's designing the technology, the cost, the operational capability, and the responsibility structure for when things break — all at once.

I didn't get through half of this with that junior engineer that day. I just circled the three words on the whiteboard again and walked out of the room. I hadn't fully worked it out myself back then either.

Was this post helpful?

One click helps me write the next one

#Kubernetes#OKD#OpenShift#Platform Choice#Operational Responsibility#Enterprise