Managed Kubernetes on your OpenStack

CNCF-conformant clusters on the infrastructure you already run: pick a region, a control plane model and node pools, and the platform provisions everything and hands back a kubeconfig. Upgrades, scaling and healing run continuously from there.

CNCF-conformant clustersDedicated or hosted control planesIn-place upgrades, autoscaling, self-healing
NameTypeHealthVersion
prod-eu-westSCPHealthyv1.34.0
edge-vigo-01HCPHealthyv1.34.0
staging-sharedHCPProvisioningv1.33.7
+ Create ClusterDownload Kubeconfig

Kubernetes on OpenStack shouldn’t be a platform project

Running Kubernetes on OpenStack by hand means gluing provisioners, cloud providers and upgrade tooling into a stack someone has to babysit; every cluster is a snowflake and every version bump is a risk. edgeContinuum ships that layer as a product: on-premises managed Kubernetes, declared through a console or API, kept in its desired state by the platform. Your team asks for a cluster; nobody builds one.

Building it yourself, next to buying the layer

Almost every team evaluating this has already run Kubernetes on OpenStack in some form, usually kubeadm or Cluster API with a provisioning pipeline around it. It works. The question is what it costs to keep working, across a fleet, through upgrades, for years. The pipeline is yours to maintain as OpenStack and Kubernetes both move; cluster creation stays a request into the team that owns it; every version bump is planned work made harder by drift; and anything air-gapped means rebuilding the pipeline again. If you are still mapping that work, OpenShift vs CNCF Kubernetes on OpenStack covers the per-core alternative and the OpenStack self-service platform architecture guide covers the layer above the clusters.

The honest version: if you have one or two long-lived clusters and an engineer who enjoys this work, building it is defensible. The economics change with the third cluster, the second site, and the first upgrade nobody wants to own.

Provisioning

From quota to kubeconfig in minutes

Pick a region, a control plane model and node pools; the platform provisions the cluster on your OpenStack and hands back a kubeconfig. Download it and use kubectl in seconds, from the console, the API or Terraform. Every cluster lives inside a project, so quotas and roles apply automatically, and downloading that kubeconfig is its own permission: an operations team can scale a node pool without ever holding cluster credentials. See identity and access. To compare topology tradeoffs, read our architectural guide on hosted vs dedicated control planes.

Console, API, TerraformNode poolsCNIs & pluginsAny region
kubernetes-7-julioHealthySCP

Cluster information

InfrastructureOpenStack Vigo
TypeSCP · c3-4
Versionv1.34.0

Network information

Pods CIDR10.244.0.0/16
Services CIDR10.96.0.0/12
Domaincluster.local
Download KubeconfigManage Control Plane
Hosted control planes

Control plane density, without the VM tax

Every dedicated control plane costs you VMs before the first workload runs. With hosted control planes, cluster control planes run pooled on shared infrastructure while worker nodes stay in each team’s project: more clusters per rack, same isolation for workloads. Choose per cluster; both models live side by side.

Higher densityPer-cluster choiceWorkers in your projects
Clusters
team-aHCP
team-bHCP
proddedicated
Hosted control planes
Worker poolsin each team’s project, on your OpenStack

How Kubernetes on OpenStack actually gets built

There are three well-established ways to get clusters onto OpenStack, and they solve genuinely different amounts of the problem. Knowing where each one stops is most of the decision.

kubeadm is the baseline: it bootstraps a conformant cluster and does it well. What it does not do is anything after that. Node images, load balancers for the API server, the OpenStack cloud provider and Cinder CSI wiring, certificate rotation, etcd care, and every upgrade are yours, per cluster, forever. Teams often start here, prove it works, and then find the second cluster costs as much effort as the first.

Cluster API with the OpenStack provider (CAPO) is the serious answer to that, and it is what we build on ourselves. It makes clusters declarative objects, so creation, scaling and upgrades become reconciled state rather than scripts. The catch is that CAPO is a framework rather than a product: something has to own the management cluster, the templates, the image pipeline, the CNI and storage-class decisions, the upgrade sequencing, and the failure modes when a reconcile loop gets stuck. That something is a platform team, and staffing it is the real cost of this route. The Kubernetes on OpenStack architecture guide lists exactly what that route hands you: the cloud controller manager, Cinder CSI, the CNI, Octavia load balancers and the version matrix tying them together.

Magnum is OpenStack’s own cluster service, and a reasonable fit when your operators already live in OpenStack and want cluster provisioning inside the same API surface. In practice it tends to lag upstream Kubernetes, and the day-two experience, upgrades in particular, stays close to the infrastructure layer rather than reaching the teams consuming clusters.

edgeContinuum sits on the CAPO route and takes ownership of everything the framework leaves open: templates, images, the CNI and storage wiring, upgrades in place, autoscaling node pools, self-healing, and hosted or dedicated control planes as a choice rather than a rebuild. Your teams get a kubeconfig from the console, the API or Terraform, and nobody has to become the person who understands why a reconcile is stuck at 3am.

Day-2 operations

Day-2 is the product

Clusters are declared, not built, so the platform can keep them true continuously: in-place Kubernetes upgrades, autoscaling node pools, and self-healing that replaces failed nodes without a ticket. Version skew across your fleet becomes a dashboard, not an audit.

In-place upgradesAutoscaling node poolsSelf-healingFleet-wide view

Upgrade in place

prod-eu-west: v1.33.7 → v1.34.0, node pools rolled automatically.

Autoscale

Node pools grow and shrink with load, inside the quota you set.

Self-heal

Failed nodes are detected and replaced; desired state wins.

Your first cluster in minutes, on your OpenStack

Request a free trial and provision a managed cluster against a lab OpenStack, or book a call and we’ll walk your case: control plane models, networking, upgrades.

Frequently asked questions

How is this different from running Kubernetes on OpenStack with kubeadm or Cluster API?
Those give you a way to create clusters. What they do not give you is the operating layer around them: self-service for teams inside quotas, in-place upgrades sequenced across a fleet, self-healing, hosted control planes for density, one view of every cluster and version across regions, and per-tenant usage. That layer is what most platform teams end up building on top, and it is what edgeContinuum ships as a product. Underneath, the clusters are standard CNCF-conformant Kubernetes either way, so nothing about your manifests changes.
Can we run clusters across several OpenStack deployments or regions?
Yes. Connect any number of OpenStack deployments and shape them into your own regions and availability zones, then place clusters in whichever region you want, all from one console and one API. That includes small facilities: see the edge computing platform page for the multi-site model.
What happens to a cluster if it loses its link to the control plane?
It keeps running. Each site reconciles its desired state locally, so workloads continue and local management keeps working through a link outage, then resyncs when connectivity returns. That is the same mechanism that makes fully air-gapped operation possible.
Are the clusters CNCF-conformant?
Yes. You get standard, conformant Kubernetes: your charts, operators and tooling work unchanged, and there is no fork to be locked into.
What do we need on the OpenStack side?
A working OpenStack you already operate. The platform connects to it and provisions clusters declaratively; you do not have to build or maintain your own provisioning stack.
How do upgrades work?
In place, driven by the platform: control plane first, then node pools roll automatically. You choose when; the platform does the sequencing and recovery.
Dedicated or hosted control planes: which should we pick?
Dedicated (SCP) gives a cluster its own control plane VMs; hosted (HCP) pools control planes on shared infrastructure for higher density. It is a per-cluster choice and both coexist on the same platform.
Can teams or clients create clusters themselves?
Yes, that is the point: clusters are self-service inside projects, quotas and roles you define, through the console, the API or Terraform. Usage is tracked per tenant.
How do you run Kubernetes on OpenStack in production?
Production means three things beyond a working cluster: the control plane survives node loss, storage and load balancing are wired to OpenStack natively, and upgrades are routine rather than an event. Concretely that is a highly available control plane or a hosted one backed by a managed cluster, the OpenStack cloud provider plus Cinder CSI so volumes and load balancers are native, a CNI you have tested at your scale, and a declarative provisioning path so clusters are reproducible. Most teams get the first cluster right by hand and then need automation for every one after it.
Should we use Cluster API, Magnum or a managed service for Kubernetes on OpenStack?
Cluster API is the strongest foundation and the most work: an excellent declarative model, and you own the management cluster, templates, images and upgrade sequencing. Magnum is the lowest-friction option if your operators want cluster provisioning inside OpenStack’s own API and can accept that it tends to trail upstream. A managed service makes sense when clusters are something your teams consume rather than something your organization wants to be expert in. The honest test is whether running Kubernetes is a capability you want to own or a dependency you want handled.
Does OpenStack Magnum still make sense for production Kubernetes?
It can, with clear eyes about the trade-off. Magnum is genuinely useful when the people creating clusters are the same people operating OpenStack, and when the Kubernetes versions it supports match what you need. Where it struggles is the consumer side: it was designed as an infrastructure service, so the self-service experience, lifecycle automation and multi-tenancy around clusters stay thinner than teams expect. If your developers are the ones asking for clusters, that gap is what you will spend your time filling.
What is the difference between hosted and dedicated Kubernetes control planes?
A dedicated control plane runs on its own nodes for that cluster: maximum isolation, and you pay for those nodes whether the cluster is busy or idle. A hosted control plane runs as a workload on a shared management cluster, which is far denser and much faster to create, at the cost of sharing a failure domain. Ours are built on Kamaji, the CNCF sandbox project for hosted control planes, so the components are upstream Kubernetes running as pods rather than anything we invented. As a rule of thumb, dedicated suits production workloads with strict isolation requirements, and hosted suits the long tail of team, staging and per-client clusters where per-cluster node overhead is the thing standing in your way. Both are managed identically here, and our architecture guide covers the sizing.