鲲鹏拓扑亲和插件
当前大多数云服务提供商需要在服务器上部署大量容器,甚至超过服务器的物理核心数量。在这类场景下,鲲鹏拓扑亲和插件(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所示。
父主题: 云原生资源亲和与隔离