OpenStack over Proxmox: Why Sharing KVM Is Not Enough

The question seems logical: if OpenStack uses KVM and Proxmox also uses KVM, why not install Proxmox on the servers and run OpenStack on top to manage the entire infrastructure? The problem is that both products are control platforms. Both want to decide how virtual machines are created, connected, stored, migrated, and decommissioned, so combining them does not automatically produce a more complete private cloud.

Key points of OpenStack and Proxmox in 30 seconds

  • OpenStack supports KVM via Nova and libvirt, but does not include a specific controller to manage Proxmox clusters.
  • Proxmox already manages virtual machines, networks, storage, high availability, permissions, and backups.
  • Placing two control planes over the same resources can lead to conflicting configurations and contradictory operations.
  • Proxmox fits well as a virtualization platform; OpenStack performs better when a multi-user, self-service IaaS cloud is needed.
  • Kubernetes can run on either and does not justify deploying OpenStack on its own.

The current Nova documentation, the compute component of OpenStack, includes KVM among the supported hypervisors and manages it via its libvirt driver. It also lists other options, such as VMware vSphere, Virtuozzo, z/VM, or physical server provisioning via Ironic. Proxmox is not listed as a primary supported driver or hypervisor.

This does not mean that integration is impossible—calling the Proxmox API or building a custom layer to translate commands between systems is feasible. However, such a combination is not part of OpenStack’s normal model, and an enterprise would need to handle development, testing, updates, and troubleshooting of an intermediate layer neither project manages jointly.

KVM is the common thread, but it doesn’t define the architecture

KVM is the virtualization technology embedded in Linux that allows running virtual machines using processor extensions. Proxmox VE combines it with QEMU to offer full virtualization of Windows and Linux systems. OpenStack can leverage it as a compute engine via Nova and libvirt.

That’s where the similarity largely ends. Proxmox VE is not a web interface layered over KVM; it is a complete platform that incorporates cluster management, high availability, migration, storage, software-defined networking, firewalls, authentication, permissions, and recovery tools. It also manages LXC containers from the same environment.

OpenStack constructs its own model atop separate services. Nova manages compute capacity; Neutron handles networking; Cinder provides block storage; Glance stores images; and Keystone manages identity. Additional components can be added for load balancing, orchestration, telemetry, or container cluster management.

When OpenStack creates an instance, it registers its identity, assigns the host, connects virtual interfaces, attaches volumes, and maintains the expected state. Proxmox does something similar within its own inventory and with its own storage, networking, and high-availability definitions.

Allowing both to modify the same machines introduces dual sources of truth. OpenStack might consider an instance to be running on a specific node, while Proxmox tries to migrate it based on HA policies. An administrator could change a disk via Proxmox’s interface without Cinder being aware. Networks may exist for Neutron but differ from the configuration Proxmox applies to bridges, VLANs, or virtual networks.

Problems may not appear immediately during initial setup but can surface months later during migrations, recoveries, disk expansions, or updates. Manual operations that seem straightforward in small tests often lead to divergent configurations once automation, multiple administrators, and hundreds of machines are involved.

Installing Nova components directly on servers already part of a Proxmox cluster doesn’t resolve the contradiction. Practically, it involves asking OpenStack to manage the underlying KVM and libvirt while Proxmox maintains its own processes, configurations, and distributed database over the same resources.

The consistent approach is to choose which control plane to deploy. If OpenStack is selected, compute nodes should follow its architecture and controllers. If Proxmox is preferred, machines should be managed via its cluster, API, and tools.

That said, organizations can use both platforms if desired. They might keep a Proxmox environment for traditional workloads and an OpenStack setup for internal IaaS services. Segregating control avoids conflicts over managing the same objects and allows each workload to follow its operational model.

The real choice: virtualization or private cloud

This discussion often arises during a migration from VMware vSphere. License changes lead many companies to seek alternatives, mixing two distinct projects: replacing the virtualization platform and building a private cloud.

Proxmox can fulfill many needs that vSphere used to address. It enables grouping servers, running VMs and containers, configuring high availability, integrating Ceph, ZFS, and shared storage, performing migrations, and connecting specific backup solutions.

Moreover, Proxmox DataCenter Manager extends centralized management across multiple clusters and data centers. The vendor claims it can visualize, operate, and migrate thousands of workloads from a single interface, as well as centralize identity management, EVPN networking, and updates. Such evolution reduces some historical limitations in distributed environments, though it remains within Proxmox’s ecosystem.

OpenStack addresses a different problem. It’s useful when internal users need to request resources via APIs, operate in isolated projects, use quotas, create on-demand networks, access image catalogs, and attach volumes without opening support tickets.

In a private cloud, infrastructure is presented as a service. Development teams don’t need to know which server hosts each VM or where the disk is stored. They request a resource with specific characteristics, and the system automatically deploys it based on capacity, policies, and availability.

This model incurs operational costs. OpenStack requires maintaining multiple services, databases, message queues, networks, storage, and deployment tools. It also needs personnel skilled in updating, troubleshooting distributed failures, and automating changes without breaking dependencies.

While the software can be open source and license-free per CPU, its operation demands time, expertise, and processes. A company aiming only to replace vSphere might end up building a more complex platform than necessary.

Proxmox simplifies this burden by consolidating most virtualization management into a more streamlined product. This relative simplicity, however, also sets limits: providing APIs, permissions, and automation does not turn a virtualization cluster into a full IaaS cloud with projects, quotas, and network services like OpenStack.

The number of virtual machines alone doesn’t dictate the architecture. A setup with fewer than 2,000 VMs may justify using OpenStack if it serves multiple teams, offers self-service, requires isolated networks, and involves dynamic resource creation and destruction. Conversely, a similarly sized environment with stable loads managed centrally could perform better on Proxmox.

The key question is: who requests the machines, how often do requests change, and what services do users expect? If most changes go through admins and planned procedures, Proxmox may suffice at lower complexity. But if dozens of teams require API-based resource consumption with isolation and quotas, OpenStack’s complexity becomes justified.

The hypervisor independence also has nuances. OpenStack supports multiple hypervisor technologies and its documentation suggests deploying different hypervisors within the same deployment. Nonetheless, most implementations use a single hypervisor to simplify management. Variations in features, formats, drivers, and networking mean they are not fully interchangeable without additional work.

Choosing OpenStack doesn’t eliminate technological dependency; it shifts it to its APIs, services, network design, storage, and deployment choices. This reliance may be preferable to vendor lock-in but still requires careful consideration in the analysis.

Kubernetes does not require deploying OpenStack

Kubernetes is often cited as a compelling reason to adopt OpenStack, but the relationship is not mandatory. Kubernetes can run on virtual machines created by vSphere, Proxmox, OpenStack, or any platform capable of provisioning Linux servers and network connectivity.

A stable cluster with multiple nodes can operate perfectly on Proxmox. Machines are created via templates, Terraform, Ansible, or other tools, and Kubernetes manages containers thereafter. For many environments, this layer alone is sufficient.

OpenStack adds value when Kubernetes needs to dynamically consume infrastructure services. For example, Magnum offers container clusters as OpenStack resources, integrated with Keystone for identity, Neutron for multi-user networking, and Cinder for volumes. Octavia provides load balancing within the platform.

The choice depends on what Kubernetes demands from beneath: whether it needs long-lived clusters, dynamic environment creation, on-demand load balancers, isolated networks, per-team quotas, or automated resource provisioning via cloud APIs.

If these capabilities are part of the organizational service model, OpenStack components are designed to integrate them. If Kubernetes only needs stable VMs, Proxmox can supply them without mandating a full private cloud setup.

CloudStack is another option, offering a more compact IaaS model. However, the official Apache CloudStack 4.22 compatibility list includes main hypervisors like KVM, XenServer/XCP-ng, and VMware vSphere. Proxmox is not officially listed as a supported hypervisor.

There may be commercial connectors, community extensions, or custom integrations to communicate with Proxmox, but they should be tested as additional dependencies—creating, deleting VMs, migration, snapshots, networks, volumes, HA, recovery, and updates all need verification.

A prudent approach to migrating from vSphere is to separate the decisions: first, determine whether the goal is to replace the virtualization platform or to change how infrastructure is consumed. Then, test Proxmox and OpenStack with real workloads and processes without stacking one on top of the other to avoid premature choices.

Proxmox can be sufficient, and OpenStack justified. But maintaining both as controllers of the same VMs is rarely clean. Sharing KVM doesn’t make them complementary layers; it creates two platforms that need to know which one commands.

Frequently Asked Questions

Can OpenStack manage a Proxmox cluster directly?

Not as an official primary integration. Nova supports KVM via libvirt but does not include a specific driver to manage Proxmox’s cluster, API, or resources.

Can OpenStack be installed over Proxmox nodes?

A custom test or development environment can be built, but running both control planes over the same resources increases the risk of divergent configurations. In production, it’s more consistent to have OpenStack manage its own KVM nodes or keep Proxmox as sole controller.

Is Proxmox suitable for creating a private cloud?

It can automate resource provisioning via its API, but its primary focus is virtualization management. For multi-user projects, quotas, on-demand networks, volumes, and integrated IaaS services, OpenStack offers a more specialized architecture.

Is OpenStack necessary to run Kubernetes?

No. Kubernetes can run on Proxmox VMs. OpenStack becomes more relevant when Kubernetes clusters need to dynamically consume identity, networks, volumes, load balancers, and other resources through cloud APIs.

Scroll to Top