鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

K8s NUMA亲和性调度插件

当前大多数云服务提供商需要在服务器上部署大量容器,甚至超过服务器的物理核心数量。在这类场景下,K8s NUMA亲和性调度插件支持根据节点的CPU使用情况自动调整部署Pod的CPU调度范围,从而确保NUMA亲和性,避免业务容器出现跨NUMA内存访问。

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

此外,为了兼容低版本K8s集群中Docker容器运行时,K8s NUMA亲和性调度插件提供了针对Docker版本的TAP(Topology Affinity Plugin)。该插件以代理的形式获取请求和返回响应,在请求下发过程中对资源参数进行优化调整,实现NUMA亲和功能。

使用约束

K8s NUMA亲和性调度插件针对Containerd场景和Docker场景有不同的使用约束和版本要求,详细内容如表1所示。

表1 使用约束

插件类型

版本要求

K8s

Containerd

Docker

备注

K8s NUMA亲和性调度插件(Containerd)

1.28.4

1.7.14

-

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

K8s NUMA亲和性调度插件(Docker)

1.23.6

-

20.10.14

对于Docker场景,需使用Dockershim作为运行时通信组件。