Software Architecture
The Kubernetes NUMA affinity scheduling plugin consists of the ResourceManager and NUMAPolicyAgent modules.
The Kubernetes NUMA affinity scheduling plugin runs at the node layer of the Kubernetes cluster. It is deployed through pods that use DaemonSet (Daemon pods), which ensures a plugin instance on each node. This plugin interconnects with the NRI of containerd to dynamically adjust the CPU scheduling range of a pod, securing effective NUMA affinity.
Figure 1 shows the software architecture of the Kubernetes NUMA affinity scheduling plugin. Table 1 describes the functions of each module.
Module |
Function |
|---|---|
ResourceManager |
Based on NUMA affinity rules, dynamically adjusts the CPU allocation and combination of pods to make applications utilize hardware resources efficiently, all of which aims to align with the best practices of the NUMA architecture. |
NUMAPolicyAgent |
Obtains the CPU usage of pods on the current node, analyzes the relationship between the CPU usage and NUMA affinity, and provides data support for resource allocation optimization. |
