Dedicated Shared CPU Allocation via Container Runtime Interface
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems lack flexibility in allocating CPUs to containers, failing to guarantee dedicated shared CPU resources for multiple containers.
Innovation Solution
A computing device allocates dedicated shared CPUs by using a container runtime interface to bind processing devices to multiple containers, ensuring they are usable only by those containers, separate from the logical host.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If CPUs are allocated to containers through a logical host, then containers can execute application instances reliably, but the allocation lacks flexibility and cannot guarantee dedicated shared CPU resources
Solution Approach 1:
The system segments CPU allocation into two distinct categories: best-effort allocation through the logical host and dedicated shared allocation through the container runtime interface. This segmentation allows containers to receive both flexible best-effort CPU resources and guaranteed dedicated shared CPU resources, resolving the contradiction between allocation flexibility and resource guarantee reliability
Solution Approach 2:
The container runtime interface acts as an intermediary between the container and the processing devices, separate from the logical host. This intermediary enables dedicated shared CPU allocation by binding specific processing devices to containers, providing both flexibility and guarantee of CPU resources that the logical host alone cannot provide
2Reliability
If a container runtime interface binds processing devices directly to containers, then dedicated shared CPU resources are guaranteed, but system complexity increases
Solution Approach 1:
The container runtime interface is designed to perform multiple functions: it manages dedicated shared CPU allocation, handles container lifecycle events, and coordinates with the logical host. By making the container runtime interface multi-functional, the system reduces overall complexity despite adding a new component, as it consolidates multiple responsibilities into a single unified interface
Data Source
AI summary
A logical host, e.g., KUBERNETES Kubelet, receives a request for instantiation of containers with shared CPUs that includes an annotation. The logical host adds the shared CPUs to a best-effort set of CPUs available for use by any process. The logical host calls a CRI to instantiate the containers and passes the annotation to the CRI. The CRI is an agent of an orchestrator and binds the shared CPUs to the containers such that the shared CPUs are dedicated to the containers. The CRI adds the shared CPUs to a shared CPU set.


