CloudOps · 基础设施云

OpenStack vs OpenShift

OpenStack is a cloud for infrastructure and OpenShift is a Kubernetes platform. How they differ, where OpenShift Virtualization fits, and which you need.

Updated

The short answer

OpenStack gives you infrastructure: virtual machines, networks and storage, as a self-service cloud. OpenShift is Red Hat's Kubernetes platform for building and running applications in containers.

The names are similar but they sit at different layers, and they are not competitors in the usual sense. OpenShift can run on top of OpenStack. The lines blur when you add OpenShift Virtualization, which runs VMs inside OpenShift.

Side by side

OpenStackOpenShift
What it isOpen-source infrastructure-as-a-serviceRed Hat's Kubernetes application platform
Main building blockVMs, networks and volumes inside a projectContainers in pods; VMs with OpenShift Virtualization
Virtual machinesThe core purpose, through NovaAn add-on operator, built on KubeVirt, using QEMU, KVM and libvirt
NetworkingPer-project networks and routers through NeutronThe Kubernetes pod network; VMs can add bridged or SR-IOV interfaces through Multus
StorageCinder block storage and Swift object storageKubernetes persistent volumes
Bare metalProvisioned as a service through IronicA place to install the platform, not a service for tenants
Isolation between teamsProjects with quotasKubernetes namespaces, called projects in OpenShift
Where it comes fromAn open project (Apache 2.0) with several vendor distributions, Red Hat among themA commercial Red Hat product

Where OpenShift Virtualization fits

OpenShift Virtualization adds virtual machines to an existing OpenShift cluster through an operator. VMs run next to your containers and are managed through the same platform. It uses the same QEMU, KVM and libvirt technology that OpenStack commonly relies on.

It suits organizations already invested in Kubernetes that have VMs they cannot containerize yet. It is a poor fit if you have no Kubernetes skills and only want VMs, because you take on all of Kubernetes to get them.

They can also work together

The two increasingly appear together. Red Hat OpenStack Services on OpenShift moves the OpenStack control plane into pods on OpenShift, while compute stays on Red Hat Enterprise Linux nodes and the OpenStack APIs stay the same. Running OpenShift on top of OpenStack, with OpenStack supplying the VMs, is also common.

Choose OpenStack if

  • You need a multi-tenant cloud that provides VMs, networks and storage as services.
  • You offer infrastructure to many teams or customers.
  • You want bare-metal provisioning as a service.
  • You can staff a team to operate and upgrade it.

Choose OpenShift if

  • Your main goal is building and running containerized applications.
  • You want a supported Kubernetes platform from one vendor.
  • You want to run the VMs you still have next to your containers.

If you want a cloud without running either

CloudOps gives servers you own self-service VMs, Kubernetes clusters, private networks, load balancers and S3-compatible storage, from a console, an API and Terraform, and we run the control plane as a service.

It covers less ground than either product. CloudOps has no live migration between hosts, no automatic VM restart on another host and no OpenStack API, it is not an application platform like OpenShift, and it cannot import OpenStack instances, so you rebuild them. You also cannot install the control plane yourself.

More detail: CloudOps as an OpenStack alternative.

Try it on one server.

Connect a server you already run and see whether CloudOps fits, before you move anything.