我要评分
获取效率
正确性
完整性
易理解

Introduction

This document describes how to deploy and use the Kunpeng Topology Affinity Plugin (Kunpeng TAP) on servers running the openEuler OS.

In a Kubernetes cluster, if CPU isolation, memory, and NUMA affinity need to be optimized, it is required to enable the static policy of the CPU manager and set the topology manager policy to the best-effort or single-NUMA-node mode. In this case, only when the QoS attribute of the Pod (container management unit of Kubernetes) is of the Guaranteed type (that is, the resource request value is an integer equal to the limit value), the policy can optimize the effect. However, most cloud service providers need to deploy a large number of containers on a server, and the number of deployed containers even exceeds the number of physical cores of the server. In this scenario, the static policy of the CPU manager cannot be enabled due to physical resource restrictions. As a result, CPU affinity cannot be ensured during container running.

To solve this problem, Kunpeng BoostKit provides the Kunpeng Topology Affinity Plugin (TAP) for Kubernetes cluster resource management. It helps compute nodes optimize system resource management and provides different allocation policies for resources such as CPU and memory, to meet high performance requirements in various scenarios. Currently, Kunpeng TAP provides the NUMA adaptation feature and implements a plugin-based Kubernetes NUMA affinity scheduling policy. This plugin takes effect when a Pod is deployed on a compute node. It automatically adjusts the CPU scheduling range of the Pod based on CPU resource allocation of the compute node. In this way, the restriction that the resource request value should be an integer equal to the limit value can be bypassed, and the NUMA affinity and Pod overcommitment features can be maintained.

Currently, this feature is incompatible with the open source topology manager of Kubernetes. It has been verified only on bare-metal Kubernetes clusters, and its full enablement in virtual machine (VM) environments cannot be guaranteed.