Software Architecture
Kunpeng TAP consists of Kunpeng TAP Policy Manager and Kunpeng TAP Proxy. It operates at the node level within a Kubernetes cluster and dynamically adjusts the CPU scheduling range of containers by acting as a proxy for container requests.
Figure 1 shows the architecture of the Kunpeng TAP, and Table 1 describes the functions of each module.
Kunpeng TAP adopts a request proxy approach. It adjusts resource parameters for container creation requests between the kubelet and the container runtime.
- Request obtaining: Kunpeng TAP connects to the kubelet to obtain container distribution requests.
- Resource parameter optimization: Following user-configured policy options, Kunpeng TAP can perform NUMA topology-aware adjustments to a container's CPU scheduling range. It achieves this by considering system resources, system topology, and the allocation of specific device resources like GPUs.
- Request forwarding: Kunpeng TAP forwards optimized requests to the container runtime for container management.
- Container deployment: The container runtime performs the deployment and the system runs the container process based on the optimized parameters.
Module |
Function |
|---|---|
Kunpeng TAP Policy Manager |
Based on NUMA affinity rules, dynamically adjusts the CPU allocation and combination of Pods/containers to make applications utilize hardware resources efficiently, all of which aims to align with the best practices of the NUMA architecture. |
Kunpeng TAP Proxy |
Transfers requests and responses between the kubelet and the container runtime, obtains the CPU usage of Pods on the current node, and provides function and data support for optimizing resource allocation. |
Kubelet |
Runs on each node in a cluster to ensure that containers (Pods) run properly on the node and manages the lifecycle of these containers. |
Container runtime |
Creates, manages, and runs containers. |
