Brussels / 4 & 5 February 2023


A journey through supporting VMs with dedicated CPUs on Kubernetes

In the Kubernetes resource allocation model, abstract concepts like resource request and limits, container QoS (quality of service), etc are being used. These concepts are eventually being converted under the hood to cgroup configurations, which have their own resource management model and concepts like CPU shares, CFS quotas, etc.

In the context of Kubevirt, an add-on to Kubernetes to allow running cloud-native VMs alongside containers, this information is crucial. In fact, our own “Cgroup Manager” was implemented to mutate and configure the container cgroups that are being defined to us by Kubernetes. One especially interesting challenge was to support a true CPU Pinning for VMs running on top of Kubernetes.

This presentation will take you through our journey to support true dedicated CPUs for VMs. I hope that after taking part in this presentation, the audience will better understand Kubernetes and Cgroup resource allocation models and how they can be further utilized in the future. In addition, I wish that the info presented here will improve the collaboration between different technologies in the ecosystem like Cgroups, KVM, libvirt, Kubevirt and Kubernetes by raising awareness to how they all interact together in different and interesting use-cases.


Photo of Itamar Holder Itamar Holder