~/talk

A journey through supporting VMs with dedicated CPUs on Kubernetes

Talkat DevConf.CZ 2023 · 2023-06-16..06-18· [kubernetes]
slides:none on file

KubeVirt adds VMs to k8s by running QEMU inside containers; dedicated CPU pinning requires Guaranteed QoS and integer CPU requests. Early attempts either context-switch vCPU threads or waste an extra core with an X+1 core housekeeping cgroup. Final solution spawns an emulator container with X dedicated CPUs and moves only vCPU kernel threads into its cgroup, keeping management threads on shared CPUs; this avoids the extra core and most cgroup v2 limits but hits v2’s cgroup v2 thread subtree constraint and remains a work in progress.

AI-written summary · about

  1. 0:00Intro
  2. 0:58Introduction to Kubevirt
  3. 3:45VMs with dedicated CPUs
  4. 4:48What are containers?
  5. 5:38Introduction to Cgroups
  6. 8:03Threads model in v2
  7. 8:58How is CPU allocation implemented in k8s?
  8. 9:53Kubernetes CPU allocation: requests
  9. 11:52Kubernetes and dedicated CPUs
  10. 12:29Introduction to Namespaces
  11. 13:01Sharing PID namespace in a Pod
  12. 13:40A word about VM (Kernel-based VM)
  13. 15:37st attempt to support dedicated CPUs
  14. 16:04Inside the compute container
  15. 18:33nd attempt: IsolateEmulatorThread
  16. 19:49rd attempt: housekeeping approach
  17. 20:45Problems with housekeeping approach
  18. 22:33th attempt: emulator container approach
  19. 23:463rd attempt: dedicated-cpu cgroup approach
  20. 28:34Summary & Takeaways
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.