About KubeVirt

Motivation

There is a wide range of management applications dealing with different aspects of operating system and workload virtualization, e.g. oVirt (data center, full OS virt), OpenStack (cloud, full OS virt) and OpenShift (cloud, application containers). In terms of infrastructure they all have broadly similar requirements for features such as API resource management, distributed placement and scheduling, active workload management, and more besides. Currently they all have completely separate implementations of these concepts with a high level of technical duplication. At the low level, the only area of commonality is sharing of libvirt and KVM between oVirt and OpenStack.

The Kubernetes container runtime(s) reliance on a shared kernel, provides insufficient security isolation for certain deployment scenarios. Administrators of such deployments may wish to be able to use hardware virtualization to strongly separate untrusted workloads.

Users with existing applications may not be in a position to adopt the application container model straightaway. Currently they have to continue using traditional data center virt or cloud virt applications for running these existing applications in virtual machines. This results in having to manage two distinct hosting platforms, making it difficult for these applications to seemlessly integrate with modern container based applications. Running both workload types on the same infrastructure reduces one barrier to transition existing applications to an application container model.