The presentation discusses the implementation of QoS (Quality of Service) in Kubernetes using block I/O classes and CPU manager policies to prioritize critical workloads.
- QoS can be implemented in Kubernetes using block I/O classes and CPU manager policies
- Block I/O classes can be used to prioritize workloads based on their importance
- CPU manager policies can be used to assign specific CPU affinity to critical processes
- Throttling can be used to limit resource contention and prioritize critical workloads
- An anecdote is provided to illustrate the importance of prioritizing critical workloads
The presenter gives an example of a flower delivery service that needs to be available at all times, but is not critical enough to cause harm if it lags. The 911 process, on the other hand, needs to be given higher priority to ensure it is not disturbed. By implementing QoS using block I/O classes and CPU manager policies, critical workloads can be prioritized and given access to necessary resources without contention from other processes.
Do you get your best work done without interruptions? Many people do, and Kubernetes workloads are no different. While there exist ways to run workloads in Kubernetes on dedicated CPUs, they still share resources like CPU cache, memory bandwidth and storage I/O. Recently, CRI-O and containerd have been extended to allow admins to control how these resources are shared. With the correct hardware and node configuration, users can put their applications in different classes that configure the amount of storage and memory bandwidth, and CPU cache that their applications need.In this talk, Antti Kervinen and Peter Hunt will talk about required hardware, the extensions, and describe ways that admins can configure their workloads to finally get some peace and quiet.