开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

鲲鹏拓扑亲和插件

当前大多数云服务提供商需要在服务器上部署大量容器,甚至超过服务器的物理核心数量。在这类场景下,鲲鹏拓扑亲和插件(Kunpeng Topology Affinity Plugin,Kunpeng TAP)支持根据节点的资源使用情况自动调整Pod的部署范围,从而维护CPU、GPU等容器资源的NUMA亲和性,避免业务容器出现跨NUMA内存访问。

鲲鹏拓扑亲和插件在K8s集群的节点层面运行,采用DaemonSet形式的Pod进行部署,确保每个节点上都有一个该插件的实例。此插件通过与Containerd的NRI接口进行对接,实现了动态调整Pod的CPU调度范围的功能,以保障NUMA亲和性的有效实施。

下图为基于Containerd运行时NRI功能构建的NUMA亲和性调度插件工作示意图。

图1 鲲鹏拓扑亲和插件NRI模式工作示意图

此外,为了兼容低版本K8s集群中Docker和Containerd容器运行时,鲲鹏拓扑亲和插件支持以代理的形式获取容器请求和返回响应,在请求下发过程中对资源参数进行优化调整,实现NUMA亲和功能。下图为鲲鹏拓扑亲和插件的工作示意图。

图2 鲲鹏拓扑亲和插件工作示意图

使用约束

鲲鹏拓扑亲和插件针对Containerd场景和Docker场景有不同的使用约束和版本要求,详细内容如表1所示。

表1 使用约束

插件类型

版本要求

K8s

Containerd

Docker

备注

鲲鹏拓扑亲和插件(Containerd,开启NRI功能)

1.28.4

1.7.0及更高版本

-

对于Containerd场景,需使用Containerd作为容器运行时。

鲲鹏拓扑亲和插件(Docker/Containerd)

1.23.6

1.6.8+

20.10.14

对于Docker场景,使用Dockershim作为运行时通信组件,同时支持Containerd。